逻辑语法的句法特征_自然语言处理论文

类型—逻辑语法的句法特色,本文主要内容关键词为:句法论文,语法论文,逻辑论文,特色论文,类型论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

中图分类号:B813文献标识码:A文章编号:1672-7835(2006)03-0035-05

一 爱裘凯维茨和巴—希勒尔的经典范畴语法

19世纪末的德国哲学家、逻辑学家弗雷格首次把数学中的函项概念扩展到逻辑领域,进而延伸到自然语言的研究之中。他把语句分析成函项和主目,而不像以往的语言学家那样把语句分析成主语和谓语。弗雷格认为:只有“完全的表达式”才具有基本涵义,而“不完全表达式”在某种意义上可被看作是从部分表达式到完全表达式的函项[1]。20世纪初德国哲学家胡塞尔在他的代表作《逻辑研究》(1910)第4卷“独立意义和非独立意义的区分及纯语法的思想”中,阐述了他所提出的概念——“意义范畴”——的各个不同方面。他认为,在讨论“意义”时,必须要明确区分“简单表达式”和“复杂表达式”、“独立表达式”和“非独立表达式”。“纯语法”的主要任务是:(1)给语言表达式指派意义范畴;(2)找出意义范畴的可能组合方式;(3)阐明决定意义范畴组合方式的规律。应该指出的是,胡塞尔的意义范畴组合规律和弗雷格的函项概念的相似之处在于:非独立表达式和适合于填充它们的独立表达式之间的关系类似于函项与其主目之间的关系。正是由于受到弗雷格和胡塞尔语言哲学思想的影响,才使得波兰的逻辑学家们在20世纪三四十年代创立了范畴语法。范畴语法的最早表述是由波兰学者列斯尼夫斯基(S·Le niewski)在其“语义范畴的语法”中提出来的,后来爱裘凯维茨 (Ajduciewicz)进一步发展了列氏的范畴语法系统。范畴语法是一种用数理逻辑方法处理、分析语言表达式的结构关系的语法理论。它根据表达式的形式结构关系来进行分类,确立基本的语法范畴,按照一定规则递归地导出其余的语法范畴。列斯尼夫斯基和爱裘凯维茨采用的基本语法范畴是名称 (name,简称为n)和语句(sentence,简称为s)。名称和语句是自然语言中两个最基本的方面,其中名称是指称的载体,人们使用名称识别出(或指称)世界中的某个特定对象;而语句则是真值的载体,人们使用语句来述说世界中的特定对象(用名称表示),其结果具有真、假两种基本情况,这就是语句的真值。名称和语句作为最简单和最直接的范畴,它不用任何其它东西为中介,不以其它范畴为前提,范畴语法正是从这里开始来建立自己的范畴体系的。通过名称和语句这两个基本范畴分别作为一个函项的主目和值,我们可以创造一个新的范畴,它既是一个函项的范畴,也是一个派生的语法范畴。派生语法范畴的形成规则可以表示为:如果C[,1]…… C[,n]是范畴,那么C[,1]/C[,2]……C[,n]是一个范畴,这是一个递归的过程。只要C[,1],C[,2],……C[,n](n>1)是范畴,不论它们是基本的还是派生的,都可以派生出新的范畴。从理论上讲,我们可以生成无限多的派生范畴。但是,实际用得着的只是有限多的范畴。爱裘凯维茨(1935)使用分数的表达法来表示派生或函项型语法范畴,A为函项的值,B是函项的主目[2]。这种表达法的好处是便于把范畴语法的基本组合模式和分数的约分运算相类比:

×B=A,即每一个派生范畴(或函项)和一个合适的范畴(或主目,可以是基本范畴,也可以是派生范畴)结合,其结果则产生另外一个新的范畴 (即函项的值)。

但是,这种表达法也有明显的缺点:一是这种用以表示派生范畴的分数记法,如果派生范畴的构成比较复杂,将会占据过多的书写空间[3]95-99,例如自然语言中修饰动词词组的副词的范畴可以表示为:

(其中为动词词组的范畴,读做从名称到句子的函项,因此,这种副词的范畴可以读做从一个动词词组到另外一个动词词组的函项。)

另一个缺点是,这种表达方式不利于描述自然语言中句子的生成过程。爱裘凯维茨规定,在表示句子的生成时,函项范畴居左,主目范畴居右,因此,整个句子的生成过程是一个利用组合规则或从左到右依次递进的过程。应该说,这对于人工语言是可以的,因为人工语言允许人们自由创造语言符号的组合方式;但是对于自然语言往往不适用,因为自然语言是约定俗成的,句子的语序很灵活,词项之间的排列并不严格遵循函项范畴在左,主目范畴在右的规定,甚至有很大的出入,我们不可能随意改动它。因此,把自然语言句子的生成过程描述为一个从左到右的过程并不符合自然语言的实际情况,也很不直观。

美国语言学家巴—希勒尔(Bar-Hillel,1964)对此做出了改进。他把爱裘凯维茨的分数记法一分为二:B\A和A/B。

这样做的目的是区分两种不同的函项范畴:其中具有B\A范畴的表达式在其左边寻找一个范畴为B的表达式,具有A/B范畴的表达式在其右边寻找一个范畴为B的表达式,运算的结果同样得到一个范畴为A的表达式。这就是巴—希勒尔的双向(bidirectional)范畴语法。双向的函项范畴还可以结合使用,例如及物动词的范畴可定为n\s/ n,其向左和向右可以分别和一个范畴为n的表达式相结合,运算的结果得到一个合乎语法的句子 (范畴为s)[4]。由此可见,巴—希勒尔的双向范畴语法更加符合自然语言的特色,更适宜用来描述自然语言的句法,简洁、灵活、便于操作。另外,函项范畴的双斜线表示法比爱裘凯维茨的分数记法大大节省了书写空间。然而不幸的是,在处理自然语言中的“非连续性”现象时,这种范畴语法却遇到了很大的麻烦。例如,在英语句“John looked the word up in the dictionary”中,“look”和“up”在语义上组成一个整体,表达一个完整意义“查找”,这个意义并不能从“look”(看)和“up”(向上)各自的意义或者它们各自意义的组合中得出。然而在该句中,我们可以看到“look”和“up”在句法上并不相毗连,而是被“the word”隔开,二者之中的任何一个都无法单独和“the word”相结合。自然语言中存在的这种语义上为一整体、但在句法上却被其它语言表达式分割的结构就叫做“非连续结构”。“look”和“up”的组合“look up”的句法功能虽然相当于一个及物动词,但是在巴—希勒尔的双向范畴语法中,我们却不能给“look up”指派及物动词的句法范畴n\s/n,因为这种句法范畴意味着与其相应的语言表达式(这里为“looked up”)必须与一个位于其右边的句法范畴为 n的表达式(这里为the word)相结合,从而得到一个句法范畴为n\s的表达式(即只能得到“looked up the word”,而无法得到该句中的looked the word up)。因此,巴—希勒尔的双向范畴语法无法处理自然语言中广泛存在的类似于“look up”的“非连续结构”。应该说明的是,短语“look up”并非只有上述例句中的一种用法,下面的句子也是合语法句:“John looked up the word in the dictionary.”“look up”的这种用法在巴一希勒尔范畴语法中完全能够得到处理,巴—希勒尔范畴语法所不能处理的是“look up”作为“非连续结构”的用法。

巴—希勒尔范畴语法所面临的另一个重大难题是它难以解释同一词汇在不同情况下所被赋予的不同句法范畴之间的内在联系。给某一自然语言中的词汇指派合适的句法范畴对于是否接受一个词汇序列为合语法句是至关重要的。一方面,为每一个词汇元素指派唯一一个句法范畴肯定是不充分的。例如,我们都知道副词既可以修饰动词,又可以修饰整个句子,因此英语句“Someone sings frequently.”中的副词frequently可以有两种句法范畴,即(n\s)\(n\s)和s\s。相应的,上句就会有两种不同的生成方式;另一方面,毫无限制地给词汇元素指派句法范畴也是明显不可取的。因为这样做剥夺了这样一种可能性:即同一个词汇所具有的不同句法范畴之间可能存在某种联系。例如,我们可以问这样的问题:副词frequently的两种句法范畴(n\s)\(n\s)和s\s之间是完全无关,还是有着内在联系?这在巴—希勒尔的范畴语法中无法得到回答。我们需要这样一种机制:它能够规律地从词汇的有限、一般的句法范畴中生成符合需要的新的句法范畴。这种机制又叫做句法范畴转换模式。很明显,要找到这种转换模式并解决自然语言中的其它难点问题,必须对范畴语法做进一步的改进和扩展。以此为动因,从20世纪六七十年代以来至今范畴语法又继续蓬勃发展。在这些发展中,最具有代表性的是兰贝克演算的提出和改进。

二 兰贝克演算

现在我们讨论兰贝克演算。兰贝克演算(又称“兰贝克句法范畴演算”)是美国数学家兰贝克在 1958年发表的“句子结构的数学”一文中提出来的,它把自然语言的句法系统视为一种代数结构,运用一种能行的算法来区分合语法句和不合语法句。

1.普通兰贝克演算 范畴语法,在兰贝克看来,是由一套有限的基本范畴经过三种二位运算而得出的句法算子[5]。这三种运算是:A·B(积运算),A/B(向右的除法运算),B\A(向左的除法运算),其中A/B和B\A与巴—希勒尔的双向范畴语法并无区别,A·B为新引进的类似于逻辑合取的运算。这样形成的句法算子是一个逻辑演绎系统。其公理为:

(1)A→A(同一公理)

(2)(A·B)·C←→A·(B·C)(结合公理)

推理规则为:

(1)如果A·B→C则A→C/B

(2)如果A·B→C则B→A\C

(3)如果A→C/B则A·B→C

(4)如果B→A\C则A·B→C

(5)如果A→B并且B→C则A→C

根据以上公理和推理规则就可以推导出一系列定理,兰贝克在文章中提到的有:

(1)(A/B)·B→A

(2)A·(A\B)→B

(3)(A\B)/C←→A\(B/C)

(4)A→B/(A\B)

(5)B→(A/B)\A

(6)A/B→(A/C)/(B/C)

(7)A\B→(C\A)\(C\B)

(8)(A/B)·(B/C)→A/C

(9)(C\B)·(B\A)→C\A

其中定理(1)、(2)为斜线消除规则,也就是巴—希勒尔双向范畴语法中的组合规则;(3)为括号消除规则;(4)、(5)、(6)、(7)为范畴升级规则,其用途是把简单范畴转化为复杂范畴,以增加组合的可能性,(4)、(5)又叫做蒙塔古(Montague)规则,(6)、 (7)又叫做吉奇(Geaeh)规则;(8)和(9)为函项组合规则,用来组合相毗连的函项范畴。这里的定理 (3)-(9)即为上述句法范畴转换模式[6]24-46。

作为示例,这里只给出定理(5)、(6)的证明,其余留给读者:

定理(5)证明:

1.├A/B→A/B(同一公理)

2.├(A/B)·B→A(1,推理规则(3))

3.├B→(A/B)\A(2,推理规则(2))

(其中├为形式可断定符号,它表示置于其右方的合式公式为形式可证定理。)

定理(6)证明:

1.├(A/B)·B→A(推理规则(3))

2.├B→(A/B)\A(1,推理规则(2))

3.├(B/C)·C→B(推理规则(3))

4.├(B/C)·C→(A/B)\A(3,2推理规则(5))

5.├(A/B)·(B/C)·C→A(4,推理规则(4))

6.├(A/B)·(B/C)→(A/C)(5,推理规则(1))

7.├(A/B)→(A/C)/(B/C)(6,推理规则(1))

根据定理(7)(证明与定理(6)类似),显然有s \N.s→(n\s)\(n\s),意思是:如果一个词(句子副词,范畴为s\s)可修饰整个句子,那么它就可以修饰动词词组,其作用相当于修饰动词词组的副词 (范畴为(n\s)\(n\s))。这就很好地解释了上例中的Frequently。

上述兰贝克演算具有巴—希勒尔范畴语法所无法比拟的优越性。首先,兰贝克演算增加了一条公理,即结合公理(A·B)·C←→A·(B·C);其次,兰贝克演算的推理规则比巴—希勒尔范畴语法多了三条,其中的两条(推理规则(1)和(2))为巴—希勒尔范畴语法的两条组合原则(也就是兰贝克句法算子推理规则中的(3)和(4))的反向运用,另外一条为传递规则。上述所谓句法范畴转换模式(3)- (9)之所以不能够从巴—希勒尔的范畴语法中得出,而只能从兰贝克句法算子中生成,就是因为后者比前者多了结合公理和三条推理规则。其中更为重要的是推理规则(1)和(2),句法范畴转换模式 (3)-(9)的生成无一例外都必须用到它们。它们的作用是产生新的函项型句法范畴,即如果一个句法范畴为A(B)的语言表达式后边(前边)跟着另外一个句法范畴为B(A)的表达式从而得到一个句法范畴为C的表达式,那么句法范畴为A(B)的语言表达式的句法范畴也可以表示为C/B(A\C),而巴—希勒尔范畴语法的两条组合原则只涉及到函项型句法范畴的应用。下面举例加以说明:假设有一个范畴为n\s/n的及物动词saw和一个范畴为n的名称John。我们知道,如果John saw后面跟一个范畴为n的名称Mary从而得到一个范畴为s的合语法句“John saw Mary.”,那么根据兰贝克句法算子的推理规则(1)可以得到John saw的句法范畴s/n,而这在巴—希勒尔的范畴语法中是无法得到的。

兰贝克演算功能强大,并且十分灵活,非常适合对自然语言语句的分析和描写。下举一例说明(其中n(名称),s(语句)为基本范畴):

John works here.

附图

从上例可以很清晰地看出兰贝克演算处理自然语言语句的基本思路:先给语句的每个词项配上句法范畴,然后利用兰贝克演算的公理、推理规则和导出定理证明从各个句法范畴的合取能否推导出语句范畴s;换句话说,就是证明从各个词项的句法范畴到语句范畴s的序列是否是兰贝克演算的内定理。如果是,该语句为合语法句;如果不是,则为不合语法句。因此,兰贝克演算实际上是一个逻辑演绎系统,判断一个自然语言语句是否合乎语法是借助于从前提(即各个词项句法范畴的合取)到结论(语句范畴s)的推导来完成的[7]207-253。

2.根岑风格的兰贝克演算 兰贝克进一步借助根岑的直觉主义命题逻辑的表达方式来展现其演算[8]65-97,先介绍后承语法(Sequent Grammar)的概念。在逻辑系统中,逻辑后承可以表达为“Γ├φ”的形式,意思是φ从Γ那里可证。在范畴语法中,逻辑后承的概念表现为某种重写关系:

C[,1],…,C[,n]C

其中C[,i](1≤i≤n)是句法范畴符号,具有后承重写关系的语法就叫做后承语法。因此,范畴语法也是一种后承语法[7]240-241。

在逻辑系统中,从前提到结论的推导可以通过演绎模式(deduction scheme)表现出来。例如:

(前件交换律)

兰贝克演算借鉴以上逻辑演绎模式来表述其公理、推理规则和定理[9]22-70。举例来说,定理(1) (A/B)·B→A可表述为:

附图

这里横线之上是前提,横线之下是结论。大写希腊字母△,Γ[,1],Γ[,2]分别表示有限的句法范畴序列 C[,1],…,C[,n](n>0);当n=0时,则为空序列,可以略去不写。逗号表示各个句法范畴序列的毗连运算 (concatenation),而并非表示集合的相交运算。这里要格外注意顺序问题。横线之上诸前提的顺序是自由的,即可以随意移动,如上例中横线上的两个前提△→B和Γ[,1],A,Γ[,2]→C的顺序完全可以颠倒过来变成Γ[,1],A,Γ[,2]→C△→B;但是横线上每一个前提和横线之下结论中箭头左边的各个句法范畴序列的顺序却不可以随意变动,如横线之下的结论Γ[,1],A/B,△,Γ[,2]→C不可以变为Γ[,1],△,A/B,Γ[,2]→C。上例就是根岑风格的表达方式,如此表达的兰贝克句法算子的公理和推理规则模式为:

定义1 (根岑风格的兰贝克演算)

附图

其中(1)的I模式是唯一的公理,即改写前的兰贝克演算中的同一公理,I是英文“identit”(同一)的缩写;(2)、(3)为合取引进规则,L是英文“left”(左边)的缩写,R是英文“right”(右边)的缩写,“·L”表示“·”在结论的箭头左边,“·R”表示“·”在结论的箭头右边;(4)的C模式为传递规则,也就是改写前的兰贝克演算中的推理规则(5),C是英文“cut”(原意为切割,这里可理解为传递)的缩写; (5)为右斜线消去规则,(6)为右斜线引进规则,儿表示斜线在结论的箭头左边,/R表示斜线在结论的箭头右边。其中的(5)也就是改写前的兰贝克演算中的推理规则(3),(6)为推理规则(1);(7)为左斜线消去规则,(8)为左斜线引进规则,\L表示斜线在结论的箭头左边,\R表示斜线在结论的箭头右边。其中的(7)也就是改写前的兰贝克演算中的推理规则(4),(8)为推理规则(2)。请注意这里的推理规则模式(5)和(7)虽然依据的是改写前的兰贝克演算中的定理(1)和(2),但因为定理(1)和(2)是改写前的兰贝克演算中的推理规则(3)和(4)的简单变形,所以这里的推理规则模式(5)和(7)也可以看作是对改写前的兰贝克演算中的推理规则(3)和(4)的改写。这里的公理模式(1)和推理规则模式(4)因为不涉及到句法范畴算子(如/、\、·等),所以又被叫做结构规则(structural rules)。另外,这里我们去掉了改写前的兰贝克演算中的公理 (2)——结合公理,因为这个公理已经蕴涵在“定义 1(根岑风格的兰贝克演算)”的诸规则模式中了,下面给出根岑风格的兰贝克演算对结合公理的证明,我们先来证明(A·B)·C→A·(B·C):

附图

接下来我们证明A·(B·C)→(A·B)·C:

附图

从以上的讨论中我们可以明显地看出兰贝克演算的强烈的逻辑化倾向。下面举一例说明上述根岑风格的兰贝克演算的应用,请看它对英语句“John works”的描写:

附图

以上描写是通过树形图来表现的,每一条横线代表一个子树,横线之上的部分叫做树叶,横线之下的部分叫做树根。np为John的句法范畴,np\s为works的句法范畴,s为句子的句法范畴。将上述描写与前面根岑风格的兰贝克演算中的\L模式相比较,可知△为np,B为np,A为s,C为s,Γ[,1]与Γ[,2]均为空序列。

逻辑系统中有关于逻辑后承、逻辑证明的严格定义,根岑风格的兰贝克演算作为逻辑化的范畴语法,也有关于后承证明的严格定义。

定义2 (后承证明)后承证明由有穷树∮构成,该树的每一个子树相应于定义1中的演绎模式之一。一个后承C[,1],…,C[,n]C是可推演的,如果存在一个树根为C[,1],…C[,n]C的无假设后承证明。

就上例而言,其三个子树分别相应于三个演绎模式,前两个为I模式,最后一个为\L模式。因为两个I公理模式的运用不依赖任何假设,所以I公理模式的运用的横线上无任何句法范畴序列,也即前两个子树的树叶为空。由此可知第三个子树的树根“np,np\ss”也是不依赖于任何假设的,因此它是一个无假设后承证明,从而后承np,np\ ss就是可推演的。

标签:;  ;  ;  ;  ;  

逻辑语法的句法特征_自然语言处理论文
下载Doc文档

猜你喜欢