石翠
摘要:依存句法分析是对自然语言进行自动分析构建句子对应的依存树的一种方法,是自然语言处理重要的一部分,但目前依存句法分析的准确率并不高。介绍了依存句法结构并对依存句法的分析方法进行了总结与综述,介绍了基于规则的依存句法、基于统计的依存句法和规则与统计相结合的依存句法的分析方法。最后,分析了汉语依存句法分析的困难和优势。
关键词:依存句法; 规则; 统计; 分析方法
中图分类号:TP391 文献标识码:A文章编号:2095-2163(2013)06-0047-03
0引言
任何一种句法分析都是依赖于某种语法理论的。依存语法的含义是用词与词之间的依存关系来描述语言结构。计算语言学家Robinson总结了依存语法的4条公理[1]:
(1)一个句子中只有一个独立成分不依存于其他任何成分;
(2)句子的其他成分都必须依存于某一成分;
(3)任何一个成分都不能依存于两个或两个以上的其他成分;
(4)如果成分A直接依存于成分B,而成分C位于A和B之间,则C依存于A或者B,或者依存于A和B之间的某一成分。
为了直观描述句子的形式模型,可根据句法模型将一个句子中各成分之间的关系显式表达为某种句法结构图形式,以便于人对句子的理解以及机器的自动学习。图1例示了一个句子的依存结构,(a)为依存树;(b)为有向图;(c)为依存投影树。
1依存句法分析方法
依存句法分析是针对给定的句子序列应用某一依存语法体系对自然语言进行自动分析构建句子对应的依存树的一种方法。一般来说,句法分析方法可分为基于规则的分析方法、基于统计的分析方法以及统计与规则相结合的方法。
1.1基于规则的依存句法分析方法
基于规则方法的基本思路是由人工组织语法规则,建立语法知识库,通过条件约束和检查来实现句法结构歧义的消除[2]。
1.1.1基于泰尼埃理论的依存句法分析
泰尼埃的句法理论本质上是一种基于虚图式的句法分析理论和实图式的分析表示体系。该理论认为任何句子都可以纳入句子的虚式图中,分析的过程即是将句子纳入句子图式的过程,而此过程的进行,必须通过转用。因此,可以说泰尼埃的依存句法分析理论以转用操作为代表。
Giguet[3]等人构建了泰尼埃式法语依存句法分析器,但在具体实现过程中,该系统结合了组块分析和依存分析方法,先进行一种被称作非递归短语(nr-短语)成分的识别,然后在此基础上进行组块的连接,其中后一个过程通过使用连接规则而最终实现。该分析器采用了不同技术分层构建的原则,降低了依存关系选择时的复杂度,提高了分析器的效率。
Tapanainen和Jarvinen构建了一种非投影的依存句法分析器,实现了泰尼埃理论。此分析器中共有约2 500条规则,并提出了功能依存语法(Functionality Dependency Grammar, FDG)的理论框架,展示了依存语法形式化体系的普遍性和描写能力[4]。
1.1.2基于上下文无关文法的依存句法分析
上下文无关文法的依存句法分析是一种类似于短语结构句法分析的方法,将词与词之间的依存关系看作成分结构(Constituent structure)来进行分析。Hays将依存规则定义为“一种有关句法单位价的描述”,由一个支配成分和有限数量的从属成分构成[5]。以依存规则为基础,提出了句子语法合格性的判定过程,被称为决策过程(a decision procedure)。此决策过程即为Cocke-Younger-Kasami(CYK)算法中的Cocke的过程。
Lombardo和Lesmo对Early算法进行改进,构建了依存句法分析器,在效率上取得很大优势。该方法对“预测”(predictive)部分进行了预处理,通过将其编译为句法分析表的方法来优化识别效率。依存规则转化为句法分析表的过程需要两个步骤,一是将规则转化为转移图,二是将图映射到句法分析表中[6]。
1.1.3基于约束的依存分析方法
该方法是以约束依存文法(constraint dependency grammar,CDG)为基础,针对依存语法没有严格的形式化描述而提出,并已成为目前依存句法分析技术研究和实现中众家关注的方法之一。这是一种以语法为驱动的分析方法,但区别于生成语法中的重写规则,而采用消去法来分析句子结构。其分析过程是采用约束满足问题来进行描述的有限构造问题[7]。主要分为三步:
(1)采用约束依存语法,建立约束集合;
(2)根据已规定好的约束对不满足约束的分析进行剪枝;
(3)判断是否存在不确定性问题,更新约束集合,重复(2)直到构建一棵完整的合法的依存树。
由德国汉堡大学的Menzel等人提出的“加权约束依存语法”(Weighted constraint dependency grammars, WCDG)[8]是对CDG方法的扩展,引入了加权约束机制。系统中的所有规则都按照一定的优先级测度来排序,以对语法规则的重要性进行衡量。
1.2基于统计的依存句法分析方法
由于大规模语料库的构建,目前依存分析方法中以统计分析方法为主流。统计的方法利用统计学的原理,从语料库中获取分析过程所需的知识。统计方法基于以下假设:语料库是唯一的信息源,所有的知识(除统计模型的构造方法外)均可从中获得;语言知识在统计意义上得到解释,所有参量可通过统计或训练从语料库中自动获取[9]。
Eisner提出三个依存句法分析的词汇化概率模型,同时采取自底向上的CYK算法[10],同时引入了加权双词汇化语法(weighted bilexical grammar)。加权双词汇化语法中的语法规则由限定一词扩展为限定两个词,基于此的概率句法分析器的主要工作即是估计词w被词p所修饰的概率。
Yamada 等人[11]提出一个基于移进-归约(Shift-reduce)算法的决策式分析模型。该方法从左至右遍历句子过程中构建依存树,模型使用三种动作:移进(Shift)、左弧(Left)和右弧(Right)。建树的过程即是判断当前,节点对应该采用哪种动作的过程,因此可将其看作分类问题,采用支持向量机的方法解决该分类问题。该模型不但扩展了依存分析方法,也形成了一种更加简单易行的依存分析方法。
投射句可采用自底向上的Eisner动态规划算法[10]。而对于非投射句,则采用如图2所示的Chu-Liu-Edmonds算法[12]。
① 保留每个节点中权数最高的入边,形成图GM=(V, M);
② 如果GM中存在环,将GM中的环看做一个节点,重新计算每条边的权值,形成新图GC,转到①;
③ 否则,返回GM;
④ 删除环内多余的边。
输出:生成的由图和环内的边组成的最优有向图
1.3统计与规则相结合的依存句法分析方法
基于规则的分析方法需人工编写语法规则,以此构建语法知识库,通过条件约束等实现句法分析中的结构消歧。大量的语言学家认为规则可以涵盖绝大多数的自然语言现象,但通过实践表明,这种规则的构建过程是非常困难的。因此,目前的句法分析系统大多在以下几个方面进行权衡折衷:
(1)更多地关注浅层句法分析。当前的许多问题只利用浅层句法信息就可以解决,因此完全句法分析则被放弃,而是转向各种浅层句法分析,其中最具代表性的就是组块分析、最长名词短语识别;
(2)从已有的语料中自动提取概率模型,利用此模型来最大化待处理结构的相似性。这是一种有效的方法,但依赖大量的语料,生成的模型也难于理解;
(3)针对特定问题,结合统计与规则方法的优势。
2结束语
从目前的依存句法分析研究成果来看,汉语的依存分析没有得到很好的发展,与英语等印欧语言相比滞后很多。迄今为止,汉语的依存句法分析在开放集上的最好结果UA指标不到85%,而且没有大规模的汉语依存树库、由此而造成汉语分析困难的原因主要有如下几个方面:
(1)汉语属于少数孤立语语言中的一种,同一词可以担任多种句法成分而没有形态的变化,短语担任不同句法成分时也无形态变化,这种无形态的变化将给排歧造成极大的困难;
(2)汉语存在普遍的递归性,复合名词、动词短语多;
(3)汉语的语法作用通过虚词和词序来表达,虚词在句中没有实际的意义,常常被省略掉;而汉语的词序又相当灵活;
(4)汉语的语法功能类型较多;
(5)汉语的标点符号带有比英语标点符号更多的信息。
虽然汉语与英语相比在句法分析上存在上述困难,但在另一方面汉语也有一些自身的优势。汉语自身的优势有:
(1)汉语的词虽然没有形态变化,但如果汉语词的词性或语义角色确定了,就会受到与其他语言相比更强的语法约束,比如在汉语中只有动词和介词拥有右从属者;
(2)一些汉语语块具有明显的边界标志,如介词短语“在……里”;
(3)汉语的偏正修饰语只能在中心词之前,没有后置定语,也没有定语从句,不需要分析从句引导词的从属问题。
现在亟待解决的问题是构建大规模的语料库,寻找汉语自身的规律,提高句法分析的精度。
参考文献:
[1]ROBINSON J. Dependency structures and transformational rules[J]. Language,1970, 46(2):259-285.
[2]GIGUET E, VERGNE J. Syntactic analysis of unrestricted French[C] //Proceedings for the the International Conference on Recent Advances in Natural Languages Processing (RANLP`97), 1997: 276-281.
[3]TAPANAINEN P, JARVINEN T. A non-projective dependency parser [C]// Proceedings of the 5th Conference on Applied Natural Language Processing, 1997: 64-71.
[4]HAYS D. Dependency theory: a formalism and some observatoins[J] . Language, 1964: 511-525.
[5]LOMBARDO V, LESMO L. An early-type recognizer for dependency grammar[C]//Proc. COLING, 1996: 723-728.
[6]MARUYAMA H. Structural disambiguation with constraint propagation[C]// ACL-90, 1990:31-38.
[7]MENZEL W, SCHRODER I, KOTH K, et al. Modeling dependency grammar with restricted constraints[J]. Traitement Automatique des Languages, 2002,41(1):113-144.
[8]周强. 基于语料库和面向统计学的自然语言处理技术介绍[J]. 计算机科学,1995,22(4):36-40.
[9]TAPANAINEN P, JARVINEN T. A non-projective dependency parser[C]// Proceedings of the 5th Conference on Applied Natural Language Processing, 1997: 64-71.
[10]AMUELSSON C. A statistical theory of dependency syntax[C]//COLING, 2000: 684-690.
[11]CRAMMER K, SINGER Y. Ultraconservative online algorithms for multiclass problem[J]. Journal of Machine Learning Research, 2003,1(3):951-991.
[12]CARRERAS X. Experiments with a high-order projective dependency parser[C]// EMNLP-CoNLL2007, 2007:957-961.