王倩,罗森林,韩磊,潘丽敏
(北京理工大学信息与电子学院信息系统安全对抗实验中心,北京100081)
自然语言处理是计算机科学领域和人工智能领域中的一个重要方向,它研究能实现人与计算机之间用自然语言进行有效的通信的各种理论和方法。计算语言学发展至今,已能够达到较为熟练的词法和句法分析并大量的应用到实际应用中,在一定程度上能够满足人机交互的需求,而要让计算机能够真正的理解自然语言还必须从语义上进行分析。语义分析从20世纪70年代起就有人开始研究,然而到现在为止仍然是自然语言处理研究的一个难以跨越的瓶颈。本文进行的句义类型识别研究就是语义研究中句义分析的一项内容。为了让计算机能够自动分析汉语句子并得出句义结构模型[1],从而对汉语句子进行进一步的研究和应用,本课题组对句义分析相关工作进行了分步研究(课题组将其分为谓词识别、句义类型识别、句义结构框架提取、语义格识别等9个步骤)。其中,句义类型的识别作为在整体上对句义结构进行描述的方式之一,是对汉语句子进行完整句义结构分析的重要步骤。
由于语言学家对于汉语句子分类的目的和要求不同,汉语句子存在多种分类方式,最常见的有:按句子结构进行的分类、按句子语气进行的分类、按句子成分进行的分类、按句子在语段中的地位和作用进行的分类、按句子意思的复杂程度进行的分类等。其中,按结构进行分类的方法还可以细分为:按句子结构的复杂程度将句子分为单句和复句;按句子结构特征将句子分为“把”字句、“被”字句、连动句、兼语句、双宾句、存现句等;按句子的语气不同进行的分类,可将句子分为陈述句、疑问句、祈使句和感叹句;按句子成分进行的分类又可以细分为:按句子成分在句中的排列顺序对句子进行的分类,按组成句子成分的词性或短语的功能属性对句子进行的分类,按句子成分是否按照常规顺序排列将句子分为常式句和变式句,按句子成分是否完整将句子分为完全句和省略句等;按句子在语段中的地位和作用可以将句子分为始发句、后续句、终止句、中心句和独立句等[2]。本文中句义类型的概念来源于贾彦德先生的《汉语语义学》[3],即句义结构的类型。句义类型是根据句义的复杂程度以及分句义之间的组合方式,将句子分为简单句义、复杂句义、复合句义和多重句义4类[3]。
在中文信息处理领域,对其他句子类型识别已有不少人做出研究,如句型识别和句式识别的研究就有很多,句类识别主要集中在进行HNC(概念层次网络)研究的相关研究机构。对汉语句子类型识别研究目前采用较多的是规则匹配的方法和统计的方法,文献[4-8]均是采用规则的方法或利用规则构建正则表达式对句子类型进行识别。相比于规则的方法,统计机器学习的方法已经逐渐被中文信息处理研究者青睐,并运用到句子类型识别中,文献[9-10]即是采用统计的方法进行识别研究。汉语句子的灵活多变性使得利用规则的方法进行句子类型识别存在一定的局限性,且规则的方法本身就存在无法穷尽的缺点,统计学习的方法具有自学习和自适应性,避免了规则方法的缺点,适用于汉语句子分类研究,因此,本文对于句义类型识别采用了统计的方法。
对于句义类型的识别仅文献[10]做了一些研究,本文是在其基础上以提高识别准确率和效率为目标进行的改进。
句义类型即句义结构的类型[3],分为简单句义、复杂句义、复合句义和多重句义4种类型。简单句义表现为一个命题,通常包含一个谓词或并列谓词,只有一层句义结构;复杂句义指的是一个句义中又包含着句义,包含两层句义结构的情况;复合句义是指两个或两个以上的简单句义按照某种语义关系紧密地联接在一起的情况,也包含两层句义结构;多重句义包含三层或三层以上的句义结构,如果复杂句义的成分句义包含更多层的句义结构则为多重句义,同样的,如果复合句义的分句义包含更多层次的句义结构则为多重句义。
冯扬按照贾彦德先生《汉语语义学》中句义结构的理论将汉语句子在语义上进行结构化分析,提出并构建了汉语句义结构模型[1]。图1为BFS-CTC汉语标注语料库[11](Beijing Forest Studio-Chinese Tag Corpus)中句义结构模型的一个标注实例。
如图1所示,粗边框所示的即是句义结构模型中的句义类型块,其中,顶层句义类型块的内容即是整个句子的句义类型。本文要做的工作即是在已知谓词和句子的词法、句法标注的情况下,给出整个句子的句义类型。
图1中有灰色底纹的框是谓词块,其中的内容即是句子中的谓词。为了表述方便,在句义结构模型的树形结构中,从谓词出发向上搜索,经过的句义类型块的个数用Numofsen表示,例如,图1中谓词“利用”和“推荐”的Numofsen均为2,谓词“发表”的Numofsen为3;句子中所有谓词的Numofsen的最大值用Maxnumofsen表示。在大量的句义标注工作中,总结出这样一条规律:当Maxnumofsen=1时,必定是简单句义;当Maxnumofsen≥3时,必定是多重句义;当Maxnumofsen=2时,必定是复杂句义或复合句义中的一种。同样,在句法分析中可以总结出这样一条规律:句法标注中的顶端句子节点(Top-Sentence)(包括单句(dj)和复句(fj)两种,在3.1节的特征提取中会有图示说明。)如果为dj,则其相对应的句义标注中的顶层句义类型必定为简单句义、复杂句义和多重句义中的一种;而句法标注的顶端句子节点如果为fj,则其对应的句义标注中的顶层句义类型必定为复合句义或多重句义。其中,dj指的是最基本的句型组合情况,包括最为常见的主谓结构、由状语加上主谓结构形成的状中结构、包含有连词的结构以及主谓结构加上语气词所组成的结构等;fj指的是有多个dj通过连词或标点符号连接而成的情况。综合以上两条规律,我们可以得出句义类型判定的一个判决方法,如式(1)所示。
图1 句义结构模型的一个标注实例
根据第2节的分析,在已知Maxnumofsen值和句法标注中顶端句子节点的基础上,可以利用式(1)所示的判决方法直接判断出句义类型,这样,句义类型识别的工作重心就转移到Maxnumofsen值的获取上了。这里,我们采用统计机器学习的方法,选用计算较为简单、速度快且利于探测式发现的C4.5决策树算法[12]。由于只包含一个谓词的句子必定是简单句,且含有一个谓词的简单句又占常见简单句的绝大部分,因此可以在求Maxnumofsen值之前先判断句子中谓词的个数,进行一个初步识别,将谓词个数为1的句子直接判断为简单句而不需要进行后面的步骤,从而进一步提高识别效率。句义类型识别的算法原理如图2所示。
整个原理图分为两个大的模块,即训练模块和识别模块。训练模块的输入是经过完整句法和句义标注的句子,输出的是用于识别Numofsen的判定模型(C4.5分类器);识别模块的输入是经过完整句法标注且已知谓词的句子,输出的是句子的句义类型判定结果。
训练模块包括预处理、特征提取(训练)和C4.5训练三个步骤。其中,预处理是删除谓词个数为1的句子,仅用剩下的句子进行训练,原因是识别阶段仅对谓词个数大于1的句子进行Numofsen判定;训练阶段的特征提取是根据句法和句义标注的句子提取出每个谓词相应的特征和句义中对应的Numofsen值;C4.5训练是根据特征提取得到的带标号的特征训练出用于Numofsen值判定的分类模型。
图2 句义类型识别算法原理
识别模块分为两步识别。第一步识别即初步识别,是根据句中的谓词个数进行判定,如果谓词个数为1则直接判定为简单句,否则进行第二步识别;第二步识别包括特征提取(识别)、Numofsen值判定、顶端句子节点提取和判决4个步骤。其中,识别阶段的特征提取是根据句法标注的句子提取出与已知的谓词相应的特征;Numofsen判定是利用训练阶段得到的判定模型对提取的特征进行分类,得出Numofsen的判定值;顶端句子节点提取是从句法标注的句子中直接读取出顶端句子节点;最后的判决是将句子中所有谓词对应的Numofsen值的最大值Maxnumofsen和得到的顶端句子节点值作为输入,利用式(1)所示的判决方法进行判定,最终给出句义类型的判定结果。
1)特征选择
本文用于谓词的Numofsen值判断的特征主要来源于人工标注的经验,即选取标注者在人工标注过程中常关注的一些特征。特征全部来源于句法标注的句子,图3即为BFS-CTC汉语标注语料库[11]中句法树的一个标注实例。
图3 句法树的一个标注实例
如图3所示的句法标注中的顶端句子节点如果是复合句,则谓词的Numofsen值必定大于1,因此,顶端句子节点可以作为一个特征;又如谓词的词性不同,其句法标注的结果也会有很大差异,这样在训练模型的过程中,词性不同可能会结合不同的特征进行组合,因此,谓词的词性也可以作为一个特征;此外,在句法树中还有一些路径数目特征与谓词的Numofsen值判断有一定的关系。所有的特征列表如表1所示。其中,路径数目特征中的“路径”指的是句法树中从谓词所在节点向上搜索直到根节点所经过的各个标注节点,如图3中虚线箭头所示的谓词“推荐”到顶端句子节点的路径。
表1 特征列表
2)特征筛选
为了得到最优的特征组合,对选取的特征进行特征筛选。特征筛选分为两步。第一步是利用Weka平台中InfoGain的属性选择类对属性进行选择,然后利用Ranker类对属性进行了一个简单的排序;第二步是针对第一步排序后的特征进行按信息增益率从低到高依次去除特征的实验,最后根据实验结果分析给出最优特征组合。
其中,Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一个免费的,非商业化的,基于JAVA环境下开源的机器学习以及数据挖掘软件。软件中的InfoGain属性选择类(InfoGainAttributeEval)主要是计算出各个属性的InfoGain信息。在Weka中为属性选择方法配备有搜索算法(seacher method),这里我们用最简单的Ranker类对特征进行简单的排序。
实验数据来自于BFS-CTC汉语标注语料库[11]。相比于目前在汉语语义角色标注领域主要使用的CPB语料库(Chinese Proposition Bank)[13],BFS-CTC中的语料增加了对句子句义类型的标注,并且提供了完整的语义角色标注以及各句义成分之间的组合关系。
BFS-CTC由北京理工大学信息安全与对抗技术实验室自行开发,其原始语料来源于新闻语料中的句子(如Sohu、Sina、人民日报等),所有的句子均经过了词法、句法、句义结构的标注。其中,词法标注集采用北京大学的词性标注规范[14-15];句法标注集采用北京大学计算语言学研究所规范[16];句义结构标注集则依据贾彦德先生的汉语语义学理论制定,定义了句义类型(4种,包括简单句义、复杂句义、复合句义、多重句义)、语义格类型(基本格7种,如施事格、受事格等,一般格12种,如时间格、空间格等)、谓词类型(4种,包括0目、1目、2目、多目)、谓词时态(3种,包括过去时、现在时、将来时)等,并规范了汉语句义成分之间的关系。目前BFS-CTC的规模为10 000句,约92 000词,涵盖了汉语中的主谓句、非主谓句、把字句、被字句、连动句、兼语句等各种句式。图4是BFS-CTC的一个句子标注实例。
图4 BFS-CTC中的一个句子标注实例
实验采用BFS-CTC中10 221个句子,其中包括简单句4 338个,复杂句2 171个,复合句1 512个,多重句2 200个。
特征筛选实验的输入是对10 221个句子进行预处理并对每个谓词进行特征提取后得到的特征文件。实验采用十折交叉验证的方法,以Numofsen值的整体识别准确率为指标进行评价,其计算方法如式(2)所示。
第一步实验得到的特征排序列表如表2所示。
表2 属性按信息增益排序结果
从表2中可以看出,编号为4、10和11的三个特征信息增益为0,因此可以考虑去掉这三个特征。
实验证明在去除这三个特征之后识别结果没有任何改变,因此先排除这三个属性,进行第二步实验,即将剩下的11个特征,按照信息增益由低到高依次去除,再利用剩下特征进行识别。识别结果如图5所示。
图5 按信息增益由低到高依次去除特征Numofsen值识别结果
由图5可知,在不断去除信息增益率较低的特征后,识别结果越来越差,在去除编号为13的特征N_RBBISAP_NVD和编号为7的特征N_RBBISAP_VD时识别结果没有变化,即与11个特征的识别结果相同,而在去除编号为14的特征N_ RBBISDJ_NVD时,识别准确率降低了0.6个百分点。由此可得,去除编号为13和7的两个特征在现有的数据源下并没有影响,因此可以去除这两个特征,最终保留剩下的9个特征。
1)分类算法
目前,各种机器学习算法都已经比较成熟,而且在语义分析领域也得到了越来越多的应用。决策树方法是挖掘分类规则的有效方法。第一步,从一组带有类标记的训练样本学习建立决策树;第二步,使用决策树模型对待测样本进行分类。决策树的构造算法有很多,Quinlan于1986年提出的ID3算法,是国际上最早的、具有影响力的决策树算法。1993年,Quinlan又提出了ID3的改进版本C4.5算法,C4.5算法继承了ID3算法的优点,并且增加了其他的一些功能,如对未知属性的处理、对连续属性的离散化和产生规则[12]。
本文采用C4.5决策树算法[12]进行训练判定Numofsen值决策树模型,主要有以下几点原因。
①Numofsen值识别方法没有先验知识可借鉴,而决策树的构造不需要任何领域知识和参数设置,适合于探测式发现;
② 决策树计算较为简单,速度较快,并且容易转化为分类规则。
在C4.5中,需要调节的参数有两个:ConfidenceFactor和MinObj,以下简称C和M。C影响剪枝的程度,其值越小剪枝越少,值越大剪枝越多,值为0时为不剪枝。M是在节点上能够产生分枝的最小支撑样本数,例如M值为3时,则某一节点上的样本数大于等于3时,才会继续向下划分。
2)参数选取
参数选取的实验数据源和评价方法同3.1节。
实验采用网格分析法进行参数选择,首先将C以步长0.05从0.1增长到1,M以步长10从0增长到100,获得对应参数下的识别准确率,如图6所示。然后根据结果分布缩小C和M的取值范围和步长进行进一步实验,最后分析实验结果给出最优参数。
由图6可以看出,固定M值变化C,识别准确率变化不大,在C=0.55时会有一个小的上升;固定C变化M时,识别准确率跳变较大,在M=10时达到最大值。由于M的初步取值步长较大,为了进一步确定M的最佳取值,固定C为0.55,将M以步长为1从1增长到19做进一步实验,实验结果如图7所示。
图6 参数选择实验结果1
图7 参数选择实验结果2
由图7可得,当M为14或15时,达到最高识别准确率。因为M为最小支撑事例数,一般越大越好,因此最终选择M为15,C为0.55为最优参数。
对句义类型的识别仅有文献[10]进行了一些研究,因此本文将在相同的数据源下与文献[10]中的C4.5-SVM算法进行对比实验,以验证本文算法的有效性。
C4.5-SVM方法的主要思想是综合C4.5算法和SVM算法对不同句义类型识别的优势。其使用了词法和句法近50个特征,分别用C4.5算法和SVM算法进行识别,最后将两份识别结果融合给出句义类型的判定结果。
实验采用BFS-CTC中10 221个句子,包括简单句4 338个,复杂句2 171个,复合句1 512个,多重句2 200个。其中9 198个用于训练,1 023条用于测试。由于C4.5-SVM算法[10]没有对复合句进行识别,因此在与C4.5-SVM算法进行对比实验时,去掉其中的复合句。对比实验的实验数据分布如表3所示。
表3 对比实验数据分布说明
实验以单个类别的准确率、召回率、F值及整体准确率为指标对结果做出评价。假设类别A(简单句义、复杂句义、复合句义和多重句义其中之一),其准确率、召回率、F值计算方法如式(3)~式(5)所示。
最后综合所有类别的分类结果,得出算法的整体识别准确率,计算方法如式(6)所示。
与C4.5-SVM算法的对比实验结果如表4所示。
表4 对比实验结果
其中,F值(F-Score)为准确率(Precision)和召回率(Recall)的综合体现,因此,将F值的对比结果另用柱形图更直观的表示,如图8所示。
图8 F值结果对比
由表4和图8可知,本文的算法不仅能够识别出C4.5-SVM算法不能识别的复合句,而且其他三种句义类型的识别结果也得到了大幅度的提升;总体识别准确率提升了11个百分点,达到了97%以上;单个句义类型的识别结果也得到了不同程度的提升,其中复杂句的准确率和多重句的召回率提高了40多个百分点,除了复合句义的识别准确率为93.7%以外,简单句义、复杂句义和多重句义的识别准确率均达到了97%以上。以上结论充分证明了本文所用算法的有效性。
句义类型是现代汉语语义学中从语义角度对句子句义结构的划分,包括简单句义、复杂句义、复合句义和多重句义4类。对句义类型进行识别是构建完整的句义结构,进行深层次句义分析的必要步骤,为句义结构的深入研究,包括句义成分识别、句义结构框架提取等提供了基础条件。本文基于经过词法、句法和句义结构标注的汉语标注语料库,通过总结人工标注经验,设计并实现了基于谓词和句义类型块的句义类型识别方法。该方法先利用“只含有一个谓词的句子一定是简单句”这一规律对待测句子进行第一步识别,对于没有给出句义类型的句子才会对其进行第二步识别;第二步识别是先利用C4.5机器学习算法得到一个中间结果(谓词经过的句义类型块的个数Numofsen),再结合句法标注中顶端句子节点进行判决,最终给出剩余句子的句义类型判定结果。本文利用Weka数据挖掘软件进行了特征筛选实验和参数选取实验,最终确定了9个特征和最优的参数组合。在BFS-CTC汉语标注语料库中10 221条数据的基础上做了与C4.5-SVM算法的对比实验,取得了97.6%的整体识别准确率,提升了11个百分点,验证了本文算法的有效性。综上所述,本文提出的句义类型识别方法,能够有效地识别4种句义类型,从而为基于语义学的句义分析研究奠定了基础。
[1] 冯扬.汉语句义模型构建及若干关键技术研究[D].北京理工大学硕士学位论文,2010.
[2] 北京市语台学会.教学语法系列讲座[C].北京:中国和平出版社,1987.
[3] 贾彦德.汉语语义学[M].北京:北京大学出版社,1995.
[4] 林世平,许细清.面向中文文本的观点检索技术研究[J].福州大学学报(自然科学版),2010,38(05):681-687.
[5] 张涛.基于HNC理论的句子语义分析[D].北京理工大学硕士学位论文,2010.
[6] 吴锋文.面向中文信息处理的三句式有标复句层次关系自动识别研究[D].华中师范大学博士学位论文,2010.
[7] 徐斌.基于PCFG-HDSM模型的语义句式识别[D].南京航空航天大学硕士学位论文,2008.
[8] 罗振声,郑碧霞.汉语句型自动分析和分布统计算法与策略研究[J].中文信息学报,1994,8(2):1-19.
[9] 李祖枢,刘朝涛.基于句型系统的中文问题理解研究[J].郑州大学学报(理学版),2010,42(01):53-56.
[10] 刘莉莉.汉语句义类型及谓词时态识别算法研究[D].北京理工大学硕士学位论文,2010.
[11] 罗森林,刘盈盈,冯扬等.BFS-CTC汉语句义结构标注语料库[J].北京理工大学学报,2012(3):311-315.
[12] Quinlan J R.Induction of Decision Trees[J].Machine Learning,1986,1(1):81-106.
[13] Xue N,Palmer M.Annotating the Propositions in the Penn Chinese Treebank[C]//Proceedings of the 2nd SIGHAN Workshop on Chinese Language Processing.Sapporo,Japan,2003:47-54.
[14] 俞士汶,段慧明,朱学锋,等.北京大学现代汉语语料库基本加工规范[J].中文信息学报,2002,16(5):49-64.
[15] 俞士汶,段慧明,朱学锋,等.北京大学现代汉语语料库基本加工规范(续)[J].中文信息学报,2002,16(6):58-64.
[16] 周强.汉语语料库的短语自动划分和标注研究[D].北京大学博士学位论文,2002.