基于规则的中文组块内部关系分析

2022-04-14 09:20王贵荣荀恩东饶高琦
郑州大学学报(理学版) 2022年3期
关键词:中心语组块短语

王贵荣,荀恩东,饶高琦

(1.北京语言大学 信息科学学院 北京 100083;2.北京语言大学 汉语国际教育研究院 北京 100083)

0 引言

组块分析(chunk parsing)是浅层句法分析的典型任务,它致力于将句子分解为结构简单、意义完整、功能独立的块单元。组块分析简化了句法分析流程,减小了直接从词法分析到完全句法分析的跨度,从而降低了分析难度,提高了分析准确率,为进一步进行句法或语义分析提供有力的支撑。组块分析将句法分析任务分解为三个阶段:1)组块识别;2)块内部结构分析;3)块间关系分析。通常情况下,句法分析都依据上述研究思路分阶段进行。但目前大多数的研究都集中在第一、三阶段上,对第二阶段的研究较少,即组块分析结果中只提供构成句子的各组块单元边界及组块充当的句法成分,而不涉及对组块内部结构的进一步分析。本文将在组块识别的基础上进行组块内部关系分析,使部分句法分析与完全句法分析能够有效地衔接起来。

1 相关研究

组块分析是自然语言处理领域中一个新兴的研究课题。受限于中文句法分析的定义问题,最初中文组块并不是覆盖整个句子的,而是侧重对基本名词短语、最长名词短语、命名实体、介词短语以及短语自动界定等单一组块的研究,如文献[1]提出baseNP句法组成模板与N元模型相结合的概率识别模型。文献[2]构造了两个边界概率矩阵来识别句子中最长的名词短语。随着研究的不断深入,组块分析由单一组块分析发展为基本块或功能块分析,进入系统性的组块分析阶段。文献[3]定义了8种组块类型,并采用增强的马尔科夫模型与基于错误驱动的转换方法对汉语组块进行了识别研究。

组块分析的方法主要有单一的语言规则方法、单一的统计学习方法或将语言规则与统计学习相结合的方法。早期采用基于规则的方法,主流方法为基于有限自动机、基于转换的错误驱动和模式匹配的方法。文献[4]利用有限状态自动机,对法语和英语双语语料进行了NP短语的自动抽取。文献[5]用基于转换的错误驱动的方法来识别基本名词短语(BaseNP)和NP、VP块。文献[6]利用从大规模标注语料库中抽取14条规则来识别汉语动宾结构。文献[7]将MBL方法和规则方法相结合,对汉语中9种基本短语进行边界识别。

基于统计的方法一般包括基于实例的机器学习方法、基于隐马尔可夫模型、最大熵模型、互信息、支持向量机和基于神经元网络的方法等。文献[8]采用基于神经网络的方法对汉语短语边界进行了自动识别。文献[9]采用了最大熵模型与有限状态自动机相结合的方法。文献[10]研究了最大熵马尔科夫模型、条件随机场等多种机器学习方法在组块分析中的应用。文献[11]采用基于状态转移的方法进行组块识别,并将长短期记忆神经网络融入柱搜索框架中。

有些研究将语言学规则或知识嵌入模型中,如文献[12]提出了基于实例学习算法和手工规则相结合的方法。文献[13]将支持向量机方法和基于转换学习的方法相结合。文献[14]提出一种可以同时获得基本块的外部句法标记和内部关系描述的分析方法,对基本块的内部结构关系进行了分析。

综上所述,目前组块分析仍旧以组块边界识别和组块句法功能识别为主,缺少对组块内部结构关系的细致分析。组块分析方法方面,将组块分析转化为序列标注任务,并使用基于统计的机器学习方法或基于神经网络的深度学习方法。目前,很多学者尝试在统计方法的基础上,尽可能融入更多的语言学特征,增强模型的描述能力,提升模型的分析性能,其困难之处在于如何找到二者有效结合的切入点。但该方法解释性差,且需要大量人工标注数据作为训练集。故本文采用符号计算和参数计算相融合的方法进行组块内部关系分析,在规则的基础上融合树结构、网格结构、有限状态自动机等多种数据结构,并利用大规模的语言搭配知识辅助识别。

2 块内分析方法

本文在组块识别的基础上采用基于规则的方法进行组块内部关系分析。

2.1 分析概述

本文输入为句子或段落,先经过组块边界识别模型[15],得到带有分词词性标记的组块结构树,树结构中主要包含了主语块、宾语块、述语块、修饰语块,之后再对这些组块进行块内关系分析,以三元组的形式输出块内词语之间的语法关系,即。如下例。

输入:中国必须对国有企业进行改革,增强本身的竞争力。

组块序列:中国(NP-Sbj)/必须对国有企业(UNK-Mod)/进行(VP-Prd)/改革(VP-Obj)/,(W)/增强(VP-Prd)/本身的竞争力(NP-Obj)[16]。

输出:<进行,对国有企业,Mod-v><对国有企业进行,必须,Mod-v><竞争力,本身的,Mod-n><的,本身,Mod-n>

本文输出结果中的关系类型主要包括六种,是从汉语五大短语结构中演化而来的。其中:主谓结构对应Sbj;动宾结构对应Obj;状中、述补、定中均表示修饰与被修饰关系,对应Mod。具体操作时,由于状中、述补结构的中心语一般是谓词性的,将其关系定义为Mod-v,定中结构的中心语一般是体词性的,将其关系定义为Mod-n,并列结构也分为体词性结构并列和谓词性结构并列,关系分别为Paral和VR,为保证输出结果的一致性,默认将并列结构中的后一个词或短语作为中心语。本文定义的组块内部词语间关系如表1所示。

表1 块内关系类型及其定义Table 1 Relationship types and definitions between words in chunk

2.2 树、网格与有限状态自动机

语音识别处理中经常用到词网格(lattice)的概念,本文将此概念引入块内分析中。首先,句子中的每个汉字H、分词词性标注结果W、组块边界识别结果C,以及分析的各个中间状态都会以网格单元的形式呈现在网格结构中;其次,规则集在进行匹配时,需要转化为有限状态自动机,该过程也是基于网格进行的;最后,网格结构是线性的,在规则匹配时,只依靠规则提供的边界是不可靠的。这时候就需要树结构为网格分析提供边界信息,来限定规则集运行的起止区间。

2.3 规则与规则集

本文使用的规则集是我们所在项目组自定义的可编程语言,基本编程语言及规则语法为Lua脚本语言。项目组以Lua语言设计了64个API。这些API便于用户在线编程调试,实现单句分析,也可以离线使用,批量处理数据。

2.3.1规则集构成 规则集一般以“规则集类型名_自定义名”命名,具有唯一性,如“main_test1”,表示main类型的规则集。一个规则集可以由一个或多个规则组成,而规则主要由Context和Operation两部分组成。Context用于描述句子内容,Operation用于生成关联图,为句子添加结构、语义信息。格式为

RuleName

(

Context

{{

Operation

}}

其中:Context是由原子规则项和操作符组成的序列。原子规则项可以为字符串、key value对、搭配表、子规则等,用来描述句子成分的属性信息,如长度、词性、动态标记信息、中心词信息等。如:POS=v,表示该节点为动词;Len=1,表示该节点字符个数为1;Bits=Num,Num是数词标识,表示该节点为一个数词;Head=跑,表示该单元的中心词是“跑”。每个原子规则项前都可以添加操作符,用类正则表达式描述,如 ?、+、*、^ 等。

Operation由Lua语言和规则API共同描述,作用是生成关联图,为句子注入结构、语义信息。

2.3.2规则集类型 针对句法语义分析中不同类型的语言现象,本文的规则主要有5种类型,分别是main、sub、XB、word、idi类型。main类型的规则是起总控作用,安排所有规则集的调用顺序;sub类型的规则类似于函数库,一些规则的Operation形式较为一致,可将其定义为子函数,收录在sub规则集中,在其他规则中调用函数名即可;汉语中的每个短语、组块都有其中心词,XB规则主要是根据汉语的“中心词”理论设计的,即结构中心词的语法特征会渗透到其上一层结构中,XB类型的规则集主要是对汉语中的中心语结构进行句法或语义分析的;word类型的规则集一般用在具体领域的句法语义分析中,可将一些特定领域常用词语或固定的成语、俗语、谚语等无须进行结构分析的短语放入word规则集中;idi类型的规则集一般是用于处理汉语中的构式。

3 实验及结果分析

3.1 实验数据

本文以CTB 8.0中经过两两标注的gold standard数据作为测试集,该语料有114个文件,6万多字,共计2 005句,平均句长为50.65个字符,最长的句子包含了273个字符。为减少分词结果对实验结果的影响,这里采用了CTB中已经分好词的语料,详见下例。

上海 浦东 近年 来 颁布 实行 了 涉及 经济、贸易、建设、规划、科技、文教 等 领域 的 七十一件 法规性 文件,确保了 浦东 开发的 有序 进行。

3.2 实验流程

3.2.1数据准备 1)输入数据准备。本文实验是在组块基础上进行的,因此输入数据需要有组块边界。分词语料先进入组块边界识别模型,其输出的组块结构树作为本文实验的输入数据。

原文:如今实施全民健保,将洗肾纳入健保给付,对健保来说也是一笔庞大的医疗支出。

组块结构树形式:(ROOT (IP (VP-PRD (NULL-MOD (t 如今))(VP-PRD (v 实施)))(NP-OBJ (n 全民)(v 健保))(w (w ,)))(IP (VP-PRD (NULL-MOD (p 将)(n 洗肾))(VP-PRD (v 纳入)))(NP-OBJ (v 健保)(v 给付))(w (w ,)))(IP (VP-PRD (NULL-MOD (p 对)(v 健保)(v 来)(v 说)(d 也))(VP-PRD (v 是)))(NP-OBJ (m 一)(q 笔)(a 庞大)(u 的)(n 医疗)(n 支出))(w (w 。))))。

2)测试数据形式转化。本文实验的输出结果为三元组形式,为方便实验结果对比,采用python代码将CTB 8.0 gold数据进行了由树库形式到短语结构关系的形式转化。

3.2.2规则集准备 要实现组块内部关系分析,核心环节为规则集的书写和规则集调用顺序的安排。根据从BCC语料库[17]中抽取出来的搭配知识[18],以及短语结构可能出现的上下文信息,利用前文介绍的规则集相关知识以及API来书写块内结构分析的规则。围绕短语结构的中心语来书写规则,共书写规则53条,其中:以动词、形容词等谓词性单元为中心语的规则有35条;以名词、量词、方位词、处所词等为中心语的规则有18条。

为分析简单状中结构的规则,Context部分表示副词、时间词、形容词、动词等作状语修饰动词或形容词的情况,分为状中结构标记“地”出现与不出现两种类型;这几种词性序列的组合构成状中的概率较大,故Operation中没有添加其他限制条件,直接为中心词和修饰语添加“Mod-v”的关系,并在网格中生成该结构整体的网格单元,为其添加再次进入规则集的入口,以便实现规则集的loop机制。

r1

(

[POS=d POS=t POS=aHead=Z-AdeV_XB Head=Z-VdeV_XB Head=Z-AdeA_XB] ?地 Entry=HeadWord

{{

UnitH =GetUnit(-1)

UnitM =GetUnit(0)

AddPredict(UnitH)

AddArg(UnitH,UnitM,"modv")

No=GetNo(-1)

if No>1 then

UnitU =GetUnit(1)

AddArg(UnitH,UnitU,"modv")

end

n=Reduce(0,-1)

AddBit(n,"VP")

SetHead(n,-1)

AddRuleSet(n,"HeadWord","XB_ChunkVP")

}}

根据上文介绍可知,本文定义的关系中,Obj和Mod-v中述补结构部分的中心语在左,其余关系的中心语均在右。在书写分析规则时首先根据中心语的位置关系进行分类,将中心语位置相同的规则放到同一规则集中,运行规则集时采用中心语优先的顺序,即当中心语在右时,规则集从右往左运行;中心语在左边时,规则集从左往右运行。同时考虑到组块内部存在递归的语言现象,运行规则集时采用loop机制,如分析“日本资本市场”,首先进入中心语在右的规则,分析“资本市场”,在网格中生成“资本市场”的网格单元,若采用loop机制,需要在规则集中再次为“资本市场”添加进入中心语在右的规则入口,此时新生成的网格单元就可以再次进入同一规则集,也就可以分析“日本”和“资本市场”之间的关系。在这两种方式的结合下,就可以处理组块内部出现的简单非递归语言现象和中心语位置相同的递归语言现象;此时,网格会生成比组块单元粒度小、比词语单元粒度大的中间网格单元。之后,为这些新生成的中间粒度的网格单元添加入口,处理不同中心语位置的递归语言现象和简单结构之间的组合现象,从而实现组块内部结构关系分析。

3.2.3启动试验 本文采用的是离线分析的形式,以Lua脚本为总控,安排规则集的入口和调用顺序,并收集规则集的输出结果。主要依赖于exe工具包,包括jpengine.exe和jparse.exe。其中:data目录下存放索引数据,包括搭配、词典、规则集的索引数据;res目录下存放搭配、词典、规则集的原始数据文件;test目录下存放实验输入数据及输出结果。具体操作时,首先要先在config中配置好各类型文件存放的目录,然后使用idx.bat对搭配文件和规则集文件建立索引,最后使用run.bat运行规则集。

3.3 实验结果及分析

3.3.1评价参数 本文采用准确率(P)、召回率(R)和综合评价指标(F)三个指标对实验结果进行评价。各指标定义为

P=正确三元组数/召回三元组数×100%,

(1)

R=正确三元组数/应召回三元组总数×100%,

(2)

F=(2×P×R)/(P+R)×100%。

(3)

三元组指两个词语及其关系,正确三元组数为本文正确识别出的三元组个数,召回三元组数为本文识别出的三元组总个数,应召回三元组总数为测试数据中包含的所有三元组个数。

3.3.2结果分析 利用离线工具包和书写好的规则集对测试集数据进行分析,实验结果如表2所示,针对本文定义的几种关系类型,从整体来看,P值、R值、F值的分析效果都达到80%以上。从具体某一关系类型来看,Mod-n、VR关系的识别效果较好,P值、R值、F值均在85%以上,其中:Mod-n的F值达到了91.02%;Sbj的识别效果最差,F值只有67.37%;Paral的精确率最高,达到98.01%,但其召回率较低;VR的召回率最高,为91.33%。

表2 CTB gold standard数据集实验结果Table 2 The results of CTB gold standard dataset

针对上表的测试结果,通过观察语料,进行了错误分析,发现以下几个方面影响测试结果。

1)块内部的主语和宾语与核心述语的依存距离均较长,而宾语与述语的距离最长,故Obj的召回率较低。且由于主谓搭配比较灵活,故本文规则中使用的搭配知识只包括动宾、状中、述补、定中四大结构类型的搭配。因此,虽然Obj的召回率比较低,但有搭配知识辅助规则进行识别,其识别准确率依旧较高,而Sbj的识别缺少搭配知识辅助,故其识别准确率最低。这也充分说明了语言资源在句法分析中的重要作用。

2)本文采用结巴工具对分好词的语料进行词性标注,存在一定的错误性。由于采用的是基于规则的分析方法,为保证运行速度,减少规则集歧义,在运行规则集之前需要为句子中的词语添加规则集入口,而具体为哪些词语添加入口,需要参考词性信息。一旦词性标注错误,则会使本该能够进入规则集的词语失去被规则集处理的机会,影响输出结果。如“没有发现一例回扣”中,“没有”应该为动词,而结巴工具将其标注为副词,从而使得该词语丧失了进入规则集的机会,导致规则输出“发现”“没有”为Mod-v关系,而丢掉了以“没有”为中心语的短语结构关系,使Mod-v的召回率较低。

3)语料中存在大量复杂介宾结构作状语和介宾结构与其他结构共同作状语修饰谓词中心语的现象,介宾结构右边界的判定是规则集处理中的一大难点。如“纪念皖南事变50周年,对于继承和发扬新四军的优良传统,吸取历史经验,促进部队改革和建设,具有重要的现实意义”。这句话中的介宾短语是由介词和小句构成,且介宾短语长度大,规则集不可能完整地描述其构成,只能从介宾内部简单结构入手,再进行迭代处理,这样介宾的分析效果就依赖于其内部小句的完整分析,使得Mod-v关系最终的分析结果不太理想。而Mod-n关系中同样也存在复杂结构做定语的情况,故召回率较低,但其基本是在同一组块内分析得到,利用规则集和搭配知识可充分描述其上下文,故精确率较高。

4)对于并列结构,本文只考虑了在同一小句内出现且有形式化标记的情况。谓词性结构并列大多是两个独立动词并列,分析效果较好,而体词性结构并列项较多且涉及复杂结构,故其召回率较低。如“重点发展的医药与生物技术、新材料、计算机及应用、光电一体化等产业已初具规模。”这句话中每个并列项长短不一且并列项内部仍有表示并列的连词“及”,句首的定语也容易被误分析为第一个并列项的定语而不是并列结构整体的定语,规则集处理时仅仅依靠搭配知识很难消除这种歧义。

5)本文的搭配知识库搭配数量多,虽已进行初步消歧,但不同类型搭配中仍有重叠部分,搭配准确性也有待提高。

4 结论

本文在组块边界识别的基础上分析同一组块内词语之间的语法关系,并将分析结果以三元组的形式表示,即。采用基于规则的多结构融合方法进行组块分析,根据汉语特点来定义规则集的类型、书写方式和API,将规则集与有限状态自动机、树结构、网格结构以及搭配知识有效融合,使之形成良好互动。该方法在组块边界识别的基础上加深了句法分析的深度,充分说明了符号计算与参数计算相结合的融合方法在实践中具有可行性,验证了语言资源在句法分析中的重要性,进一步推动了传统组块分析向完全句法分析的发展。

本文对块内关系的分析虽然取得了不错的效果,但仍有待进一步完善和优化。从组块边界来看,可以继续优化组块结构树模型,提供更准确的组块边界,同时,也可以在组块内部进行再次边界划分,为规则分析提供更多的边界信息;从规则方面来看,可以继续细化规则,调整规则顺序,尽可能减少规则分析的歧义;从语言资源来看,可以对搭配知识进一步地整理和消歧,提高资源的可靠性。

猜你喜欢
中心语组块短语
浙江桐庐中学 晏铌 老师答疑
初中英语词组高频考点聚焦
组块教学在小学语文教学中的运用
组块理论的解读及启示
论维吾尔语中心语及其维汉翻译的作用
试析“词汇组块”教学在高中英语教学中的实际运用
汉泰状语与中心语结构浅析
让你的记忆力更棒
浅谈科技文章标题的翻译