APP下载

基于弱标注数据的汉语分词领域移植

2019-10-21李正华黄德朋

中文信息学报 2019年9期
关键词:百科分词预处理

朱 运,李正华,黄德朋,张 民

(苏州大学 计算机科学与技术学院,江苏 苏州 215006)

0 引言

汉语分词(Chinese word segmentation,CWS)是将输入的句子切分成词序列的过程。作为其他自然语言处理任务(如词性标注[1]、句法分析[2]、信息抽取[3]、情感分析[4]等)的基础,汉语分词的结果会直接影响上层任务的性能。

目前,基于统计的汉语分词方法在封闭领域内已经获得很高的性能[5-6]。这些模型使用的训练数据大多来源于人工标注的新闻语料,其中具有代表性的有Xue等[7]构造的宾州中文树库(Penn Chinese Treebank,CTB)以及由北京大学计算语言学研究所构造的《人民日报》语料库(People’s Daily,PD)[8]。然而,当该任务的测试数据属于微博、小说等非新闻领域时,分词性能会大幅下降。因此,汉语分词的领域移植问题一直是一个难题。

为了应对这一难题,传统的处理方法是标注一部分目标领域的数据,将其作为额外的训练语料混合到原有训练语料中。这种方法虽然有效,但是代价高昂,需要花费大量的人力、时间去标注数据。另一种广泛采用的方法是利用互联网数据来提供有益于模型的分词信息。虽然这些互联网数据可以提供的信息有限,但是来源丰富且易于获得。

本文中,我们从两个方面来提升领域移植的性能。第一,我们对测试数据进行预处理并提取稀疏特征,以此来提升神经网络模型本身的泛化能力;第二,我们采用Jiang 等[9]和Liu等[10]的做法,利用网页弱标注数据弥补模型缺少的分词信息,提升模型的新词识别能力。

我们在SIGHAN Bakeoff 2010评测数据以及ZhuXian (ZX)数据集上进行实验。最终结果表明,我们的方法显著提升了领域移植的分词性能。现有模型在对测试数据进行预处理以及提取稀疏特征后各个领域的F值提升2.7%,百科弱标注数据的加入使得F值进一步提升了0.9%。

1 基于BiLSTM-CRF的分词模型

汉语分词可以被视为一个序列标注问题,即句子中的每个汉字从左到右依次被赋予一个相应的分词切割标签。本文采用四标签集T={B, M, E, S}来表示分词标签。B、M、E分别表示当前字位于一个词的开始、中间和结尾,S表示当前字单字成词。

全标注场景中,句子的每个位置上都有一个确定的标签,因此这句话仅有一个合理的标签序列。如图1所示,句子“我是中国人。”在图中对应的分词标签序列就是(S, S, B, M, E, S)。

图1 “我是中国人。”的全标注标签序列

采用Chen等[11]的做法,我们将BiLSTM-CRF模型(1)https://github.com/YUNMI2/cws作为基础模型。如图2所示,模型包含表示层、编码层、得分层和预测层4个部分。表示层通过窗口化N-gram信息来捕捉局部特征,编码层通过Bidirectional Long Short-Term Memory(BiLSTM)进行句子信息编码,得分层通过Multilayer Perceptron(MLP)计算每个标签得分,预测层使用Conditional Random Field (CRF)预测整个标签序列。

图2 BiLSTM-CRF模型

1.1 表示层

表示层中,我们采用随机初始化的方式来初始化一个词嵌入向量查询表,通过查询索引表来获取当前字的unigram以及bigram的词嵌入向量。

给定一个句子S=c1,c2,c3,…,cn,ci表示句子中第i个字,n表示句子中字的个数。对于句中每个字符ci,我们窗口化该字及其周围字的N-gram信息enc(ci)获得当前字的局部特征向量表示Xi。如图3所示,e(ci)和e(ci-1ci)分别表示字符ci的unigram嵌入向量和bigram嵌入向量,r表示窗口的大小,那么Xi可以表示为如式(1)、式(2)所示。

enc(ci)=e(ci)⊕e(ci-1ci)

(1)

Xi=enc(ci-r)⊕…⊕enc(ci)⊕…⊕enc(ci+r)

(2)

图3 字符ci的局部特征表示Xi

1.2 编码层

编码层中使用BiLSTM单元负责对句子信息进行编码。我们将表示层的输出Xi作为LSTM的输入,通过LSTM对整个句子序列进行编码得到字符ci的全局信息hi,如式(3)~式(7)所示。

ii=σ(Win·[hi-1,xi]+bin)

(3)

fi=σ(Wfg·[hi-1,xi]+bfg)

(4)

oi=σ(Wout·[hi-1,xi]+bout)

(5)

ci=fi·ci-1+ii·tanh(Wc·[hi-1,xi]+bc)

(6)

hi=oi·tanh(ci)

(7)

其中,ii,fi,oi,ci分别表示第i个字对应的输入门、遗忘门、输出门和细胞状态的输出,xi和hi表示第i个字对应的输入和隐藏层输出。σ表示sigmoid 激活函数,W和b分别对应相应门的权重以及偏置。

由于单向的LSTM仅能编码单个方向的句子信息,因此我们将前向、后向LSTM的隐层输出拼接,得到字符ci的BiLSTM表示hi,如式(8)所示。

1.3 得分层

得分层中,我们采用MLP计算得到每个标签的得分。我们将BiLSTM单元的输出hi作为输入,计算得到句子中每个位置上的字对应的每个标签的得分Pi,如式(9)所示。

其中,Wmlp和bmlp分别表示MLP层的权重和偏置。

1.4 预测层

预测层中,我们采用CRF进行最终的标签序列优化。

全标注场景下,句子中每个字都有一个明确的分词标签,所以在包含N个句子的全标注数据集D中,长度为n的句子S在标签集合T上所有可能的Tn种标签序列中仅有一条正确的路径Y。对于Y=y1,y2, …,yn,我们定义Score(S,Y)为句子S被标记为Y的得分,p(Y|S)表示句子S被标记为序列Y的概率。那么全标注CRF的学习目标就是最大化权重W下句子S被标记为Y的对数似然函数LL(D;W),如式(10)~式(13)所示。

(10)

(11)

(12)

(13)

其中,A表示转移矩阵,Ai,j表示标签集合T中i标签转移到j标签的分数,Z(S)表示句子S的Tn种可能得分之和。

2 基于弱标注数据的分词方法

Jiang等[9]工作表明,在基于传统离散特征的分词方法中融入弱标注数据可以显著提高领域移植的性能。

与全标注数据不同,弱标注数据仅能提供句子中少部分位置上的分词信息,即句子中只有部分位置上有确定的或者模糊的标签。在这种弱标签的约束下,句子的合理标签序列不止一条。如图4所示,在“我是中国人。”这句话中,我们已知“/中国人/”和“/中国/人/”是可能的分词结果,其余位置未知,那么该句所有的满足已知约束的标签序列为({B, M, E, S}, {B, M, E, S}, {B}, {M, E}, {E, S}, {B, M, E, S})。

图4 “我是中国人。”的弱标注示例

2.1 挖掘弱标注数据

我们采用Jiang等[9]的方法从网页文本中挖掘弱标注数据。在网页数据中,词语的边界信息隐藏在超链接和其他标记注释中。这些超链接在句中独立于其周围的文本,具有独立的意义。而在汉语分词任务中,词是句中包含独立意义的单位。我们通过这一共性挖掘网页中包含潜在分词切分信息的弱标注数据。

我们选取百科网页作为弱标注数据的来源。百度百科几乎涵盖了所有领域,由于用户的参与,所以保证了信息的时效性以及涵盖知识的领域宽广性,但也为百科数据带来了大量的噪声。

同时,不同分词规范的存在也允许同一句话的标签序列可以不唯一,即在不同的标注规范中同一句话可以被标注为不同的标签序列。例如,

百科数据1“李震是辽宁省电大经济专业中心组研究员”。

在百科数据1中,“辽宁省”是一个超链接。遵循不同的分词规范,“辽宁省”可以被切分为“/辽宁/省/”和“/辽宁省/”两种情况。为了避免引入百科数据给模型带来大量噪声,我们采用了模糊标注的方法给超链接片段的边界字赋予一个模糊的标签。在百科数据1中,我们将超链接片段中左右边界字的标签集合缩小,即“辽”和“省”对应的分词标签集是{B, S}和{E, S}。同时超链接周边字的标签集也被限制减小,即“是”和“电”的标签只能是{E, S}和{B, S},其余无关的汉字的标签集都是全标签集,即{B, M, E, S}。

模糊标注允许不同的分词规范,限制了字的可能标签集合,同时减少了整个分词标签序列的搜索空间。我们调用Beautiful Soup(2)https://www.crummy.com/software/BeautifulSoup/对百科网页的HTML标签进行解析,同时去掉弱标注片段是单字的情况,最终保留了句子长度在10到100个字之间的54 130 117句百科数据。由于加入过多的弱标注数据会耗费大量训练的时间,因此我们从中随机抽取了50万句百科数据进行实验。

2.2 基于弱标注数据的训练方法

(14)

(15)

(16)

至此,弱标注数据和全标注数据的损失函数形式保持一致,模型可以统一处理弱标注数据和全标注数据。那么全标注的数据集D和弱标注数据集D′混合之后的损失函数就是两者损失函数之和,如式(17)所示。

2.3 基于弱标注片段出现频率的数据筛选方法

百科弱标注数据含有大量噪声,如果直接采用所有数据,就会把完整标注数据淹没且弱标注数据中重要的样本也不能充分发挥作用。因此我们提出了一种简单有效的百科数据筛选方法。

我们认为,对模型有益的分词信息集中在弱标注数据的片段上,所以我们统计弱标注片段整体出现在测试领域dev数据集上出现的频率,并定义一句话的领域相关性为这句话中所有弱标注片段的出现频率之和。最后,我们仅保留出现频率大于0的百科句子。最终保留的百科数据统计如表1所示。

表1 不同筛选方法保留的百科数据规模统计(句子数)

3 数据预处理: 连续多个字符合并

汉语分词中,未登录词(OOV)的识别一直是一个难题,而领域移植的目标领域中往往包含很多未登录词。现有模型难以识别这些领域的未登录词,因此我们对数据进行了预处理来提升模型的识别能力。通过对数据进行观察,我们发现了一些有趣的规律,特定领域的专业词汇往往具备以下特征。

(1) 连续的数字或者大小写相同的英文,例如,“USB”等;

(2) 连续的英文且大小写相间隔,大写字母往往表示一个词汇的开头,如人名等;

(3) 连续的非中文字符中英文、数字以及特定的标点符号夹杂,如“RS-232”等。

针对上述情况,现有模型的预测结果不是很理想,而基于规则的方式却能很好地识别出这些专业词汇。我们对语料进行规则预处理,将具备上述特征的连续字符合并成一个整体单元(类似于一个普通的汉字),然后将处理之后的句子重新输入到模型中进行预测。

4 融合传统稀疏特征

在对数据进行预处理之后,我们对比测试数据的预测标签和正确标签,发现模型对于一些有潜力预测正确的词语识别较差。

现有模型可以较好地识别训练语料里面存在的数字、英文等非中文字符,却不能辨别训练语料里面未出现的其他非中文字符。受传统稀疏特征模板启发,我们发现稀疏特征可以很好地弥补上述不足。因此,我们在神经网络模型中引入传统稀疏特征。

我们采用的特征模板如表2所示。其中,ci表示句子中的第i个字;N-gram特征信息表示这个字周围的信息;Type表示这个字属于Number,Punctuation,English还是Chinese;Identical表示第i个字和前面一个字的是否相同,这个特征捕捉周围字是否是叠词这一信息。

表2 句中第i个字的特征模板

我们按照上述模板依次对句子中的每个字进行特征抽取,并随机初始化每种特征所映射的嵌入向量。e(fi,k)表示第i个字的m个稀疏特征中第k个所对应的向量,最后将所有特征对应的嵌入向量进行拼接来替换式(1)中enc(ci),如式(18)所示。

5 实验

5.1 数据及模型设置

我们分别在两种不同来源的数据集上进行实验,分别是SIGHAN Bakeoff 2010评测数据以及ZX数据集。其中,SIGHAN Bakeoff 2010评测数据包含四个具体的领域,包括Finance (Fin),Medicine (Med),Literature (Lit),Computer (Com)。ZX数据集来源于网络小说。为了与前人的工作进行比较,我们采用Jiang等[9]和Liu等[10]的实验设置,将PD作为源领域训练数据去测试SIGHAN Bakeoff 2010评测数据。同时,我们采用Liu等[10]的实验设置,使用CTB5作为源领域训练数据去测试ZX数据。具体的数据规模统计如表3所示。

表3 数据规模统计

实验中,弱标注训练数据的规模为500 000句,而全标注的训练数据量仅有不到30 000句,如果训练阶段将弱标注数据和全标注数据直接混合,那么全标注数据将远远小于弱标注的数量(30 000 和 500 000)。为了可以平衡不同语料在模型训练中的贡献,我们采用Li等[13]提出的corpus weighting的训练方法,每次迭代从全标注数据中随机抽取M个句子,同时从弱标注语料中随机抽取N个句子,混合打乱作为一次迭代的全部训练语料。整个训练过程中,模型如果连续I次迭代在Dev数据集上F值不提高就停止。

本实验中,我们使用Adam更新算法[14]对模型进行更新。基于初步实验结果,我们对所有的模型均采用M=N=10 000以及I=50的实验设置。

5.2 数据预处理的作用

如表4所示,数据预处理对除ZX以外的4个测试数据的F值都有超过1%的提升,且这些数据的F值提升均值达到了1.71%。

5.3 传统离散特征的作用

在数据预处理的基础上,我们在模型中引入传统稀疏特征。如表4所示,传统特征的引入可以在数据预处理的基础上进一步获得0.97%的F值提升,且在Com、Fin和ZX数据上提升显著。

5.4 弱标注数据的作用

在对数据进行预处理和引入传统特征的基础上,我们在全标注训练数据中分别混入两种百科数据。如表4所示,直接混合百科数据训练的方式在所有领域上可以平均提升0.66%。筛选后虽然只保留了很少一部分的弱标注数据,但是可以更有效地帮助模型,在所有领域上平均提升0.9%。这个结果表明,我们提出的数据筛选方法是有效的,不但可以提高模型训练的效率,同时可以更精准地提高模型在特定领域上的性能。最终,我们在所有领域上平均提升3.6%。

5.5 最终结果比较

表5列举和比较了在两个数据集上的相关工作的结果。首先我们比较了近年来在本文数据集上的基准系统(不使用额外弱标注数据)的结果。其中,Zhang 等[15]是目前最新的汉语分词领域移植的工作,其主要贡献是探讨如何将词典知识融入分词模型中。由于Zhang 等[15]采用与 Liu 等[10]不同的实验设置,为了和他们的方法进行比较,我们使用作者公布的基准系统代码(3)https://github.com/fudannlp16/CWS_Dict, 在Liu 等[10]的实验数据集上运行得到基准结果。由表5可以看出, 我们的基准系统和其他工作相比,性能略好。

表5 最终实验结果统计(F值)

进而,我们比较了采用弱标注数据的几种方法的结果。和Jiang 等[9]和Liu 等[10]相比,我们的方法在SIGHAN Bakeoff 2010数据集上的平均F值超过前者。

值得注意的是,在ZX数据集上,我们表4中的性能89.68%仍然低于Liu等[10]的90.63%。在此我们真诚感谢审稿人提出这个问题。经过和原文作者交流,我们借鉴Liu 等[10]的方法,使用他们手动构建的词典(155个和ZX高度相关的实体名),然后用这个词典对ZX剩余的无标注数据(15 997句)进行前向和后向最大匹配分词,如果两个分词结果中都包含了一个词典词,则将这个词典词在这个句子中确定为一个分词答案,从而形成弱标注数据。我们额外使用了这部分弱标注数据,性能从89.68%提高到90.92%。

通过最终结果可以看到,本文提出的方法最终性能略高于Liu 等[10]。我们在相关工作部分讨论两种方法的差异以及本文方法的贡献。

5.6 结果分析

在数据预处理阶段,测试领域数据中符合规则合并的地方越多,性能提升越明显。如表6所示,Com和Fin两个领域上预处理的地方最多,性能提升最明显。

表6 预处理方法修改的数量总计以及Test数据集上F值提升统计

ComFinMedLitZXAvg#ChangeTest-F2507+2.73933+2.95498+1.43105+1.4100808.6+1.70

在数据预处理基础上引入传统特征的方法在所有领域上性能均值提升明显且稳定。如表4所示,传统特征的引入在所有领域上都不逊色于数据预处理,而且在Com、Fin和ZX三个领域上性能可以达到新的峰值。

此外,弱标注数据的领域相关性很大程度上决定了领域移植任务性能的提升幅度。以弱标注片段出现频率为条件筛选百科数据的方法要求苛刻,保留的数据规模小且质量高。如表1所示,筛选保留的数据仅有原有语料20%的数据规模,但在性能上却能达到甚至超过直接混合的方法。

最后,在使用与目标领域相关的网页弱标注数据提升对应领域的分词性能基础之上,混入该领域的无标注数据可以进一步提升分词性能。

6 相关工作

目前有很多研究工作尝试利用额外无标注数据来提升汉语分词性能。如Zhao 等[15]基于大规模无标注数据收集字符之间的共同信息,以此来提升分词的性能;Li 等[16]使用大规模语料上的标点信息来学习一个分词模型,该方法在未登录词的识别上能够达到很好的性能;Sun 等[17]利用无标注数据的统计特征来提升分词性能。然而,这些工作都没有针对领域移植场景。

在利用领域词典特征方面,Zhang 等[18]提出将领域词典特征融入基于传统离散特征的分词模型中,提升目标领域上的分词性能。Zhang 等[19]将这一思想应用到基于神经网络的分词模型中。

在利用弱标注数据方面,Jiang 等[9]使用中文wikipedia数据获取160 000弱标注句子,来提升分词领域移植性能,其采用了基于感知器的全局线性模型作为基准分词方法。Liu 等[20]借鉴了Jiang 等[9]的工作并同样采用wikipedia弱标注数据,但采用基于传统CRF模型作为基准分词方法。不同于这两个工作,本文采用了基于神经网络的BiLSTM-CRF模型,并对其进行扩展,以利用弱标注数据。本文结果表明,在神经网络模型上,弱标注数据同样可以大幅度提高分词领域移植的性能。

从弱标注数据筛选的角度来看,本文和前人工作也有不同。Jiang 等[9]直接将标注数据和弱标注数据进行合并。Liu 等[10]使用自动获取的领域相关词典对弱标注数据进行了筛选。和Liu 等[10]的工作相比,本文所提出的方法只需要目标领域的无标注数据,而不需要构造领域词典,因此更加简单。弱标注数据筛选可以有效提高训练效率,并且可以防止人工标注数据被弱标注数据淹没。

近年来也有一些分词模型本身的创新性工作,包括基于字嵌入向量刻画语义信息的序列标注分词方法Chen 等[11]、基于双字嵌入向量表示的分词方法Zhang 等[19]、基于词的神经网络分词方法Cai 等[20]。本文中,我们从当前字上下文抽取稀疏特征,并得到对应的嵌入向量,作为BiLSTM的额外输入。

7 结束语

目前,基于神经网络的分词方法在封闭领域文本上性能很高,但是在其他领域上性能下降明显。由于目标领域的人工标注数据难以获取,我们借鉴前人的工作,从可自由获取的数据中抽取弱标注数据,帮助提升领域移植性能。本文使用BiLSTM-CRF模型并且结合网页弱标注数据来处理汉语分词领域移植任务。在提升领域移植性能方面,我们从筛选弱标注数据和提升模型本身泛化能力两个方面出发。一方面,筛选与目标领域相关的弱标注数据可以更好地发挥弱标注数据里重要样本的作用。另一方面,我们对数据进行预处理以及在深度神经网络模型中引入传统稀疏特征,便于模型学习特定领域未登录词与已登录词之间的联系。最后,在所有的领域移植任务上我们的性能都达到,甚至超过前人的结果。

猜你喜欢

百科分词预处理
求解奇异线性系统的右预处理MINRES 方法
分词在英语教学中的妙用
高COD二噻烷生产废水预处理研究
乐乐“画”百科
结巴分词在词云中的应用
结巴分词在词云中的应用
基于预处理MUSIC算法的分布式阵列DOA估计
基于膜过滤的反渗透海水淡化预处理
探索百科
超有趣的互动百科