论文部分内容阅读
一、引言
一个高质量、大规模的分词语料库是中文信息处理的根基。目前机器自动分词的正确率已达到97%左右,但由于校对者受语境干扰和自身语感的差异,时常会出现一个字串的意义、功能都是确定的但给出了不同的切分形式的情况,我们称之为分词变异。由于意义、功能是否确定在分词层面机器难以判断,因此分词变异的外在表现和组合型歧义相同,同时,在一些专名和非专名串之间也存在着类似的问题。多种成因共同导致了复杂的分词不一致现象:一个相同的字串(不考虑它的意义、功能)在语料库中存在着不同的切分形式。
孙茂松(1999)认为:衡量一个语料库质量的重要标准之一是分词后的语料库是否具有比较高的一致性。因此,建设一个高质量的语料库,分词不一致的处理是一个无法回避的问题,而处理的前提和关键就是识别出分词不一致的不同成因。
本文提出了一种基于机器学习的分词不一致自动识别方案,通过两遍识别,以特征词法识别结果为基础,让机器从中学习到规则后辅以人工规则再处理第一遍未识别的不一致字串。既解决了单一使用特征词法召回率过低和单一使用规则法容易忽视小规则的问题,也克服了原先方法前期需要投入大量人力进行人工校对和规则总结的缺陷。
我们从1998年1月《人民日报》200万字的语料库中抽取到40 926个分词不一致字串,将字串相同的归为1组,共1797组。从中抽样10131条473组做人工识别,其中5065条230组作为训练集,其余5066条243组作为测试集。
二、分词不一致现象分析
(一)成因分析
分词不一致现象的成因主要归为以下三类,在识别时分别标注对应的字母:
(A)分词变异。比如:
四/m个/q大字/n“/w福如东海/i”/w
恭贺/v新春/t”/w的/u金色/n大/a字/n分外/d醒目/a。/w
(B)组合型歧义。比如:
多方/d筹集/v资金/n6亿/m元/q,/w
运/v来/v山基土/n5600/m多/m方/q,/w
(C)专名和非专名串。比如:
《/w电力/n报/n》/w记者/n张/nr大和/nr
密度/n之/u大/a和/c持续/vn时间/n之/u长/Ng,/w
(二)组合情况分析
每一组的情况并不一定是单纯的,会有A、B、C三类组合出现的可能。常见的组合有一合对多分和一分对多合两种,前者比如:
等到/v波罗的海/ns三/m国/n加入/v北约/j(1)
因为/c 等/v到/v片子/n剪/v出来/v,/w(2)
事故/n证明/n及/c医院/n证明/n 等/u到/v保险/n公司/n(3)
其中,(1)和(2)的关系是A类,而(1)和(3)的关系是B类。
后者比如:
屋子/n分/v东/f西/f两/m 个/q 厢房/n(4)
广场/n东西/f两侧/f百/m米/q灯/n廊/Ng(5)
武侠小说/n本身/r是/v娱乐性/n的/u东西/n(6)
其中,(4)和(5)的关系是A类,而(4)和(6)的关系是B类。
三、识别算法设计
算法流程如下:
1.抽取语料库中所有分词不一致的字串、词性标记和上下文等信息;
2.前期处理全部C类;
3.第1遍识别,使用特征词法标记部分A类,并让机器从中学习规则;
4.第2遍识别,使用学习到的规则加上人工辅助规则标记剩下的A类和B类。
(一)分词不一致字串的抽取
表1中列出了每一个分词不一致字串抽取的信息,其中上下文的观察窗口设为5。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/xdyl/xdyl200711/xdyl20071143-1-l.jpg)
(二)前期处理
前期主要将有明显特征的C类先行识别出来。由C类引起的分词不一致可以从词性标记判定,专名包括人名(nr)、地名(ns)、机构团体名(nt)、其他专名(nz)四种。剔除专名后,如果该组不再存在不一致现象,则不对该组再做处理;否则该组中剩下的不一致字串进入下一环节识别。
(三)特征词法
前期处理后,关键将集中在识别A类和B类。我们首先使用特征词法标注一部分。
A类分、合两种形式由于意义、功能是确定的,因此语境中可能会存在着相同的特征词,而B类这种可能性将远小于A类。
首先,一组中以Keytags的不同分类,一般情况分为分(wordnum>1)、合(wordnum=1)两类,但也有两类以上的,比如keystr=大地的组就有三类:/a;/a/u;/a/d。
然后,抽取每一类中所有不一致字串的上下文特征词构成一张左、右特征词表。特征词是由leftwords和rightwords去掉一些没有明显识别作用的词类(比如标点、连词)和词(比如“是”)组成。为避免对于高频特征词的过低估计,规定一个词出现几次就在特征词表中登记几次。
接着,将不同分类两两组合,计算它们之间特征词共现率,公式为:
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/xdyl/xdyl200711/xdyl20071143-2-l.jpg)
其中,tableleft1 和tableright1分别是组合中特征词数较多的表,M(table1,table2)函数对table1中的每个词考察其是否在table2中出现,如出现则计数加1,N(table)函数计算table的特征词数。
最后,我们还需要从训练集中提取阈值去判断组合内是否具有同一性。其中有两种情况:1.wordnum1≠wordnum2,则超过阈值可初步识别该组合为A类;2.wordnum1=wordnum2,则超过阈值可将该组合合为一类处理。尽管两种情况结果不同,但判断同一性这点是相同的,因此只需一个阈值就够了。我们使用出现频率较高的情况1作为阈值提取的依据。
表2中统计了不同阈值和A类的识别正确率、成功识别组合数之间的关系。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/xdyl/xdyl200711/xdyl20071143-3-l.jpg)
在第1遍识别时,我们希望得到较高的正确率。从表2中可以初步将阈值确定在0.03-0.04之间,经过进一步计算,当阈值为0.032时,正确率达到最高为91.67%。对于情况2也使用0.032作为阈值。
(四)规则学习
使用特征词法的目的除了识别出部分A类以外,更重要的是我们希望将特征词法的识别结果提供给机器以学习到A类规则库。在第(三)节中我们希望得到最理想的正确率,但对于机器学习来说,由于后期还有规则频率阈值的约束,就并不需要那么高的正确率,而希望机器能多学习到一些规则备用。因此,我们将阈值从0.032降低到0.02作为规则提取的阈值,以放弃部分正确率的代价换来成功识别组合数的增加。
机器在对40926个分词不一致字串进行第1遍识别后共学习到不同规则186条,舍弃低频规则,将出现频率3次以上的44条规则放入A类规则库。表3中列出了出现频率最高的5条规则。这些高频规则与孙茂松(1999)所总结的导致分词不一致的主要结构类型是吻合的。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/xdyl/xdyl200711/xdyl20071143-4-l.jpg)
(五)人工辅助规则
为解决一些具有一定规律性和普遍性但规则复杂机器难以学习的情况,我们添加了3条人工辅助规则与第(四)节的规则库配合使用。
人工规则1:如果分、合两类情况中出现一类所有不一致字串的前邻接词与词性高度一致(对数词只要求词性一致,不考虑标点和助词等特征性不强的词类),而另一类中所有字串的前邻接词不含有该词,则将这种对类内具有高度相似性对类外具有严格排他性的组合认定为B类。在实际操作中,我们将高度一致的标准设置为:频率<10的类相似度=100%;频率≥10的类相似度>90%,这样可以有效避免高频类中由于极个别字串分词错误造成的干扰。
人工规则2:如果合时keytags为/i或/l,或分时keytags前含/h或后含/k,则认定该组合属于A类。孙茂松(1999)、苗玺(2006)均将成语、习用语、前后词缀作为构成A类的常见结构。这类词合时词性标记单一但分时由于本身结构复杂造成词性多样,机器难以学习到强势规则而造成漏检。
人工规则3:对分时wordnum全部大于2的组标为A类。尽管这种多词不一致串在人工内省造句时仍然可能是B类,但数目极少,我们可以直接识别为A类。
(六)规则库识别
进行第2遍识别,将一组中按Keytags的不同分类,对wordnum不同的类两两组合。首先使用3条人工辅助规则对每个组合进行判断,如果符合则完成识别,否则如果该组合在第1遍识别时未能标识,则从A类规则库中寻找匹配的规则,如果找到则标识为A类,否则标识为B类。
四、实验结果
我们使用此算法标注了抽取出的全部40926个分词不一致字串,将训练集中5065条230组人工标注结果与机器标注进行比对,一组中标识全部正确的算作正确,封闭测试正确率为85.22%,对于A类,正确率86.21%,召回率88.65%;对测试集的5066条243组进行同样的比对,开放测试正确率为83.13%,对于A类,正确率86.62%,召回率86.08%。
五、结语
如何提高识别的正确率是我们进一步研究的重点,我们觉得主要有这几方面的工作要做:(1)深入观察语料,挖掘分词不一致现象不同成因之间的深层规律,拓展目前特征词加规则库的模式;(2)让机器在自动学习规则的基础上能归纳、合并规则,同时增加规则的要素约束规则失效;(3)抵抗语料库自身错误等干扰因素带来的影响。
参考文献:
[1]孙茂松. 谈谈汉语分词语料库的一致性问题[J]. 语言文字应用,1999,(2):88-91.
[2]杜永萍 郑家恒. 分词及词性标注一致性校对系统的设计与实现[J]. 电脑开发与应用,2001,(10):16-18.
[3]刘江 郑家恒 张虎. 中文文本语料库分词一致性检验技术的初探[J]. 计算机应用研究,2005,(9):52-54.
[4]苗 玺 郑家恒.中文语料库分词不一致的分类处理研究[J]. 山西大学学报,2006,(1):22-25.
(卢俊之, 南京师范大学文学院)
一个高质量、大规模的分词语料库是中文信息处理的根基。目前机器自动分词的正确率已达到97%左右,但由于校对者受语境干扰和自身语感的差异,时常会出现一个字串的意义、功能都是确定的但给出了不同的切分形式的情况,我们称之为分词变异。由于意义、功能是否确定在分词层面机器难以判断,因此分词变异的外在表现和组合型歧义相同,同时,在一些专名和非专名串之间也存在着类似的问题。多种成因共同导致了复杂的分词不一致现象:一个相同的字串(不考虑它的意义、功能)在语料库中存在着不同的切分形式。
孙茂松(1999)认为:衡量一个语料库质量的重要标准之一是分词后的语料库是否具有比较高的一致性。因此,建设一个高质量的语料库,分词不一致的处理是一个无法回避的问题,而处理的前提和关键就是识别出分词不一致的不同成因。
本文提出了一种基于机器学习的分词不一致自动识别方案,通过两遍识别,以特征词法识别结果为基础,让机器从中学习到规则后辅以人工规则再处理第一遍未识别的不一致字串。既解决了单一使用特征词法召回率过低和单一使用规则法容易忽视小规则的问题,也克服了原先方法前期需要投入大量人力进行人工校对和规则总结的缺陷。
我们从1998年1月《人民日报》200万字的语料库中抽取到40 926个分词不一致字串,将字串相同的归为1组,共1797组。从中抽样10131条473组做人工识别,其中5065条230组作为训练集,其余5066条243组作为测试集。
二、分词不一致现象分析
(一)成因分析
分词不一致现象的成因主要归为以下三类,在识别时分别标注对应的字母:
(A)分词变异。比如:
四/m个/q大字/n“/w福如东海/i”/w
恭贺/v新春/t”/w的/u金色/n大/a字/n分外/d醒目/a。/w
(B)组合型歧义。比如:
多方/d筹集/v资金/n6亿/m元/q,/w
运/v来/v山基土/n5600/m多/m方/q,/w
(C)专名和非专名串。比如:
《/w电力/n报/n》/w记者/n张/nr大和/nr
密度/n之/u大/a和/c持续/vn时间/n之/u长/Ng,/w
(二)组合情况分析
每一组的情况并不一定是单纯的,会有A、B、C三类组合出现的可能。常见的组合有一合对多分和一分对多合两种,前者比如:
等到/v波罗的海/ns三/m国/n加入/v北约/j(1)
因为/c 等/v到/v片子/n剪/v出来/v,/w(2)
事故/n证明/n及/c医院/n证明/n 等/u到/v保险/n公司/n(3)
其中,(1)和(2)的关系是A类,而(1)和(3)的关系是B类。
后者比如:
屋子/n分/v东/f西/f两/m 个/q 厢房/n(4)
广场/n东西/f两侧/f百/m米/q灯/n廊/Ng(5)
武侠小说/n本身/r是/v娱乐性/n的/u东西/n(6)
其中,(4)和(5)的关系是A类,而(4)和(6)的关系是B类。
三、识别算法设计
算法流程如下:
1.抽取语料库中所有分词不一致的字串、词性标记和上下文等信息;
2.前期处理全部C类;
3.第1遍识别,使用特征词法标记部分A类,并让机器从中学习规则;
4.第2遍识别,使用学习到的规则加上人工辅助规则标记剩下的A类和B类。
(一)分词不一致字串的抽取
表1中列出了每一个分词不一致字串抽取的信息,其中上下文的观察窗口设为5。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/xdyl/xdyl200711/xdyl20071143-1-l.jpg)
(二)前期处理
前期主要将有明显特征的C类先行识别出来。由C类引起的分词不一致可以从词性标记判定,专名包括人名(nr)、地名(ns)、机构团体名(nt)、其他专名(nz)四种。剔除专名后,如果该组不再存在不一致现象,则不对该组再做处理;否则该组中剩下的不一致字串进入下一环节识别。
(三)特征词法
前期处理后,关键将集中在识别A类和B类。我们首先使用特征词法标注一部分。
A类分、合两种形式由于意义、功能是确定的,因此语境中可能会存在着相同的特征词,而B类这种可能性将远小于A类。
首先,一组中以Keytags的不同分类,一般情况分为分(wordnum>1)、合(wordnum=1)两类,但也有两类以上的,比如keystr=大地的组就有三类:/a;/a/u;/a/d。
然后,抽取每一类中所有不一致字串的上下文特征词构成一张左、右特征词表。特征词是由leftwords和rightwords去掉一些没有明显识别作用的词类(比如标点、连词)和词(比如“是”)组成。为避免对于高频特征词的过低估计,规定一个词出现几次就在特征词表中登记几次。
接着,将不同分类两两组合,计算它们之间特征词共现率,公式为:
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/xdyl/xdyl200711/xdyl20071143-2-l.jpg)
其中,tableleft1 和tableright1分别是组合中特征词数较多的表,M(table1,table2)函数对table1中的每个词考察其是否在table2中出现,如出现则计数加1,N(table)函数计算table的特征词数。
最后,我们还需要从训练集中提取阈值去判断组合内是否具有同一性。其中有两种情况:1.wordnum1≠wordnum2,则超过阈值可初步识别该组合为A类;2.wordnum1=wordnum2,则超过阈值可将该组合合为一类处理。尽管两种情况结果不同,但判断同一性这点是相同的,因此只需一个阈值就够了。我们使用出现频率较高的情况1作为阈值提取的依据。
表2中统计了不同阈值和A类的识别正确率、成功识别组合数之间的关系。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/xdyl/xdyl200711/xdyl20071143-3-l.jpg)
在第1遍识别时,我们希望得到较高的正确率。从表2中可以初步将阈值确定在0.03-0.04之间,经过进一步计算,当阈值为0.032时,正确率达到最高为91.67%。对于情况2也使用0.032作为阈值。
(四)规则学习
使用特征词法的目的除了识别出部分A类以外,更重要的是我们希望将特征词法的识别结果提供给机器以学习到A类规则库。在第(三)节中我们希望得到最理想的正确率,但对于机器学习来说,由于后期还有规则频率阈值的约束,就并不需要那么高的正确率,而希望机器能多学习到一些规则备用。因此,我们将阈值从0.032降低到0.02作为规则提取的阈值,以放弃部分正确率的代价换来成功识别组合数的增加。
机器在对40926个分词不一致字串进行第1遍识别后共学习到不同规则186条,舍弃低频规则,将出现频率3次以上的44条规则放入A类规则库。表3中列出了出现频率最高的5条规则。这些高频规则与孙茂松(1999)所总结的导致分词不一致的主要结构类型是吻合的。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/xdyl/xdyl200711/xdyl20071143-4-l.jpg)
(五)人工辅助规则
为解决一些具有一定规律性和普遍性但规则复杂机器难以学习的情况,我们添加了3条人工辅助规则与第(四)节的规则库配合使用。
人工规则1:如果分、合两类情况中出现一类所有不一致字串的前邻接词与词性高度一致(对数词只要求词性一致,不考虑标点和助词等特征性不强的词类),而另一类中所有字串的前邻接词不含有该词,则将这种对类内具有高度相似性对类外具有严格排他性的组合认定为B类。在实际操作中,我们将高度一致的标准设置为:频率<10的类相似度=100%;频率≥10的类相似度>90%,这样可以有效避免高频类中由于极个别字串分词错误造成的干扰。
人工规则2:如果合时keytags为/i或/l,或分时keytags前含/h或后含/k,则认定该组合属于A类。孙茂松(1999)、苗玺(2006)均将成语、习用语、前后词缀作为构成A类的常见结构。这类词合时词性标记单一但分时由于本身结构复杂造成词性多样,机器难以学习到强势规则而造成漏检。
人工规则3:对分时wordnum全部大于2的组标为A类。尽管这种多词不一致串在人工内省造句时仍然可能是B类,但数目极少,我们可以直接识别为A类。
(六)规则库识别
进行第2遍识别,将一组中按Keytags的不同分类,对wordnum不同的类两两组合。首先使用3条人工辅助规则对每个组合进行判断,如果符合则完成识别,否则如果该组合在第1遍识别时未能标识,则从A类规则库中寻找匹配的规则,如果找到则标识为A类,否则标识为B类。
四、实验结果
我们使用此算法标注了抽取出的全部40926个分词不一致字串,将训练集中5065条230组人工标注结果与机器标注进行比对,一组中标识全部正确的算作正确,封闭测试正确率为85.22%,对于A类,正确率86.21%,召回率88.65%;对测试集的5066条243组进行同样的比对,开放测试正确率为83.13%,对于A类,正确率86.62%,召回率86.08%。
五、结语
如何提高识别的正确率是我们进一步研究的重点,我们觉得主要有这几方面的工作要做:(1)深入观察语料,挖掘分词不一致现象不同成因之间的深层规律,拓展目前特征词加规则库的模式;(2)让机器在自动学习规则的基础上能归纳、合并规则,同时增加规则的要素约束规则失效;(3)抵抗语料库自身错误等干扰因素带来的影响。
参考文献:
[1]孙茂松. 谈谈汉语分词语料库的一致性问题[J]. 语言文字应用,1999,(2):88-91.
[2]杜永萍 郑家恒. 分词及词性标注一致性校对系统的设计与实现[J]. 电脑开发与应用,2001,(10):16-18.
[3]刘江 郑家恒 张虎. 中文文本语料库分词一致性检验技术的初探[J]. 计算机应用研究,2005,(9):52-54.
[4]苗 玺 郑家恒.中文语料库分词不一致的分类处理研究[J]. 山西大学学报,2006,(1):22-25.
(卢俊之, 南京师范大学文学院)