[0003] 针对基于深度学习的中文分词模型领域适应性弱的问题,本发明提供了一种基于深度学习的领域自适应中文分词方法,该方法能增强模型领域适应性。
[0004] 为解决技术问题,本发明提供的技术方案包括如下步骤:
[0005] 步骤1、对文本序列进行处理得到BERT模型的输出、词典模块的输出和语言模型的输出。
[0006] 1-1、获得BERT模型的输出:
[0007] 将文本序列传入BERT模型,对于一个文本序列,将之输入BERT中文预训练模型,可以得到此BERT模型的输出。
[0008]
[0009] 其中,Ei表示字符i的词向量。 是表示字符i-1的前向隐层状态, 表示字符i+1的后向隐层状态。
[0010] 1-2获得词典模块的输出:
[0011] 为文本序列中每个字符构造一个词典特征向量,将之传入双向循环神经网络,得到词典模块的输出;对于一个输入序列C=(c1,c2,…,cn),用一个四维的特征向量fi来表示其对应的字符ci,可以得到特征序列F=(f1,f2,…,fn)。fi的四个维度分别对应B、M、E、S(词的首字符、中间字符、末尾字符、单个字符成词)。例如,fi2表示fii的第二个维度,它的值表示ci标识M的概率。
[0012] 对于每个字符ci,获取其特征向量fi的具体算法流程如下:
[0013] ①.初始化,设置flag=0,fi=(0.1,0.1,0.1,0.1)(因为字符匹配无法完整地考虑上下文信息,所以我们将概率设为0.9和0.1,而不是1和0)。
[0014] ②.计算出ci的n-grams窗口词汇,如表1所示。
[0015] ③.判断每个词汇是否存在于词典中,如果存在,转步骤④,不存在,重复步骤③。遍历完所有词汇后转步骤⑤;
[0016] ④.设置flag=1,索引ci在这个词汇中的位置index,如果index=0,fi1=0.9(表示ci标识B的可能性为0.9),如果index=len(词汇长度)-1,fi3=0.9,否则fi2=0.9。转步骤③。
[0017] ⑤.如果flag=0,表示所有窗口词汇都不在词典中,此时设置fi4=0.9。
[0018] 将词典特征向量传入双向循环神经网络。由于词典信息没有充分考虑上下文信息,而借助双向循环神经网络能够让单个字符对应的表征向量更好地表达它在词中的位置信息,此模块的输出如下:
[0019]
[0020] 其中,fi是字符ci的特征向量, 是第i-1个字符前向隐藏层状态, 是第i+1个字符后向隐藏层状态,θ是BiLSTM的参数。
[0021] 1-3获得语言模型的输出:
[0022] 利用目标领域的无标注集预训练好语言模型,对于传入的文本序列,能够得到语言模型的输出,公式如下:
[0023]
[0024] 其中 表示前向的语言模型的输出, 表示后向的语言模型的输出。
[0025] 步骤2、使用类似门控循环单元的门结构来处理BERT模型、词典模块和语言模型的输出,公式如下:
[0026]
[0027] z=σ(UzhDICT+LM+WZhBERT+bz)
[0028] r=σ(UrhDICT+LM+WrhBERT+br)
[0029]
[0030]
[0031] 其中,z和r分别表示更新门和重置门,Uz、WZ表示更新门的权重矩阵,bz表示更新门的偏置量。r表示重置门。Ur、Wr表示重置门的权重矩阵、br表示重置门的偏置量。是候选隐藏状态, 表示权重矩阵, 表示偏置量。h是一个新的隐藏层状态。
[0032] 步骤3、使用softmax函数,得到每个字符对应的预测概率 公式如下:
[0033] 3-1使用softmax函数,得到每个字符对应的预测概率 公式如下:
[0034]
[0035] 其中,W是一个权重矩阵,b是偏置量。
[0036] 3-2.给出一个序列的正确标注y1,y2,…,yn,其中yi使用独热编码表示。交叉熵损失函数表示如下:
[0037]
[0038] 其中,Y={y1,y2,…,yn},
[0039] 通过最小化交叉熵损失函数,模型实现了反向传播。
[0040] 本发明有益效果如下:
[0041] 本发明在BERT模型中融入了词典和目标领域的无标注集信息,构造了一种新的中文分词神经网络模型。为了提取有利于分词的词典信息,本发明构造了一种词典特征向量,并通过双向循环神经网络,使得词典向量能紧密结合上下文信息。对于无标注集信息的提取,本发明使用了语言模型。实验证明,在融入词典和无标注集信息后,该模型的领域适应性要高于单纯的BERT分词模型。另外,该模型只需要在标注集所在领域训练一次,就可以适用于其他不同领域。因此,它的训练成本极低,而领域适应性却极强。