汉语手写句子的CCG格式计算及相关句型_自然语言处理论文

汉语把字句及相关句式的CCG形式计算,本文主要内容关键词为:汉语论文,句式论文,字句论文,形式论文,CCG论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

[中图分类号]B81 [文献标志码]A [文章编号]1001-4799(2013)06-0042-08

1 把字句

把字句是现代汉语中的一种重要句式,它的基本构式为“”①。其中,VP可以是简单动词②(如①),也可能是述补结构(如②)。VP中出现的述补结构还可以再细分,分为得字式(如③)、动结式(如②、④)、动趋式(如⑤)和动介式(如⑥)。细分之后我们发现,①—③中的似乎都是VP的主语,④—⑥似乎都是VP的宾语,代表了汉语学界对性质的两种主流看法。但是,两种看法任一种都不能完全概括所有把字句的情况。(沈阳,1997)

①把几个犯人跑了 ②把好多人都累病了 ③把我愁得大病一场

④把孩子咳嗽醒了 ⑤把牙吃坏了 ⑥把电话打通了

沈阳通过考察汉语把字句中“把”后名词短语(即以上基本构式中的)在相应变形句式中的位置,认为以下⑦—⑩中的A、B两式是C式所代表的各种把字句的生成历史。基本想法是,“把”后不是的生成位置,从A式经过一个后移过程先达到B式,然后求助于“把”得以重新回到动词前边某一个可能的位置,得到把字句C式,体现了句式之间相互关联的想法。

⑦A几个犯人跑了 B跑了几个犯人 C把几个犯人跑了

⑧A好多人都累病了 B累病了好多人 C把好多人都累病了

⑨A我愁得大病一场 B愁得我大病一场 C把我愁得大病一场

⑩A(保姆)咳嗽+孩子醒了 B(保姆)咳嗽醒了孩子 C(保姆)把孩子咳嗽醒了

(11)A(这孩子)吃(糖)+牙坏了 B(这孩子)吃坏了牙 C(这孩子)把牙吃坏了

(12)A(我)打(电话)+电话通了 B(我)打通电话了 C(我)把电话打通了

换而言之,把字句的典型结构是由多重移位造成的。由此,沈阳将除简单动词把字句之外的典型把字句结构刻画为“双主谓套合结构”:

(13)

这种有关语言现象的研究和总结,对于语法现象的形式化十分有帮助。我们希望我们所进行的形式刻画能够尽可能把握该语言现象的规律,具有合适的概括性。下面我们将简要介绍本文使用的句法计算理论——多模态组合范畴语法,利用组合范畴语法对各组A、B、C式的计算,说明组合范畴语法在计算性上的优势。

2 多模态组合范畴语法

2.1 基本想法

组合范畴语法(Combinatory Categorial Grammar,简称CCG。参见Steedman,1987,1990,1996,2000)是范畴语法(Bar-Hillel,1953;冯志伟,2000;方立,2003;满海霞,李可胜,2010)的一个现代分支,其模拟范畴类型逻辑(Moortgat,1996)得到的多模态版本被称为多模态范畴语法(简称MMCCG。参见Baldridge & Kruijff,2003; Baldridge,2002)。CCG汲取了范畴语法的基本思想,仍使自然语言语词按照各自的句法性质对应于不同的范畴,通过范畴之间类似分数消去的运算,计算语句是否合语法。

定义1 范畴③

给定基本范畴集A,CAT(A)是满足以下条件的最小集合:

定义1是关于MMCCG范畴的基本定义。一般范畴演算的最小基本范畴集为{NP,S},NP为名称的范畴,S为语句的范畴。④CCG范畴采取结果范畴始终居于最左侧的写法,论元范畴根据结合先后由右至左排列。比如函项范畴(X/Y)\Z就表示它先后向左、向右分别结合范畴Z和Y后,会得到结果范畴X。在CCG中,模态下标i=。而在MMCCG中,根据定义1(iii),模态下标i可能是六种模态算子,其中,标记函项范畴的结合方向,其他四种模态算子分别体现对结合律和置换率的不同满足情况,如表1所示(具体语例分析参见邹崇理,2011):

2.2 计算性

衡量一套语法系统是否适合用于刻画自然语言句法构造过程,一个重要的依据,就是看它是否和自然语言一样,属于适度的上下文敏感(Mildly Context Sensitive)文法。⑤以短语结构语法为例,它作为早期最有影响力的形式句法理论之一,由于是一种纯粹的上下文自由文法,不足以用来刻画许多自然语言现象及现象之间的关系(Chomsky,1957),从而启发语言学家对自然语言句法理论孜孜不倦地探索。转换生成语法将短语结构语法的改写规则发展为中心语(head)与其投射(projection)之间的关系,利用移位、拷贝等技术手段,模拟出自然语言语句从深层结构到表层输出结构的生成历史。如简单语句John walks的短语结构改写规则集为((14)a),其转换生成语法树为((14)b)。

转换生成语法对普遍语法(Universal Grammar)的探究无疑是成绩卓著的,但是在信息处理过程中,机器在信息界面只能看到一系列有语形实现形式的字符串,对于特殊的语法结构(如语序灵活的情况、包含VP省略的并列结构等),什么时候发生了拷贝删略,什么时候发生了移位,它是很难判断的。计算语言学家Ades和Steedman出于计算性考虑,提出了基于范畴的组合计算方法。他们认为,完全有可能避开生成语法的深层操作,只通过对表层语词的计算,判断语句的合语法性,如((14)c)。这一思想后来发展成为CCG,并被证明具有适度的上下文敏感性(Baldridge,2002)。

从探索适于信息处理的“普遍语法”的角度来看,MMCCG将CCG又向前推进了一步。MMCCG在CCG的斜线算子上添加模态算子有两点好处:一方面,区别各条规则中的斜线类型可以满足规则在句法毗连上的不同要求,保证这一部分不因语言不同而变化,即相当于跨语言通用的“普遍语法”;另一方面,在特定语言中,根据语词的实际句法特征对其范畴所含斜线算子做允许保序、交换或者结合的多模态限制,以选择合适的组合运算规则,这相当于因语言不同而不同的“参数”。

(15)中左右两栏分别是基本范畴语法和MMCCG中的规则。⑦后者除基本范畴语法的函项应用规则>和<、类型提升规则T之外,还包含能够结合两个函项范畴的组合性规则B和允许重复使用同一语言资源的置换规则S。⑧正是这两组新增的规则(B和S)使范畴语法⑨具有适度的上下文敏感性,善于处理非成分并列、混序等现象。

有了MMCCG句法框架,我们将在下一部分构造汉语把字句片段的词库,并对⑦—(12)中的六组语句进行MMCCG生成,考察该语法在句法处理上的能力,看它在多大程度上能体现和区别同一组内语句之间、以及各组语句中相同句式之间的相似和相异性。

3 把字句及相关句式的MMCCG生成⑩

先定义基本词库如下。该基本词库只包括直觉上句法性质比较明显的语词,其中,我们认为“都”对主语NP做限制,为其指派范畴NP\NP。对“把”、“得”以及句法性质有所改变的语词的范畴赋值,我们将在讨论过程中逐一添加。

基本词库:

基于基本词库,若想为每组中把字句及相关的A式和B式做出尽可能统一的句法生成,考察CCG的生成能力,还需要首先回答几个问题:

(1)每组A、B、C句式变换过程中,组成成分的句法性质有否改变?

(2)沈阳提出的“双主谓套合结构”在句法上如何套合?套合前后两个VP的性质如何?

(3)基本词库未给出的“把”和“得”的范畴赋值是什么?

3.1 对CCG的考验

i.NP VP和VP NP的语序

语词的句法表现是范畴演算的基本依据。我们看到,⑦和⑧组语句中A式和B式只是NP和VP顺序的调换,按照一般对不及物动词范畴的赋值,这两个B式中动词所对应的函项范畴S\NP向后寻找论元,在句法上无法看到其右侧的论元,导致生成失败,如(16)。

在这一点上,最直接的解决办法,是为两个VP再赋一个向右结合论元的S/NP范畴,由此,B式中的S/NP就可以利用>规则结合其右侧的NP,得到语句范畴S。但是,这种做法面临着本体论上的顾虑。汉语是SVO语言(11),基本句型或者是SV,或者是SVO,不可能只有VO没有S。反过来,如果认为汉语允许语序如此灵活,承认SV和VS都是其基本句型,那么汉语必然也应该同时允许SVO和VSO语序。但是实际情况是,VSO语序对于汉语来说无论如何都是很难接受的(如:*吃他饭)。于是我们有两个选择:(1)认为动词确实要向右寻找论元,但是为避免本体论问题,令这类动词的范畴变为(S\NP)/NP,包含了一个缺省的主语。(12)(2)坚持S\NP范畴,考验我们句法运算系统处理语序置换现象的能力。

ii.的性质

根据沈阳的考察和推断,⑩—(12)组语句C式中“把”后的产生于的主语位置(如A式),由于某种原因后移得到B式,然后求助于“把”得以重新回到动词前边某一个可能的位置。问题是,在复杂把字句中,动结式、动介式、动补式都是以动词为核心的结构,在语义上不等于单纯的,“吃坏了”不等于既“吃了”又“坏了”,但A式中的两个VP分别是两个成分子句的谓词,在地位上不分主次。所以,结合的过程一定伴随着句法特征的改变,由一个谓语动词变成了一个谓语修饰成分,对应范畴VP\VP。VP对应S\NP或者(S\NP)/NP。但是,如果所有能做动词后修饰成分的语词都具有双重VP身份,无疑会大大增加词库负担,增加运算的搜索时间。幸运的是,CCG对此亦有作为,我们将在3.4节通过计算说明,利用交叉组合规则,范畴为(S\NP)\(S\NP)的谓词修饰语也可以修饰二元动词,避免词库所含信息激增。

3.2 “把”——句法透明?句法核心?

第三个问题是“把”和“得”的范畴赋值。卢英顺认为把字句存在“配价增值”现象,即把字句中的动词所能带的配价成分比非把字句中多,如(16)和(17)“警觉”和“停泊”从一价动词变成了二价动词。按照这种说法,“把”是一个句法上没有贡献、相对透明的语词,类似于X/X范畴,同时,把字句句中的动词从n元增加到n+1元。但是我们不禁要问一个现实问题,所谓新增动元“薄暮的春寒”、“呻吟般的歌声”的语义角色是什么?施事、受事、工具,还是地点?显然都不合适,最接近的情况是“致事”。继续论证下去,哪个带有[+致使]语义特征的成分发出信号,要求增加致事论元呢?如果是动词“觉醒”,那么“觉醒”一定有能力进入“A觉醒B”的结构,但似乎事实并非如此。或者说,把字句结构中如果是动词增值的结果,它应与VP具有紧密的联系,但我们发现,与VP的关系尚不如它与“把”的关系紧密。样就只有一种可能——“把”在句法上不是透明的,它引入了主语论元。(13)同样的,还有一些句子,在非把字句中可以分别带的不同种类的配价成分只有在把字句中才可以同时出现,如(18)中可以分别作“揉”的宾语的“面”和“馒头”,这种情况同样得益于“把”的句法作用。

(16)薄暮的春寒把她警觉,才知道迷迷糊糊地已到寓处。(钱钟书《纪念》)

(17)呻吟般的歌声把风景停泊在海湾。

(18)我把面揉馒头。

其实,“把”的语法意义(14)一直颇受争议,但不管“把”的语法意义是什么,一般学者都将“把”看做把字句的句法核心,它的句法作用是表达三者之间的某种关系。(15)所以“把”的句法范畴可以表示为(19):

(19)a表示“把”由右向左的论元结合顺序是、VP和,也就是说,“把”与结合最紧,之后是VP和。(19)a可以分裂为两个版本(19)b、(19)c,分别对应VP为一元动词和二元动词两种情况。比如⑦c就可以通过以下范畴计算,最后表达式的范畴为S\NP,即“把”的左侧还需要一个主语。

(20)⑦C的范畴生成过程

3.3 “得”的宾语抑制特点

观察⑨中“得”字所出现的句法环境。“得”右侧可以带一个一元谓词或者一个语句,左侧带一个二元谓词。“得”在这个环境中重要的一个性质,或者说特点,是它遏制了二元动词带宾语的能力,比如说,我因为孩子学习不好而愁得大病一场,那么只有⑨B和C两式可以在句首添加“孩子成绩不好”做主语,如(21)b和(21)c。而⑨A中已经带有一个论元的“愁”似乎就很难接受其前再有一个欲做其论元的成分,如(21)a,除非将“孩子成绩不好”用逗号与后面部分隔开,使它单独做一个小句,说明后面事件的原因。如果“愁”带宾语的能力没有被抑制,那么“孩子成绩不好”应该可以看作是被话题化提前了的成分,如“苹果我喜欢”。

(21)a.*孩子成绩不好我愁得大病一场

b.孩子成绩不好愁得我大病一场

c.孩子成绩不好把我愁得大病一场

在此基础上,我们给出本文所需的“得”的范畴赋值(22):(16)

注意,(22)中“得”的结果范畴是(S\NP),而不是S,这一点区别于3.2节对“把”的范畴赋值。“把”被看做是把字句的核心,而“得”只是它所在动词短语的核心。原因在于,V+得+补语往往可以嵌入到其他结构中,如(21)c作为把字句的一部分,又如重动结构“愁孩子成绩不好愁得大病一场”。设定(S\NP)作为“得”的结果范畴满足结构上的要求。

到现在为止,本节一开始提出的三个问题均已得到了回答。基于现有的词库和句法规则,以下我们将对⑦—(12)组语句做句法生成。

3.4 CCG运算

首先计算⑦和⑧两组语句。两组A式和C式都可以用它们在词库中的赋值使用向前的函项应用规则直接生成,如(24)分别给出了⑦A和⑧C的句法生成过程。

但B式的情况稍微不同,表面上看它们是从A式调换了NP和VP顺序得来的。我们在3.1节已经提到VP NP语序带来的问题,提出了两种解决办法:(1)VP范畴仍为S\NP,考验系统的生成能力;(2)VP范畴转化为(S\N)/NP。仔细考察两个B式的句法表现我们发现,它们恰好对应这两种情况。(24)展示了两式在句首添加不同种类名词后语句的可接受程度。(24)a在句首添加地点或者时间名词,语句都能接受,但是加上其他种类的名词,语句就不符合语感了。

⑦B跑了几个犯人

⑧B累病了好多人

(24)a.牢房/昨天/*恶劣环境 跑了几个犯人。

b.?公司/?昨天/连日加班 累病了好多人。

事实是,⑦B可以看作存现句去掉句首地点或时间成分的片段。虽然对于存现句的问题学术界一直有所争论,但是没有人认为一元动词进入存现句后变成了二元动词。这与⑧B恰好相反。(18)b中我们尝试给“累病了”前面加上不同的成分,只有可以做致使好多人累病了的原因的成分才显得合适。如果句首的“公司”是借代或拟人用法,代表公司的管理人员,语句的接受度就提高了。而如果单看“昨天累病了好多人”,似乎我们还会有一个心理预期,有什么没有言说的原因导致很多人累病了,即只有得到那个NP才能构成一个完整的语句。所以⑧B的生成仍只需要使用一步函项应用规则,如(25)a。⑦B对于传统范畴语法来说是不可能生成的语句,而MMCCG令人兴奋的一点,是它的类型提升规则是保序的,由于范畴X提升到要保证斜线算子的模态下标相同,那么如果“跑了”后面的NP范畴被提升为就能保证提升得到的范畴向左结合S\NP,最终计算得到合语法句子,如(25)b所示:

⑨中A、B、C三式都可以直接利用词库赋值和函项应用规则直接做CCG生成,限于篇幅在此不做细述。

⑩—(12)的A式不是实际语句,所以我们只看B式和C式。按照3.1节的假设,结合之后成为一个动词,的补充修饰成分,范畴由此变成(S\NP)\(S\NP)。(11)B和(11)C的范畴生成过程如(26)所示。其中,变为动词修饰语的“坏了”与“吃”利用规则毗连,得到的仍是一个二元动词。

但是,⑩B不能用(26)a的做法做出正确的范畴演算,因为所得的动补结构所带论元数与相同,⑩B中的是一元动词,因此变成了一个多余的论元。如(27)a,完整语句“保姆咳嗽醒了孩子”在这个操作中显然多了一个论元:

但是,系统自然不会失败一次便放弃。(27)a的生成失败后,系统会尝试其他生成方式。在这里便可以借助CCG系统中的一条处理并列现象的经验规则Conj(17)(Steedman,1996):

“保姆咳嗽”和“醒了孩子”可以看做是两个语义合取的语句,生成过程如(27)b。

对于⑩C,“咳嗽”和“醒了”则既可以用Conj规则求合取,也可以用(26)中的方法让“醒了”修饰“咳嗽”,得到句法结果一致,语义稍有不同((28)只给出二者的结合片段,其他部分生成与其他把字句同)。有趣的是,这两种方法恰好代表形式语义学处理修饰关系的两种典型方法,对于外延修饰关系,两种方法得到的结果相等。

由此,我们变为把字句构造了一个CCG的句法生成系统,并得到了满意的句法生成。值得一提的是,CCG的句法和语义系统之间存在一个透明的接口,所以凡是句法上可以运算的,都可以给出相应的语义衍生。因此,上面句法分析的成功也保证了语义计算的可能性。(Steedman,2000:37)

4 结语

21世纪是信息高速发展的世纪,在这一大背景下,自然语言语法研究的任务不单是描述自然语言的规律,解释为何如此,更有责任服务于自然语言信息处理的需求,帮助机器“掌握”和“理解”自然语言。出于这一目的,一套合适的、适于机器学习的语法系统,应该具有以下几个特点:(1)生成力上相当于适度的上下文敏感文法,能够应付自然语言时而存在的灵活语序、非成分并列等异常现象;(2)避免机器不可见的深层操作;(3)易于配备语义生成。本文通过对汉语六种把字句及其变式的CCG探讨和生成,说明CCG在这三方面表现十分出众。同时,为自然语言语词赋以CCG范畴的过程也反过来帮助我们更深刻地认识自然语言中的现象。在实际的信息处理中,CCG已经得到广泛的应用和检验。Steedman等人不但已经完成了宾州树库到CCG树库的转换,并不断做跨语言的尝试,如土耳其语、德语等组合范畴语法词库的生成(Cakici,2005; Hockenmaier,2006),也有很多计算语言学家不断尝试提高CCG词库提取的准确性和速度(Boxwell,2011; Tse,Daniel & Curran,James,2012; Ng,Dominick & Curran,James,2012)。相比之下,汉语CCG的研究和生成刚刚起步,还有很多问题有待解决,如语词之间的依存关系、语义角色、兼语句、连动句等谓词论元关系问题等,都需要语言学界的探索为其提供理论方案,从而达到更好的刻画效果。

[收稿日期]2013-06-20

注释:

①CP代表从句。

②这里将“了”看做句法透明的成分,所以所谓的“简单动词”是指动词本身不是由两个或多个动词复合的。但因为把字句的动词至少要带“了”、“着”表示时体信息,所以很多学者也认为,把字句中的动词均呈复杂形式。(杨小璐、肖丹,2008)

③为表区别,本文用斜体表示自然语言对应的范畴,正体表示某种短语。如NP代表名词短语,NP代表名词短语所对应的句法范畴。

④本文也将以{NP,S}为基本范畴集。

⑤自然语言是适度上下文敏感的,即介于上下文自由和上下文敏感之间,因为有很多语言现象敏感于所出现的上下文,如英语第三人称单数、荷兰语中的交叉依存(crossing dependency)(Shieber,1985)以及德语、土耳其语中的长距离混序(Long distance scrambling)(Rambow,1994; Hoffman,1995)等,但自然语言在大部分时候仍是保序和结合的。

⑥由于篇幅所限,在此只给出了简化的生成过程。TP为时态短语(tense phrase),DP为限定词短语(determiner phrase)。John为满足EPP规则(生成语法的一个假设,要求每个从句主语位置不能为空)而上移,在VP下的DP位置留了一个语迹t,walk与T所带的[+present]特征进行核查,得到了第三人称单数词缀-s。

⑦将MMCCG规则中斜线算子上的模态修饰成分去掉,就得到CCG的规则集。

⑧每种规则都分别包括结合方向向前和向后的两个版本,而且规则B和S因为都是直接对两个函项范畴进行运算,所以还区分两个函项在斜线方向上是否一致,不一致的在规则名称上加交叉符号×标记。

⑨Bar-Hiller et al.(1960)证明范畴语法弱等价于上下文自由文法。

⑩为讨论方便,我们在这一部分只在有必要进行区分的时候才为范畴斜线添加模态下标。

(11)S、V、O分别代表主、谓、宾三种成分。

(12)汉语任何位置的名词都可以省略。(Huang,1984)

(13)有时把字句内VP的动词的确具有致使或者处置意义,如可以还原为VP宾语的把字句,如“××把花姑娘急疯了”可以还原为“××急疯了花姑娘”。但这与我们下面(20)中对“把”的句法假设并不矛盾。

(14)这里使用的“语法意义”与上文使用的“句法意义”不同。后者指与其他成分在句法上纯粹的毗连关系,前者还包含对抽象语义、语用含义等方面的讨论。

(15)参见沈家煊(2002)。该文对把字句的语法关系作了很好的回顾和解释。

(16)关于“得”第二个论元带一元动词的情况参见孔繁清、满海霞(2011)。

(17)最早由Partee & Rooth(1983)提出,后为各种形式语义学理论所接受。

标签:;  ;  ;  ;  ;  

汉语手写句子的CCG格式计算及相关句型_自然语言处理论文
下载Doc文档

猜你喜欢