依存语法的形式化
-- 纪念泰尼埃逝世60周年
冯志伟
语言的形式化是指“运用数学形式和形式逻辑描写自然语言。与非形式化的描写相比,形式化的优点是词汇(=术语)有较大的明确性、精确性和经济性,对论据能够进行较容易和可靠的验证。”(布斯曼,《语言学词典》,商务印书馆,2003: 158)
采用数学或形式逻辑的方法来描写自然语言的努力,在哲学等领域早已有之。但一般认为,现代意义的语言形式化描述始于美国语言学家乔姆斯基,关于一点,GPSG和HPSG的创立人之一Ivan Sag 是这样说的“乔姆斯基对于语言学的主要贡献是在语言结构的研究中引入了可对假设进行数学般精确描述的工具,这使得收集各类数据并用其来证明某些假设的不成立变成了科学研究。... 这种试图采用清晰、精确的假设来研究句法、形态或词汇的思想,要比‘空语类原则’,‘支配与约束理论’更有生命力。”[1] 本文介绍一些依存语法的形式化方面的成果。
依存语法的本质是一种分析语法,其注重的是对语句的描写和分析。当然,短语结构语法可以用作分析,依存语法也可以用到生成领域。本文将对两种语法的等价性做一些研究,研究的目的是想说明依存语法不仅仅只等价于短语结构语法中的上下文无关文法,它本身也可按照生成能力的不同,形成一种类乔姆斯基的层级。
与短语结构语法比较起来,依存语法没有词组(短语)这个层次,每一个结点都与句子中的单词相对应,它能直接处理句子中词与词之间的关系,而结点数目大大减少了,便于直接标注词性,具有简明清晰的长处。特别在语料库文本的自动标注中,使用起来比短语结构语法方便。因此,依存语法受到了自然语言处理研究者的欢迎。
Hays的《依存理论》(Dependency Theory: A Formalism and Some Observations, 1964)是依存语法形式化研究被引用最多的文献之一。其原因不仅在于这篇文章源自Hays在RAND公司的机器翻译实践,也是由于这篇文章是世界上第一篇用严格的形式化方法来对依存语法进行描述的研究,当然其发表语言英语和刊物《Language》也有助于文章的流传。RAND公司的机器翻译系统不仅仅产生了一种形式化的依存语法理论,而且他们也构造了世界上第一个(依存)树库。Hays关于依存语法的思想不仅影响了英语世界的研究者,而且对其他地区相关领域的研究者也产生了极大的影响。意义文本理论(MTT)的创始人Mel’čuk回忆说“在机器翻译及语言学领域,我也许是第一个做依存分析的人。一位美国研究者关于投影(Projectivity)和句法结构的思想对我们影响极大,他就是David Hays。实际上,他的两篇优秀的论文完全改变了我对句法的看法。”[2]
Hays论文的题目是“依存理论:形式化方法及一些观察”,但正如他自己在文中所言,他所采用的依存形式化描述体系,实际上是建立在Gaifman《依存体系和短语结构体系》(Dependency Systems and Phrase-Structure Systems, 1965)基础上的。换言之,依存语法形式化第一人是Gaifman,因此我们这里的介绍源自Gaifman(1965)[3]。
下列研究涉及词或其范畴的有限序列。我们用带有下标或不带下标的字母u, v, w, x, y, z 和 U, V, W, X, Y, Z 来表示这些序列的成员,其中小写字母表示词,大写字母表示词范畴。在我们讨论这些序列时,也应涉及到词(范畴)的现次(occurrences)问题。这样就能区分在序列中出现于不同位置的同一个词。严格说来,现次是一个有序对,其中x是词(范畴),i 是其出现的位置。带有下标或不带下标的”P”, “Q”, “R”, “S”, “T” 表示词或范畴的现次。如果P = ,则P 的序号S(P) 被定义为i,而且P的范畴为X。
所谓依存系统,我们认为是这样一种系统,它含有有限数量的规则,利用这些规则可以对一种语言进行依存分析。规则可分为以下三类:
可以从相对位置推导出每个范畴直接相关范畴的规则。对于每一个范畴X,有一组形如X(Y1, Y2 … Yl * Yl+1 … Yn)的有限数量规则,其意义为Y1 … Yn按照给定的顺序依存于X,*表示X自己在序列中的位置。
(1) 可列出某一范畴所有词的规则。每一个范畴至少应该有一个词, 每一个词至少应该属于一个范畴。词可属于一个以上的范畴。
(2) 可列出所有可以支配一个句子的范畴的规则。
我们用L1、L2和L3来表示这三个规则集合。
句子 x1x2 … xm 可用依存体系进行如下分析:构建一个范畴序列 X1X2 … Xm,其中Xi 为xi 的范畴,1≤i≤m。在序列x1x2 … xm 中的词现次之间建立依存关系,这是一种二元关系d。“PdQ”的意思是“P依存于Q”,即:在P和Q之间有一种关系。
我们可以为每一个d定义另外一种关系d*:iff(当且仅当)存在P0, P1 …, Pn 使得P0=P, Pn=Q, 并且对于1≤i≤n-1, PidPi+1, 则Pd*Q。
关系d应该满足下列条件:
(1) 不存在一个P,使得Pd*P成立。
(2) 对于任何P,最多只能有一个Q,使得Pd*Q成立。
(3) 如果Pd*Q成立,并且R位于P和Q之间,S(P)或 S(P)>S(Q),则Rd*Q成立。
(4) 所有的现次都是通过d相连的。也就是说,最多并且只能有一个现次不需依存于其它现次。
(5) 如果P是xj的一个现次,并且依存于它的现次为P1, P2…, Pn, Ph是xih的一个现次,h=1 … n,这些词出现于句子中的顺序为 xi1, xi2, …, xik, xj, xik+1, …, xin, 那么Xj(Xi1 … Xik * Xik+1 … Xin)是一个L1规则。如果没有现次依存于P,此时n=0, 这样Xj(*)也是L1的规则。
(6) 支配句子的现次是一个词的现次,这个词所对应的范畴在L3中。
范畴序列X1X2 … Xm和关系d共同构成了句子的依存树,简称d树(d-tree)。依据不同的句法解释,同一个句子可以有一棵以上的依存树。如果一种语言中的每一个句子都能对应于一棵依存树,而不是句子的词串没有对应的依存树,那么我们就说这种语言是可用依存体系精确描述的。
以上就是Gaifman对依存语法的主要形式化定义。我们可以将这些定义归结为这样四条原则:
(1) 仅有一个现次不用依存于别的成分;
(2) 所有其他现次都依存于某些成分;
(3) 没有现次能依存于一个以上的成分;并且,
(4) 如果A直接依存于B,那么某个位于它们中间的现次C,只能直接依存于A或B或者同样位于其间的其他成分。
这也就是广为人知的依存语法的四条公理。应该注意的是,Gaifman所说的依存系统的三类规则和Hays(1964)中所说的依存语法三种规则有所不同。Gaifman体系里只有第一类规则可以算是真正意义上的依存规则,这规则反映了支配词和从属词之间的依存和配置关系;第二类规则实际上是一种词汇规则,也就是有关词表的另一种说法而已;第三类规则指的是可以做句子支配成分的范畴集合。Hays把依存规则定义为“一种有关句法单位价的描述”,它由一个支配成分和有限数量的从属成分构成。他的依存规则具有下列三种形式:
Xi(Xj1, Xj2, …, *,…, Xjn) (1)
Xi(*) (2)
*(Xi) (3)
我们不难看出,Hays的三条依存规则基本上是Gaifman第一类规则的细化。Hays的规则没有包括有关词汇方面的规则,因为他认为“终极符号不应出现在依存规则中。”
从以上讨论来看,Hays和Gaifman的依存语法更像是一种上下文无关文法(CFG)的变体。事实上,Gaifman(1965)的主要目的就在于证明依存语法和CFG没有什么不同,他的结论“依存语法弱等价于CFG”是建立在严格的形式依存和投影结构基础上的。我们可以看出这样的形式化体系并不是对泰尼埃依存语法的形式化。Gaifman和Hays得到这样的结论是意料之中的,因为我们在他们的这两篇文章里根本就没有看到泰尼埃的身影。
在这一点上,另一篇采用Gaifman依存形式化体系的,同样属于引用最多的依存语法文献的作者Robinson的看法也是有问题的,在谈到上引的依存语法四条公理时,她说“这些理论的公理是由泰尼埃提出,并由Hays和Gaifman形式化的。”(Dependency Structures and Transformational Rules,1970: 260) 更准确的说法是,这其中有些是泰尼埃提出的,但其中的第四条却与泰尼埃的原意相违。第四条公理不但使Gaifman他们的依存理论和泰尼埃的理论有了区别,也开创了一种新的依存理论形式化体系-投影依存语法(Projective Dependency Grammar)或线性有序的依存语法(Ordered Dependency Grammar)。
在非计算语言学家中,德国语言学家Heringer的依存语法理论是形式化程度最高的了。他的第一部著作《德语句法理论》(1970)组合了短语结构和依存语法的特点形成了一部形式化程度较高的德语语法。这部语法的架构是由29条短语规则和93条词汇规则构成的,并辅之有59条依存规则。为了将短语结构和依存结构连在一起,首先计算出每一结构层中最有影响的节点。然后,将短语规则转换为依存规则,此时最有影响的节点就成了支配成分。用这种方式我们也可构建句法范畴之间的依存关系。在313页的书中,有关依存规则的内容只占了13页,由此可见短语结构仍然是此书的主角。有趣的是为什么作者会在这样一套已自成一体的德语形式化程度很高的理论中引入依存的概念,并从短语结构中提出头,然后又把它转换为依存结构呢?作者自己在书的最后一段对此作了解释“因为句法描述的目的是解释句子的意义是如何与组成它的各成分之间的意义相关联的,上下文无关的短语体系在这一方面是不足的。因此,短语结构体系必须要由依存理论来补充。…通过某些规则将短语结构书转换为依存树,因为后者形成了句子语义解释的基础。”(1970: 296) Heringer这本书问世已有数十年了,但书中的某些思想,如将短语结构树转换为依存树以便于提取语义却吸引了越来愈多的计算语言学家。
1980年,Heringer与人合著了一本“句法”教科书,其中有关依存语法理论的内容占了约一半的篇幅(150页)。书中不但有一章题为“泰尼埃的结构依存语法”,更是单列了一章“形式依存语法”(Fromale Dependenzgrammatik, 约100页),介绍了有关依存语法形式化的各种问题,当然受所处时代和书的性质(教科书)的限制,此书介绍的依存形式化模型的主要基础还是Hays和Gaifman的有关理论和方法。
Heringer有关依存语法最著名的著作当数在1996年出版的“德语依存句法”。这本书含有99个句法结构图式(Stemma),112条规则,163个例句,95条词汇规则[4],所有这些形成了现代德语的依存语法架构。
Heringer(1996)将成分之间的依存关系视为依存句法的基础,也就是说,它用句子各部分间的从属关系来描写句子的结构。他认为一个纯粹的依存句法具有如下特征:
l 表层性:它不处理句子深层的逻辑结构,而只关心其句法形式;
l 词汇性:它不含比词汇更高层面的范畴;
l 头优先性:构造句子结构时,从图式的顶部开始;
l 解释性:它把句子从线性结构转变为树形结构;
l 规则性:它是基于句法规则和条件的;
l 容许性:它规定了可进一步扩展的框架。
Heringer 认为一种形式依存句法应该有这样一些组成部分:
l 表示词汇范畴的符号;
l 如何来定义句法规则的形式;
l 词汇规则,即:词表中词项的组成和排序;
l 词项的格式。
Heringer将德语词划分为主类(如,V 动词,N 名词,A 形容词,D 限定词,P 介词等)、副类(如,ADV 副词,KON 连词等)、语素类(如,VM 动词语素,AM 形容词语素等)、次类(如,N_pro 代词,V_aux 助动词等)。由此我们可以看出,词类的划分是必要的,对于有些词类还需要进一步区分次类。
依存规则的形式我们在上面已经提及,这里只强调一点,在形如X [Y1, Y2, ~, Y3] 的规则中,方括号外面的X为括号里面元素的支配者,括号里的‘~’为支配者在线性串中的位置。这种表示类似于Hays和Gaifman的依存规则表示方式,这里不再赘述。可能是为了吸取泰尼埃图式的优点,便于理解规则,Heringer也引入了Stemma(图式)的概念,图式在这里成了依存规则的另一种表示方式。
按照规则的表现形式和图式的属性看,Heringer似乎结合了泰尼埃和Hays方法的优点,但在Heringer(1996)一书的参考文献里没有发现二位的大名。
随着依存语法应用的不断深入,依存语法形式化的方式也越来越多。
1987年,舒贝尔特(K.Schubert)在研制多语言机器翻译系统DLT的工作中,从计算语言学的角度出发,提出了用于计算语言学的依存语法12条原则:
1.句法只与语言符号的形式有关;
2.句法研究从语素到语篇各个层次的形式特征;
3.句子中的单词通过从属关系而相互关联;
4.从属关系是一种有向的同现关系;
5.单词的句法形式通过词法、构词法和词序来体现;
6.一个单词对于其他单词的句法功能通过从属关系来描述;
7.词组是作为一个整体与其他词和词组产生聚合关系的语言单位,而词组内部的各个单词之间存在着句法关系,形成语言组合体;
8.一个语言组合体内部只有一个支配词,这个支配词代表该语言组合体与句子中的其他成分发生联系;
9.句子的主支配词支配着句子中的其他词而不受任何词的支配,除了主支配词之外,句子中的其他词只能有一个直接支配它的词;
10.句子中的每一个词只在从属关系结构中出现一次;
11.从属关系结构是一种真正的树结构;
12.在从属关系结构中应该避免出现空结点。
不难看出,舒贝尔特的这12条原则包含了上面提及的依存语法四条公理,并且把从属关系扩展到了语素和语篇的领域,可计算性和可操作性更好,更加适合于自然语言处理的要求。
从属关系可以用树形图来表示。表示从属关系的树形图,叫做“从属树”(dependency tree)。这种从属树是自然语言句子结构的一种形式描述方式,因此,有必要进一步研究从属树中结点之间的各种关系。
我国学者冯志伟从开发机器翻译系统的实践中,在上世纪80年代初期就研究了从属树中的结点之间的关系,他认为,这样的关系主要有支配关系和前于关系两种。
如果从结点x到结点y有一系列的树枝把它们连接起来,系列中所有的树枝从x到y自上而下都有同一个方向,那么,就说结点x支配结点y。例如,在表示“大学学生喜欢流行歌曲”这个句子的从属树中,标有“喜欢”的结点支配标有“学生”和“大学”的结点,标有“学生”的结点支配标有“大学”的结点;标有“学习”的结点还支配标有“歌曲”和“流行”的结点,标有“歌曲”的结点支配标有“流行”的结点。
从属树中的两个结点,只有当它们之间没有支配关系的时候,才能够在从左到右的方向上排序,这时,这两个结点之间就存在着前于关系。例如,在前面的从属树中,标有“学生”的结点前于标有“歌曲”和“流行”的结点,“学生”与“歌曲”这两个结点之间,不存在支配关系,“学生”与“流行”这两个结点之间,也不存在支配关系;同样地,标有“大学”的结点前于标有“歌曲”和“流行”的结点,“大学”与“歌曲”这两个结点之间,不存在支配关系,“大学”与“流行”这两个结点之间也不存在支配关系。
根据机器翻译研究的实践,冯志伟提出,从属树应该满足如下五个条件:
1.单纯结点条件:在从属树中,只有终极结点,没有非终极结点,也就是说,从属树中的所有结点所代表的都是句子中实际出现的具体的单词[5]。
2.单一父结点条件:在从属树中,除了根结点没有父结点之外,所有的结点都只有一个父结点。
3.独根结点条件:一个从属树只能有一个根结点,这个根结点,也就是从属树中惟一没有父结点的结点,这个根结点支配着其他的所有的结点。
4.非交条件:从属树中的树枝不能彼此相交。
5.互斥条件:从属树中的结点之间,从上到下的支配关系和从左到右的前于关系是互相排斥的,也就是说,如果两个结点之间存在着支配关系,那么,它们之间就不能存在前于关系。
我国学者冯志伟提出的从属树的五个条件,更加形象地描述了从属树中各个结点之间的联系,显然比罗宾孙的四条公理和舒贝尔特的12条原则更加直观,更加便于在机器翻译和自然语言的计算机处理中使用。
用依存语法来进行自动分析是很好的,因为分析得到的从属树层次不多,结点数目少,清晰地表示了句子中各个单词之间的从属关系。但是,用从属树来进行自动生成时,必须把表示句子层次结构的从属树转变成线性的自然语言的句子,根据从属树的第5个条件(互斥条件),从属树中结点之间的支配关系和前于关系是互相排斥的,从结点之间的支配关系,不能直接地推导出它们之间的前于关系,所以,还应该按照具体自然语言中词序的特点,提出适当的生成规则,把表示结构关系的从属树,转变成表示线性关系的句子。在这方面,各种自然语言的生成规则是不尽相同的。例如,汉语的修饰成分一般应置于中心成分之前,而法语的某些修饰成分则置于中心成分之后;汉语主动句的宾语一般应置于谓语之后,而日语的宾语则置于谓语之前。
与短语结构语法相比,从属树也有它的不足之处,在短语结构语法的成分结构树中,由于终极结点之间的前于关系直接地反映了单词顺序,只要顺次取终极结点上的单词,就能够直接生成句子。所以,在自动生成方面,从属树不如短语结构语法的成分结构树方便。为了弥补从属树的这种不足,许多学者在机器翻译研究中,把短语结构语法和依存语法结合起来,较好地解决了句子的自动生成问题。
参考文献
1.L.Tesniere,Éléments de Syntaxe Structurale,Paris,Klinck-sieck,1959.
2. 冯志伟:《特斯尼耶尔的从属关系语法》,《国外语言学》,1983年第1期。
3.K.Schubert,Metataxis:Contrastive Dependency Syntax for MT,Dordrecht:Foris,1987.
4. 刘海涛:《泰尼埃的结构句法理论》,《北华大学学报》(社会科学版)2007年第5期。
5. 刘海涛:《依存语法的理论和实践》,科学出版社,2009年。
5. J. Nivre, Inductive Dependency Parsing, Berlin: Springer, 2006.
[1] 参看荷兰学生计算语言学刊物 Ta! 1993年第2期上对Sag的采访。http://www.let.uu.nl/~Anne-Marie.Mineur/personal/Ta/Sag.html
[2] Mel’čuk 这里所说的两篇文章是指 (1960) Grouping and dependency theories 和(1961) On the value of dependency connection. 因为这两篇文章前者为RAND公司内部报告,后者也出现在一个不大的专业会议论文集里,所以其影响不如他1964年发表在 Language 上的文章。
[3] 由于Gaifman也是RAND公司的研究者,所以Hays才有可能在自己1964年的文章里引用Gaifman 1965年的文章。
[4] 有如此之多的词汇规则是由于包含了不少的子类,如动词的子类就列出了21种。
[5] 在我们为自然语言处理而进行的依存分析中,为了操作上得方便,也可以在表示单词的结点上加上词类信息或语义信息,采用复杂特征。不过,在泰尼埃的原著中,只采用单纯结点。

