法律状态公告日
法律状态信息
法律状态
2020-05-05
授权
授权
2019-12-24
实质审查的生效 IPC(主分类):G06F17/27 申请日:20190710
实质审查的生效
2019-11-29
公开
公开
技术领域
本发明涉及自然语言处理技术领域,具体涉及一种基于深度学习的领域自适应中文分词方法。
背景技术
近几年,基于神经网络的中文分词模型在分词准确率上取得了突破性的进展。然而,这类分词模型仍存在领域适应性弱的问题。这个问题是由于训练集与测试集分属不同领域而引发的,具体来说就是测试集中包含很多在训练集中没有的领域相关词汇。不借助额外资源,只改进神经网络结构,无法很好地识别未出现词。因为词典和目标领域的无标注集中包含很多领域相关词汇,所以许多研究者会将它们作为额外资源,结合BiLSTM模型,来增强模型的领域适应性。然而,部分研究者提出的模型在训练好之后,仅仅只能适用于某一特定领域,如果要适用于另一领域,还需要重新训练。这种做法可以称为跨领域分词,即模型能在主领域(标注集所属领域)训练好后,适用于特定的目标领域(测试集所属领域)。然而,跨领域分词不能与模型的领域适应性划等号。模型的领域适应性是指模型在不重新训练的情况下,能在不同领域上体现较好的分词效果。因此,增强模型的领域适应性应从分词准确率和通用性两方面进行考虑。
发明内容
针对基于深度学习的中文分词模型领域适应性弱的问题,本发明提供了一种基于深度学习的领域自适应中文分词方法,该方法能增强模型领域适应性。
为解决技术问题,本发明提供的技术方案包括如下步骤:
步骤1、对文本序列进行处理得到BERT模型的输出、词典模块的输出和语言模型的输出。
1-1、获得BERT模型的输出:
将文本序列传入BERT模型,对于一个文本序列,将之输入BERT中文预训练模型,可以得到此BERT模型的输出。
其中,Ei表示字符i的词向量。
1-2获得词典模块的输出:
为文本序列中每个字符构造一个词典特征向量,将之传入双向循环神经网络,得到词典模块的输出;对于一个输入序列C=(c1,c2,…,cn),用一个四维的特征向量fi来表示其对应的字符ci,可以得到特征序列F=(f1,f2,…,fn)。fi的四个维度分别对应B、M、E、S(词的首字符、中间字符、末尾字符、单个字符成词)。例如,fi2表示fi的第二个维度,它的值表示ci标识M的概率。
对于每个字符ci,获取其特征向量fi的具体算法流程如下:
①.初始化,设置flag=0,fi=(0.1,0.1,0.1,0.1)(因为字符匹配无法完整地考虑上下文信息,所以我们将概率设为0.9和0.1,而不是1和0)。
②.计算出ci的n-grams窗口词汇,如表1所示。
③.判断每个词汇是否存在于词典中,如果存在,转步骤④,不存在,重复步骤③。遍历完所有词汇后转步骤⑤;
④.设置flag=1,索引ci在这个词汇中的位置index,如果index=0,fi1=0.9(表示ci标识B的可能性为0.9),如果index=len(词汇长度)-1,fi3=0.9,否则fi2=0.9。转步骤③。
⑤.如果flag=0,表示所有窗口词汇都不在词典中,此时设置fi4=0.9。
将词典特征向量传入双向循环神经网络。由于词典信息没有充分考虑上下文信息,而借助双向循环神经网络能够让单个字符对应的表征向量更好地表达它在词中的位置信息,此模块的输出如下:
其中,fi是字符ci的特征向量,
1-3获得语言模型的输出:
利用目标领域的无标注集预训练好语言模型,对于传入的文本序列,能够得到语言模型的输出,公式如下:
其中
步骤2、使用类似门控循环单元的门结构来处理BERT模型、词典模块和语言模型的输出,公式如下:
z=σ(UzhDICT+LM+WZhBERT+bz)
r=σ(UrhDICT+LM+WrhBERT+br)
其中,z和r分别表示更新门和重置门,Uz、WZ表示更新门的权重矩阵,bz表示更新门的偏置量。r表示重置门。Ur、Wr表示重置门的权重矩阵、br表示重置门的偏置量。
步骤3、使用softmax函数,得到每个字符对应的预测概率
3-1使用softmax函数,得到每个字符对应的预测概率
其中,W是一个权重矩阵,b是偏置量。
3-2.给出一个序列的正确标注y1,y2,...,yn,其中yi使用独热编码表示。交叉熵损失函数表示如下:
其中,Y={y1,y2,...,yn},
通过最小化交叉熵损失函数,模型实现了反向传播。
本发明有益效果如下:需要再添加3-4行
本发明在BERT模型中融入了词典和目标领域的无标注集信息,构造了一种新的中文分词神经网络模型。为了提取有利于分词的词典信息,本发明构造了一种词典特征向量,并通过双向循环神经网络,使得词典向量能紧密结合上下文信息。对于无标注集信息的提取,本发明使用了语言模型。实验证明,在融入词典和无标注集信息后,该模型的领域适应性要高于单纯的BERT分词模型。另外,该模型只需要在标注集所在领域训练一次,就可以适用于其他不同领域。因此,它的训练成本极低,而领域适应性却极强。
附图说明
图1是本发明的整体实施方案流程图;
图2是本发明的神经网络结构图;
图3是对图2中BERT模块的展开;
图4是对图2中DICT模块的展开。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
如图1-4所示,一种基于深度学习的领域自适应中文分词方法,具体实现步骤如下:
步骤1、对文本序列进行处理得到BERT模型的输出、词典模块的输出和语言模型的输出。如图3所示,将文本序列输入图3所示BERT中文预训练模型。
1-1、获得BERT模型的输出:
将文本序列传入BERT模型,对于一个文本序列,将之输入BERT中文预训练模型,可以得到此BERT模型的输出。
其中,Ei表示字符i的词向量。
1-2获得词典模块的输出:
为文本序列中每个字符构造一个词典特征向量,将之传入双向循环神经网络,得到词典模块的输出;对于一个输入序列C=(c1,c2,…,cn),用一个四维的特征向量fi来表示其对应的字符ci,可以得到特征序列F=(f1,f2,…,fn)。fi的四个维度分别对应B、M、E、S(词的首字符、中间字符、末尾字符、单个字符成词)。例如,fi2表示fi的第二个维度,它的值表示ci标识M的概率。
对于每个字符ci,获取其特征向量fi的具体算法流程如下:
①.初始化,设置flag=0,fi=(0.1,0.1,0.1,0.1)(因为字符匹配无法完整地考虑上下文信息,所以我们将概率设为0.9和0.1,而不是1和0)。
②.计算出ci的n-grams窗口词汇,如表1所示。
③.判断每个词汇是否存在于词典中,如果存在,转步骤④,不存在,重复步骤③。遍历完所有词汇后转步骤⑤;
④.设置flag=1,索引ci在这个词汇中的位置index,如果index=0,fi1=0.9(表示ci标识B的可能性为0.9),如果index=len(词汇长度)-1,fi3=0.9,否则fi2=0.9。转步骤③。
⑤.如果flag=0,表示所有窗口词汇都不在词典中,此时设置fi4=0.9。
将词典特征向量传入双向循环神经网络。由于词典信息没有充分考虑上下文信息,而借助双向循环神经网络能够让单个字符对应的表征向量更好地表达它在词中的位置信息,此模块的输出如下:
其中,fi是字符ci的特征向量,
1-3获得语言模型的输出:
利用目标领域的无标注集预训练好语言模型,对于传入的文本序列,能够得到语言模型的输出,公式如下:
其中
步骤2、使用类似门控循环单元的门结构来处理BERT模型、词典模块和语言模型的输出,公式如下:
z=σ(UzhDICT+LM+WZhBERT+bz)
r=σ(UrhDICT+LM+WrhBERT+br)
其中,z和r分别表示更新门和重置门,Uz、WZ表示更新门的权重矩阵,bz表示更新门的偏置量。r表示重置门。Ur、Wr表示重置门的权重矩阵、br表示重置门的偏置量。
步骤3、使用softmax函数,得到每个字符对应的预测概率yi,公式如下:
3-1使用softmax函数,得到每个字符对应的预测概率
其中,W是一个权重矩阵,b是偏置量。
3-2.给出一个序列的正确标注y1,y2,...,yn,其中yi使用独热编码表示。交叉熵损失函数表示如下:
其中,Y={y1,y2,...,yn},
通过最小化交叉熵损失函数,模型实现了反向传播。最终得到结果,该发明极大增强了中文分词模型的领域适应性。
机译: 基于深度学习,存储介质和计算机设备的中文分词方法和装置
机译: 基于深度学习的自动驾驶汽车,基于深度学习的自动驾驶控制装置,以及基于深度学习的自动驾驶控制方法
机译: 基于深度学习的自驾车,基于深度学习的自驾车控制装置以及基于深度学习的自驾车控制方法