1、 自然语言理解自然语言理解 自然语言理解自然语言理解 10.1 简单句理解简单句理解 10.2 复合句理解复合句理解10.3 转换文法和转换网络转换文法和转换网络 自然语言理解自然语言理解 10.1 简单句理解简单句理解 10.1.1 理解的实现过程 要理解一个语句,需建立起一个和该简单句相对应的机内表达。而要建立机内表达,需要做以下两方面的工作:(1)理解语句中的每一个词。(2)以这些词为基础组成一个可以表达整个语句意义的结构。自然语言理解自然语言理解 由于这个解释过程涉及到许多事情,因而常常将这项工作分成以下三个部分来进行:(1)语法分析。将单词之间的线性次序变换成一个显示单词如何与其他单
2、词相关联的结构。语法分析确定语句是否合乎语法,因为一个不合语法的语句就更难理解。(2)语义分析。各种意义被赋予由语法分析程序所建立的结构,即在语法结构和任务领域内对象之间进行映射变换。(3)语用分析。为确定真正含义,对表达的结构重新加以解释。自然语言理解自然语言理解 10.1.2 语法分析 要进行语法分析,必须首先给出该语言的文法规则,以便为语法分析提供一个准则和依据。对于自然语言人们已提出了许多种文法,例如,乔姆斯基(Chomsky)提出的上下文无关文法就是一种常用的文法。一个语言的文法一般用一组文法规则(称为产生式或重写规则)以及非终结符与终结符来定义和描述。例如,下面就是一个英语子集的上
3、下文无关文法:自然语言理解自然语言理解 =|=the|a|an =man|student|apple|computer =eats|operats 自然语言理解自然语言理解 这个文法有6条文法规则,它们是用BNF范式表示的。其中带尖括号的项为非终结符,第一个非终结符称为起始符,不带尖括号的项为终结符,符号“=”的意思是“定义为”,符号“|”是“或者”的意思,而不带“|”的项之间是“与”关系。符号“=”也可以用箭头“”表示。自然语言理解自然语言理解 有了文法规则,对于一个给定的句子,就可以进行语法分析,即根据文法规则来判断其是否合乎语法。可以看出,上面的文法规则实际是非终结符的分解、变换规则。分
4、解、变换从起始符开始,到终结符结束。所以,全体文法规则就构成一棵如图10-1所示的与或树,我们称其为文法树。自然语言理解自然语言理解 图101 文法树 自然语言理解自然语言理解 例10.1 下面是一个基于上述文法的语法分析程序。它采用自顶向下搜索。sentence(X):append(Y,Z,X),noun-phrase(Y),verb-phrase(Z).noun-phrase(X):append(Y,Z,X),determiner(Y),noun(Z).verb-phrase(X):append(Y,Z,X),verb(Y),noun-phrase(Z).verb-phrase(X):ve
5、rb(X).determiner(the).自然语言理解自然语言理解 noun(H|-):member(H,man,student,apple,banana,computer).verb(H|-):member(H,eats,study,programming,operats).append(,L,L).append(H|T,L,H|L2):append(T,L,L2).member(X,X|-).member(X,-|T):member(X,T).自然语言理解自然语言理解 图102 语法分析树 自然语言理解自然语言理解 10.1.3 语义分析 语义分析就是要识别一个语句所表达的意思。语义分析
6、的方法很多,如运用格文法、语义文法等。这里仅介绍其中的语义文法方法。语义文法是进行语义分析的一种简单方法。所谓语义文法,就是在传统的短语结构文法的基础上,将名词短语、动词短语等不含语义信息的纯语法类别,用所讨论领域的专门类别来代替。例如,下面就是一个语义文法的例子:自然语言理解自然语言理解 SPRESENT the ATTRIBUTE of SHIP PRESENTwhat is|can you tell me ATTRIBUTElength|class SHIPthe SHIPNAME|CLASSNAME class ship SHIPNAMEHuanghe|Changjiang CLASS
7、NAMEcarrier|submarine 自然语言理解自然语言理解 这是一个舰船管理数据库系统自然语言接口的语义文法片段。可以看出,语义文法的重写规则与上下文无关文法的形式是类似的。但这里没有出现像名词短语和动词短语等语法类别,而是用了PRESENT、ATTRIBUTE、SHIP等专门领域中的类别。自然语言理解自然语言理解 10.2 复合句理解复合句理解 简单句的理解不涉及句与句之间的关系,它的理解过程首先是赋单词以意义,然后再给整个语句赋予一种结构。而一组语句的理解,无论它是一个文章选段,还是对话节录,句子之间都有相互关系。所以,复合句的理解,就不仅要分析各个简单句,而且要找出句子之间的关
8、系。这些关系的发现,对于理解起着十分重要的作用。自然语言理解自然语言理解 句子之间关系包括以下几种:(1)相同的事物,例如:“小华有个计算器,小刘想用它。”单词“它”和“计算器”指的是同一物体。(2)事物的一部分,例如:“小林穿上她刚买的大衣,发现掉了一个扣子。”“扣子”指的是“刚买的大衣”的一部分。(3)行动的一部分,例如:“王宏去北京出差,他乘早班飞机动身。”自然语言理解自然语言理解 乘飞机应看成是出差的一部分。(4)与行动有关的事物,例如:“李明准备骑车去上学,但他骑上车子时,发现车胎没气了。”李明的自行车应理解为是与他骑车去上学这一行动有关的事物。(5)因果关系,例如:“今天下雨,所以
9、不能上早操。”下雨应理解为是不能上操的原因。(6)计划次序,例如:“小张准备结婚,他决定再找一份工作干。”自然语言理解自然语言理解 10.3 转换文法和转换网络转换文法和转换网络 10.3.1 转换文法 人们对自然语言句子的结构进行研究,发现同一个意思往往有许多不同的表示形式(说法)。自然语言理解自然语言理解 转换文法就是可把句子的一种结构转换为另一种结构的文法。转换文法是由基础和转换两部分组成。基础部分是一个上下文无关文法,它产生句子的深层结构表示;转换部分是一个转换规则(重写规则)集,它负责句子结构的转换。转换文法的工作过程是:先用上下文无关文法建立相应句子的深层结构,然后再应用转换规则将
10、深层结构转换为符合人们习惯的表层结构。图103给出了一条把主动句转换为被动句的转换规则。自然语言理解自然语言理解 图103 转换规则 自然语言理解自然语言理解 10.3.2 转换网络 转换网络(TransitionNetwork)全称为状态转换网络。它是一种由节点和有向边(弧)组成的有向图。其中节点代表状态,有向弧代表从一个状态到另一个状态的转换。一个转换网络中一般有一个起始节点(代表起始状态),有一个或多个终止节点(代表终止状态)。一般节点用单线圆圈表示,终止节点用双线圆圈表示。自然语言理解自然语言理解 转换网络也是一种自然语言文法的表示形式,用它也可对所给句子进行语法分析。例如,10.1节给出的上下文无关文法用状态转换网络表示就是图104。图中S0节点为起始节点,S5为终止节点。自然语言理解自然语言理解 图104 状态转换网络 自然语言理解自然语言理解 需指出的是,上述的状态转换网络是最基本、最简单的状态网络。所以它的功能有限,也存在不少问题。于是,人们就对它不断进行改进,又提出了递归转换网络RTN(RecursiveTransition Network)和扩充转换网络ATN(Augmented Transition Network)等。特别是扩充转换网络已经成为书写自然语言文法的重要方法之一但由于篇幅所限,这里不再介绍。