刘海霞,黄德根
(大连理工大学计算机科学与技术学院,辽宁大连116024)
汉语功能块识别属于汉语句法分析范畴,汉语的句法分析按其分析处理深度可依次分为词性标注处理、句法块分析、句法树分析等,功能块分析属于句法块分析的一种。句法块分析是一种部分分析技术,它与完全句法分析相对,完全句法分析要求通过一系列分析过程,最终得到句子的完整的句法树。而句法块分析是对完整的句法树分析进行合理分解[1],使得句法分析任务在某种程度上得到简化,达到提高句法分析效率的目的,同时也有利于句法分析技术在大规模真实文本处理系统中迅速得到应用。
由CIPS-ParsEval-2009的测试方案可知,汉语功能块是定义在句子层面上的功能性成分,主要描述句子中反映不同事件内容的基本信息单元[2]。它们一般占据了句子中的主语、谓语、宾语、状语、定语、中心语等功能位置,通过组合形成不同的句式,完成对真实世界中不同事件内容的再现描述,体现了汉语句子的基本骨架。功能块识别的目的是正确标注出包括主语块、状语块、述语块、宾语块、补语块、兼语块、定语块、中心块、独立块、其他特殊块等在内的功能块标记信息,覆盖自顶向下进行事件句式拆分而形成的各个基本信息单元,以显示句子在小句层面上的基本结构及骨架,为进一步的事件骨架树分析提供最小的功能块描述序列。
块(Chunk)的概念最早是由Abney在1991年提出的[3],在引入句法块概念的同时,他将句法分析分为三个阶段来进行:(1)块识别,利用基于有限状态分析机制的块识别器(Chunker)识别出句子中所有的块;(2)块内结构分析,对每个块内部的成分赋予合适的句法结构;(3)块间关系分析,利用块连接器(Attacker)将各个不同的块合成完整的句法分析树。依据这样的研究思路,将句法分析分解进行,一方面,可以对不同的子问题进行有针对性的处理,选用适合的语言模型和策略加以分析;另一方面,通过在块层次上进行自底向上的块间关系分析和自顶向下的块内结构分析,可以提高整体分析效率,降低句子分析的难度。
由于汉语功能块与汉语组块同属于句法块分析范畴,因此组块识别的研究经验也可以借鉴到功能块识别的研究任务中来。组块识别是在自然语言学习国际会议CoNLL-2000中作为共享任务提出的,用于组块识别研究的主流技术是统计机器学习方法,其中包括隐马尔可夫模型(HMM)[4]、支持向量机模型(SVM)[5]、最大熵模型(ME)[6]和条件随机域模型(CRFs)[7-8]等。文献[9]采用基于HMM 的组块分析方法,加入基于记忆学习过程的组块生成概率,得到整体识别的F1-measure值为92.12%;文献[10]则使用了一个标准的最大熵学习器,通过输入单词和词性标记信息来生成组块标记,最后得到整体识别的F1-measure值为 91.97%。对比于英语CONLL-2000提出的语块共享任务的描述体系,文献[11]提出了汉语功能块的标注体系,强调对句子整体功能块的描述,侧重于自顶向下地描述句子的基本骨架。文献[12]以语块识别结果为基础自动构建德语和英语的部分句法树,得到相应功能块自动识别的整体识别准确率分别为89.73%和90.40%,召回率分别为61.45%和59.78%。文献[13]利用判定树模型进行各个功能块的边界识别研究,得到了最高 74.1%的 F1-measure值。文献[14]利用SVM 模型对主语-述语块(SP)和述语—宾语块(PO)进行边界识别,得到的最好F1-measure值分别为76.56%和82.26%。还有文献[15]使用了两种不同的功能块分析模型,在词和词性的基础上利用CRF模型进行序列标注,最终功能块整体识别的F1-measure值达到了78.63%。在2009年第一届中国中文信息学会句法分析评测中,文献[16]利用条件随机域模型进行汉语功能块的分析,得到的F1-measure值为85.90%。文献[17]在自动识别的基本块基础上进行基本块到功能块的级联分析,利用SVM模型得到功能块识别的F1-measure值为84.72%。
由文献[18]可知,由于现有的功能块分析器采用统计学习的方法,选取的特征具有一定的局部性,所以像宾语块这样长度较长且结构相对复杂的块是现有分析器的一个难点所在,因此也成为识别性能提高的关键。本文首次将语义知识引入到汉语功能块的识别中,不再局限于仅利用句子中的词和词性标注信息,而是将某种语义词典中的语义编码作为一种语义标记加入到训练语料和测试语料中,把在语义和句法功能上相同或相近的词用同一个语义编码来代替,这样就能够降低特征空间的维数,缓解数据稀疏问题对识别性能的影响,更好地解析复杂句子的结构,从而提高汉语功能块的识别性能。
随着自然语言处理研究的不断发展,20世纪80年代以来,许多关于英语和汉语方面的大规模语义计算资源被不断地开发出来,其中比较有代表性的有英语方面的WordNet、FrameNet、MindNet等;汉语方面的知网HowNet、《同义词词林》等。本文需要的正是能够反映汉语单词语义特征的代码化语义系统,而《同义词词林》中的每一个单词都有表示语义的编码,正好是一个代码化的语义系统。因此,我们将《同义词词林》引入到汉语功能块识别系统中,利用词林中每个单词被赋予的语义编码所包含的丰富语义信息来改善系统的识别效果。
目前的语义资源中记录的语义知识主要就是语义关系知识[19],语义关系分为聚合关系和组合关系两类,词义聚合关系又可以细分为各种各样的关系,例如:同义(近义)关系、反义关系、同位关系、上位关系、下位关系和整体部分关系等。《同义词词林》是通过词义聚合关系组织起来的语义词典,主要是用同义词集合来表示词义,所有同类的语义项即词群构成一个树状结构,词语之间的上下位关系以及整体部分关系就通过这个树状结构来表达。这是一部对汉语词汇按语义进行全面分类的词典[20],根据汉语的特点和使用原则,确定了词的语义分类原为以词义为主,兼顾词类,并充分注意题材的集中。将现代汉语的63895个词语义项分为大、中、小类三级,共有12个大类(A类为人、B类为物、C类为时间与空间、D类为抽象事物、E类为特征、F类为动作、G类为心理活动、H类为活动、I类为现象与状态、J类为关联、K类为助语、L类为敬语),94个中类和1428个小类,小类下再根据词义的远近和相关性划分词群,共有3925个同义词群。
本文使用的是哈工大信息检索研究室的同义词词林扩展版,扩展后的《同义词词林》,含有更加丰富的语义信息。对比原版的三级分类结果扩展到了现在的五级分类结果,针对每个词语义项形成的完整8位语义编码,可以唯一的代表词典中出现的词语。编码位按照从左到右的顺序排列,第1位代表的是大类,用大写英文字母表示,是第一级分类的编码;第2位代表中类,用小写英文字母表示,是第二级分类的编码;第三级代表小类,用二位十进制整数表示,占据编码位的第3位和第4位。第5位代表词群,用大写英文字母表示,是第四级分类的编码;第五级代表原子词群,用二位十进制整数表示,占据编码位的第6位和第7位。随着级别的递增,词义刻画得越来越细,到了第五级,每个分类里词语的数量己经不多,很多只有一个词语,已经不可再分,所以将其称为原子词群、原子类或原子节点。由于第五级的分类结果需要特别说明,例如,有的行是同义词,有的行是相关词,有的行只有一个词,可以分出具体的三种情况。在使用上,有时需要对这三种情况进行区别对待,所以有必要再增加标记来分别代表上述几种情形。增加的标记占据编码位的第8位,共有3种标记,分别是“=”、“#”和“@”,其中“=”代表“相等”、“同义”,表明本词群中的词语属于同义词语;“#”代表“不等”、“同类”,表明本词群中的词语属于相关词语;“@”代表“自我封闭”、“独立”,这种词群中只包含一个词语,表明它在词典中既没有同义词,也没有相关词。具体的编码规则见表1。
表1 《同义词词林》扩展版编码规则表① 该表来源于《哈工大信息检索研究室同义词词林扩展版》说明
本文将汉语功能块的自动识别问题转化为序列标注问题[21],利用条件随机域建立功能块的序列标注模型。条件随机域(Conditional Random Fields,CRFs)模型是一个基于无向图的条件概率模型[22],可以任意添加有效的特征向量,具有表达长距离依赖性和交叠性特征的能力,能够较好地解决标注(分类)偏置等问题。而且所有特征可以进行全局归一化,能够求得全局的最优解,对于输入和输出的几率分布不像隐马尔科夫模型那样强烈的假设存在,很适合做序列标注分析,所以我们使用条件随机域模型来实现功能块分析的序列标注处理。
本文介绍的条件随机域模型是比较简单的线性链条件随机域,给定参数 Λ=(λ1,λ2,…,λn),线性链条件随机域定义在一个给定的观测序列X=x1,x2,…,xT上对应的状态标记序列Y=y1,y2,…,yT的条件概率为:
其中ZX是所有状态序列的归一化因子,使得在给定输入上所有可能状态序列的概率之和为1。fk(yt-1,yt,x,t)通常被定义为关于整个观测序列和位置t以及位置t-1标记的二值特征向量函数,参数λk是在训练中得到的与特征函数fk相关的权重,当训练状态序列被完全明确地标记后,可为该模型找到最优的λ值,一旦这些值被找到,一个新的未标记序列的标记工作就可以用Viterbi算法来完成,k的取值范围取决于模版中特征的数量。
那么求解序列标注的任务就是求出使条件概率PΛ(Y|X)最大的Y,即最大可能的标记序列为:
将汉语功能块的自动识别问题转化为序列标注问题需要定义标注集合,通过为文本句子中的每个词语标注一个合适的类别标记,实现功能块的自动识别。
为了标识块与块之间的边界和功能信息,我们采用IOB2的标注集合来标记功能块,标记集中的每个标记均由两部分构成,第一部分为词语在功能块中的位置,如功能块的起始位置用B表示,内部位置用I表示;第二部分为功能块的类型标记[23],具体如表2所示,在这两部分标记之间用“-”来分隔。对于不属于这几类功能块的单词和符号,统一使用O来标记。这样10种功能标记类型加上O标记,最后形成包括21种功能块标记的标注集合。任意一个词被标记为21种功能块标记中的一种,标记为同一类别B和I的词,构成一个功能块,该功能块直到遇到下一个标记为B或者O的词为止。
表2 功能块类型标记集
以“能脱离其他运动形式独立存在,”为例,利用IOB2标注集合对其进行标注的中间结果为:“能/vM/B-P脱离/v/B-P其他/rN/B-O运动/n/I-O形式/n/I-O 独立/aD/B-P存在/v/I-P,/wP/O”,再经过处理得到最后的标注结果为:“[P能/vM][P脱离/v][O其他/rN运动/n形式/n][P独立/aD存在/v],/wP”。
实验使用的语料是第一届中文信息学会句法分析评测发布的约48万词规模新闻学术类TCT(清华句法树库)语料库[23],充分利用TCT中提供的丰富句法标记信息,自动提取形成了相应的功能块标注语料库。其中训练语料大小为3.83M,包含约39万词次,测试语料大小为730K,包含9万多词次,训练集和测试集的大小比例约为5∶1。
依据CIPS-ParsEval-2009评测标准,对汉语功能块的标注结果进行评价的主要评价指标包括功能块分析的准确率(Precision,P)、召回率(Recall,R)和F-1测度(F-1 measure,Fβ=1)。评价功能块识别性能指标的计算公式如下[24]:
(1)功能块识别准确率(Precision):
(2)召回率(Recall):
(3)F-1测度(F-1 measure):
其中:
正确功能块数:某类正确分析的功能块总数。
召回功能块数:某类自动分析的功能块总数。
功能块总数:某类Gold-standard(标准的标注结果)功能块总数。
4.2.1 条件随机域识别结果
条件随机域模型识别汉语功能块的关键在于特征的选择,特征的选择恰当与否会对识别结果产生直接的影响。通常来讲,丰富的上下文特征对于识别精确率的提高有着积极的作用。本文在进行特征选择的时候,不仅充分利用了词和词性本身的信息,考虑到词和词性及其上下文之间存在着的种种依赖关系,还利用了融入更多上下文信息的组合特征。表3为条件随机域模型所采用的特征模板,其中Wn代表词本身特征,Pn代表词的词性特征,其他特征为词和词性的组合特征。
表3 特征模板的符号化表示
利用表3中的特征模板,将给定的训练语料拿到CRF①Taku Kudo开发的开源CRF++-0.53软件包,网址:http://crfpp.sourceforge.net/.上进行训练,再用训练得到的功能块分析模型对测试语料进行标注,最后得到功能块的识别结果。表4是块的边界识别结果以及边界加上功能信息的整体识别结果,后续实验所取得的结果以此为基础,并起到对比分析的作用。
表4 条件随机域识别结果
4.2.2 结合语义信息识别结果
结合语义信息识别汉语功能块的具体做法是将《同义词词林》词典文件中的语义编码作为一种语义标记引入到语料中,把语料中的同义词语、相关词语和独立词语分别用相同的语义标记来标识,其他不在词典中的词或标点符号等统一用数字0来标识。也就是说,语料中凡是属于同一词群的词语都被标记成相同的语义编码,而不在词典中的词具有相同的语义编码0,这样就构建出包含语义信息的训练语料和测试语料。表5为语料中引入了语义标记的功能块标注举例。
表5 带语义标记的功能块标注举例
在进行具体实验的时候,将语义标记作为一个特征向量,也就是将词群特征加入到条件随机域模型当中,目的是缩小分析模型的特征空间,增强模型学习效果,从而取得更好的标注结果。本文在针对语义信息进行特征抽取实验的时候,综合考虑到语义信息对复杂句子识别的有效性以及尽量避免由此产生的模型复杂度过高,最终选定两个特征组合加入到条件随机域模型的特征模板中,分别为:(1)当前词的词群和后词的词群组合特征;(2)当前词的词群和前词的词群以及前两词的词群组合特征。表6为新增特征组合符号化表示,其中Sn代表词的词群特征。
表6 新增特征组合的符号化表示
表7为加入两个词群特征组合前后,系统对主语块S、述语块P、宾语块O和状语块D进行识别的结果比较。可以看出,词群特征的加入改善了系统对这四个典型功能块的识别性能,尤其是对结构相对复杂的宾语块的识别效果最好,其F值提高了0.58个百分点,召回率则提高了0.81个百分点。
表7 结合语义前后四个典型功能块识别结果比较
从表7可以看出,语义信息的加入使得系统能够识别出比单纯条件随机域模型更多的功能块,尤其对宾语块召回率的提高效果最为明显。通过对实验结果的分析发现,宾语块召回率的提高有赖于以下两种情况:召回未被识别的宾语块和纠正被错误标注成宾语块的块,经过抽样统计可知两者所占比重分别为64%和36%,下面将这两种情况的一些具体实例列于表8和表9中。
表8 加入语义信息后新召回的宾语块实例
续表
表8中第一列的斜体字部分表示应该属于宾语块却被识别为其他类型的块,第二列为加入语义信息特征之前被错误识别成的块类型。
表9 纠正被错误标注成宾语块的实例
表9中第一列的斜体字部分表示应该属于其他类型的块却被错误地识别为宾语块,第二列表示斜体部分应该属于的块类型。
通过对实例的统计,混淆识别为宾语块加中心块的“的”字结构(O+“的”+H)以及谓语块加中心块的“的”字结构(P+“的”+H)的情况占60%以上,其典型句式除了“的”字结构,还有“之”字结构、“等”字结构等,其余实例大多属于比较复杂的宾语块,它们被错误标记成的块类型可参见表2中说明。表8所示情况对宾语块召回率的提高起主要作用,表9中第一行所起作用与表8相同,除第一行以外其他行所示情况能够起到提高其他块类型召回率的作用。也就是说,语义编码这个新特征的加入使得识别系统能够正确识别出更多的复杂宾语块及“的”字结构宾语块,由于“的”字在现代汉语中是运用频率很高的虚词,“的”字前的定语一般修饰“的”字后的中心语,而可作定语中心语的词类很广泛,这就决定了“的”字结构的普遍性所产生的歧义。因此可以说语义特征能够很好的区分“的”字结构应该属于的块类型,对解决这种结构所产生的歧义具有重要的意义。
表10为引入语义信息以后块的边界识别结果以及边界加上功能信息的整体识别结果。
表10 结合语义信息识别结果
通过表4和表10的实验数据,我们发现加入语义特征的实验模型比单纯条件随机域模型取得了更好的识别效果,这说明结合语义资源的汉语功能块识别系统能够获得更加稳定的识别性能。
由于本文使用的实验数据与2009年第一届中国中文信息学会句法分析评测提供的实验数据相同,所以我们将实验结果与评测中使用其他方法的测试结果进行了比较,表11显示了比较的具体情况,可以看出本文所采用的CRF结合语义资源进行汉语功能块识别的方法取得了很好的效果。
表11 与CIPS-ParsEval-2009结果的比较
汉语功能块识别作为一种较好的部分分析结果,相当于完整句法树的一棵子树,可以与完整的句法树分析有效配合,形成可适应不同应用需求的句法分析结果。
本文将语义资源同义词词林引入到功能块的识别过程当中,用词典中唯一的8位语义编码代替语料中出现的在句法功能或者语义上相同或相近的词。由于词性的种类有几十种,而词的种类为几十万种,相比于词和词性这两种特征之间的巨大差距,语义词典中的词群正好弥补了这种差距,词群的种类为几千种,正好是词和词性特征的一种折中。介于词和词性特征之间词群特征不仅弥补了词性特征区分度过小的缺点,而且还有效缓解了词特征的数据稀疏问题。
实验结果表明,本系统可以改善汉语功能块的自动识别性能,并且在对主语块、述语块、宾语块和状语块的识别上均取得了不错的效果,尤其是结构相对复杂的宾语块的识别结果有了较大幅度的提高。由于它们占据了功能块总数的主要份额,所以这四个典型功能块的识别结果对最后结果的影响较大。
在以后的研究工作中,我们将进一步完善结合语义知识进行汉语功能块识别的方法,在改善现有语义词典的同时,将寻求更多用于功能块识别的语义资源,并且通过结合其他方法来改善汉语功能块的整体识别性能。
[1]周强.汉语基本块描述体系[J].中文信息学报,2007,21(3):21-27.
[2]周强,李玉梅.汉语块分析评测任务设计[J].中文信息学报,2010,24(1):123-128.
[3]Steven Abney.Parsing by chunks[C]//Robert Berwick,Steven Abney and Carol Tenny(eds.).Principle-Based Parsing.Dordrecht:Kluwer Academic Publishers,1991,257-278.
[4]李珩,杨峰,朱靖波,等.基于增益的隐马尔科夫模型的文本组块分析[J].计算机科学,2004,152-154.
[5]李珩,朱靖波,姚天顺.基于SVM的中文组块分析[J].中文信息学报,2004,18(2):1-7.
[6]李素建,刘群,杨志峰.基于最大熵模型的组块分析[J].计算机报,2003,1722-1727.
[7]Fei Sha,Fernando Pereira.Shallow parsing with conditional random fields[C]//Proc.of Human Language Technology/North American chapter of the Association for Computational Linguistics annual meeting.Edmonton:2003,213-220.
[8]Yongmei Tan,Tianshun Yao,Qing Chen and Jingbo Zhu.Applying conditional random fields to Chinese shallow parsing[C]//Proc.of CICLing-2005.Mexico:2005,167-176.
[9]GuoDong Zhou,Jian Su,TongGuan Tey.Hybrid text chunking[C]//Proc.of CoNLL-2000 and LLL-2000,Lisbon,Portugal:2000,163-165.
[10]Rob Koeling.Chunking with maximum entropy models[C]//Proc.of CoNLL-2000 and LLL-2000,Lisbon,Portugal:2000,139-141.
[11]周强,任海波,詹卫东.构建大规模汉语语块库[M]//黄昌宁,张普.自然语言理解与机器翻译.北京:清华大学出版社,2001,102-107.
[12]Sandra Kübler,Erhard W.Hinrichs.From chunks to function-argument structure:A similarity-based approach[C]//Proc.of ACL/EACL 2001.Toulouse,France:2001.338-345.
[13]Elliott Franco Dr bek,Qiang Zhou.Experiments in Learning Models for Functional Chunking of Chinese Text[C]//Proc.of IEEE International Workshop on Natural Language Processing and Knowledge engineering.Tucson,Arizona,2001,859-864.
[14]Yingze Zhao,Qiang Zhou.A SVM-based Model for Chinese Functional Chunk Parsing[C]//Proc.of the Fifth SIGHAN Workshop on Chinese Language Processing.Sydney:2006,94-101.
[15]周强,赵颖泽.汉语功能块自动分析[J].中文信息学报,2007,21(5):18-24.
[16]王昕,等.基于CRF的汉语语块分析和事件描述小句识别[C]//第一届汉语句法分析评测学术研讨会论文集.北京:2009.
[17]李军辉,周国栋.苏州大学第一届中文信息学会句法分析评测技术报告[C]//周强,朱靖波.第一届汉语句法分析评测学术研讨会论文集.北京:2009.
[18]陈亿,周强,宇航.分层次的汉语功能块描述库构建分析[J].中文信息学报,2008,22(3):24-31.
[19]詹卫东.面向自然语言处理的大规模语义知识库研究述要[C]//徐波.中文信息处理若干重要问题.北京:科学出版社,2003,107.
[20]梅家驹,等.同义词词林[M].上海:上海辞书出版社,1983.
[21]LanceA.Ramshaw,Mitchell P.Marcus.Text chunking using transformation-based learning[C]//Proc.of the Third ACL Workshop on Very Large Corpora.Boston:1995,82-94.
[22]J.Lafferty,A.McCallum,F.Pereira.Conditional random fields:Probabilistic models for segmenting and labeling sequence data[C]//Proc.of the 18th International Conference on MachineLearning.San Francisco:Morgan Kaufmann,2001,282-289.
[23]周强.汉语句法树库标注体系[J].中文信息学报,2004,18(4):1-8.
[24]黄德根,于静.分布式策略与CRFs相结合识别汉语组块[J].中文信息学报,2009,23(1):16-23.
[25]计峰,等.FudanN LP:一个基于在线学习算法的中文自然语言处理工具包[C]//第一届汉语句法分析评测学术研讨会论文集.北京:2009.
[26]谷波,等.汉语基本块与功能块的自动分析[C]//第一届汉语句法分析评测学术研讨会论文集.北京:2009.