《自然语言理解.ppt》由会员分享,可在线阅读,更多相关《自然语言理解.ppt(33页珍藏版)》请在三一文库上搜索。
1、第 11 章 自然语言理解,11.1 简单句理解 11.2 复合句理解 11.3 转换文法和转换网络,11.1.1 理解的实现过程,10.1.1 理解的实现过程 要理解一个语句,需建立起一个和该简单句相对应的机内表达。而要建立机内表达,需要做以下两方面的工作: (1)理解语句中的每一个词。 (2)以这些词为基础组成一个可以表达整个语句意义的结构。,第一项工作看起来很容易, 似乎只是查一下字典就可以解决。 而实际上由于许多单词有不止一种含义, 因而只由单词本身不能确定其在句中的确切含义, 需要通过语法分析, 并根据上下文关系才能最终确定, 例如, 单词diamond有“菱形”、“棒球场”和“钻石
2、”三种意思, 在语句 John saw Susans diamond shimmering from across the room. 中, 由于“shimmering”的出现, 则显然“diamond”是“钻石”的含义, 因为“菱形”和“棒球场”都不会闪光。 再如在语句 Ill meet you at the diamond.,中, 由于“at”后面需要一个时间或地点名词作为它的宾语, 显然这里的“ diamond”是“棒球场”的含义, 而不能是其他含义。 第二项也是一个比较困难的工作。因为要以这些单词为基础来构成表示一个句子意义的结构, 需要依赖各种信息源, 其中包括所用语言的知识、 语句
3、所涉及领域的知识以及有关该语言使用者应共同遵守的习惯用法的知识。由于这个解释过程涉及到许多事情, 因而常常将这项工作分成以下三个部分来进行:,(1) 语法分析。 将单词之间的线性次序变换成一个显示单词如何与其他单词相关联的结构。语法分析确定语句是否合乎语法, 因为一个不合语法的语句就更难理解。 (2) 语义分析。各种意义被赋予由语法分析程序所建立的结构, 即在语法结构和任务领域内对象之间进行映射变换。 (3) 语用分析。 为确定真正含义, 对表达的结构重新加以解释。,11.1.2 语法分析 要进行语法分析, 必须首先给出该语言的文法规则, 以便为语法分析提供一个准则和依据。 对于自然语言人们已
4、提出了许多种文法, 例如, 乔姆斯基(Chomsky)提出的上下文无关文法就是一种常用的文法。 一个语言的文法一般用一组文法规则(称为产生式或重写规则)以及非终结符与终结符来定义和描述。例如, 下面就是一个英语子集的上下文无关文法:,11.1.2 语法分析 要进行语法分析, 必须首先给出该语言的文法规则, 以便为语法分析提供一个准则和依据。对于自然语言人们已提出了许多种文法, 例如, 乔姆斯基(Chomsky)提出的上下文无关文法就是一种常用的文法。 一个语言的文法一般用一组文法规则(称为产生式或重写规则)以及非终结符与终结符来定义和描述。 例如, 下面就是一个英语子集的上下文无关文法:,se
5、ntence=nounphraseverbphrase nounphrase=determinernoun verbphrase=verbnounphrase|verb determiner=the|a|an noun=man|student|apple|computer verb=eats|operats,这个文法有6条文法规则, 它们是用BNF范式表示的。其中带尖括号的项为非终结符,第一个非终结符称为起始符, 不带尖括号的项为终结符, 符号“= ”的意思是“定义为”, 符号“|”是“或者”的意思, 而不带“|”的项之间是“与”关系。 符号“=”也可以用箭头“”表示。,有了文法规则, 对于一
6、个给定的句子, 就可以进行语法分析, 即根据文法规则来判断其是否合乎语法。可以看出, 上面的文法规则实际是非终结符的分解、变换规则。分解、变换从起始符开始, 到终结符结束。所以,全体文法规则就构成一棵如图 111所示的与或树, 我们称其为文法树。所以, 对一个语句进行语法分析的过程也就是在这个与或树上搜索解树的过程。 可以看出, 搜索解树可以自顶向下进行, 也可以自底向上进行。自顶向下搜索就是从起始符sentence出发, 推导所给的句子; 自底向上搜索就是从所给的句子出发, 推导起始符sentence。,图 11-1 文法树,例11.1 下面是一个基于上述文法的语法分析程序。 它采用自顶向下
7、搜索。,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):verb(X). determiner(the). noun(H|_): member(H, man, student, apple, banana, computer). verb(H|_):member(H,
8、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).,这个程序是先把所给的句子以符号表的形式约束给谓词sentence的变量X,然后对其进行分解和变换。如果最终分解、 变换的结果与语言的文法树相符, 则证明所给的句子语法正确; 否则语法错误。 例如, 对于句子 the student operats the computer 要用该程序进行语法分析, 则应给出询问: ?-se
9、ntence(the, student, operats, the, computer). 这时, 系统则回答: yes 分析这个句子所产生的解树如图 11-2所示。 这个解树称为该句子的语法分析树。,图 11-2 语法分析树,需指出的是, 这个程序虽然易于理解, 但运行效率较低。 因为在用append谓词对句子进行分解时一般要进行多次回溯。 为此, 我们把这个程序修改为如下形式:,sentence(X, Y): noun_phrase(X, Z), verb_phrase(Z, Y). noun_phrase(X, Y): determiner(X, Z), noun(Z, Y). verb
10、_phrase(X, Y): verb(X, Z), noun_phrase(Z, Y). verb_phrase(X, Y): verb(X, Y). determiner(the|T, T). noun(H|T, T): member(H, man, student, apple, computer). verb(H|T, T): member(H, eats, operats).,这个程序的每个谓词有两个参量, 它们都是符号表。对于一个给定的句子, 后一个表是前一个表的余表。语法分析时, 把所给的句子以符号表的形式约束给sentence 的第一个变量X, 第二个变量约束为空表。如 ?-s
11、entence(the,student,operats,the,computer, ). 则系统仍然回答: yes 这个程序虽然难读, 但它的运行效率较高。 语法分析可判断一个句子的语法结构是否正确, 但不能判断一个句子是否有意义。例如把上面询问中的例句改为 ?-sentence(the,computer,operats,the,student,). 系统则仍然回答:yes。对于诸如此类的问题, 语义分析则可解决。,11.1.3 语义分析 语义分析就是要识别一个语句所表达的意思。语义分析的方法很多, 如运用格文法、语义文法等。 语义文法是进行语义分析的一种简单方法。所谓语义文法, 就是在传统的
12、短语结构文法的基础上, 将名词短语、动词短语等不含语义信息的纯语法类别,用所讨论领域的专门类别来代替。 例如, 下面就是一个语义文法的例子:,SPRESENT the ATTRIBUTE of SHIP PRESENTwhat is|can you tell me ATTRIBUTElength|class SHIPthe SHIPNAME|CLASSNAME class ship SHIPNAMEHuanghe|Changjiang CLASSNAMEcarrier|submarine,这是一个舰船管理数据库系统自然语言接口的语义文法片段。,可以看出, 语义文法的重写规则与上下文无关文法的形
13、式是类似的。但这里没有出现像名词短语和动词短语等语法类别,而是用了PRESENT、ATTRIBUTE、SHIP等专门领域中的类别。 对于语义文法的分析方法,可以使用与上下文无关文法相类似的方法。利用上面给出的语义文法, 可以从语义上识别如下的语句: What is the class of the Changjiang? Can you tell me the length of the Huanghe? 语义文法可以排除无意义的句子。 当然, 它只能适应于严格限制的应用领域。,11.2 复 合 句 理 解,简单句的理解不涉及句与句之间的关系,它的理解过程首先是赋单词以意义, 然后再给整个语句
14、赋予一种结构。而一组语句的理解,无论它是一个文章选段, 还是对话节录,句子之间都有相互关系。所以,复合句的理解,就不仅要分析各个简单句,而且要找出句子之间的关系。这些关系的发现,对于理解起着十分重要的作用。 句子之间的关系包括以下几种: (1) 相同的事物, 例如: “小华有个计算器, 小刘想用它。”单词“它”和“计算器”指的是同一物体。,(2) 事物的一部分, 例如: “小林穿上她刚买的大衣, 发现掉了一个扣子。 ” “扣子”指的是“刚买的大衣”的一部分。 (3) 行动的一部分, 例如: “王宏去北京出差, 他乘早班飞机动身。” 乘飞机应看成是出差的一部分。 (4) 与行动有关的事物, 例如
15、: “李明准备骑车去上学, 但他骑上车子时, 发现车胎没气了。 ” 李明的自行车应理解为是与他骑车去上学这一行动有关的事物。,(5) 因果关系, 例如: “今天下雨, 所以不能上早操。” 下雨应理解为是不能上操的原因。 (6) 计划次序, 例如: “小张准备结婚, 他决定再找一份工作干。” 小张对工作感兴趣, 应理解为是由于他要结婚, 而结婚需要钱而引起的。 ,要能做到理解这些复杂的关系, 必须具有相当广泛领域的知识才行, 也就是要依赖于大型的知识库, 而且知识库的组织形式对能否正确理解这些关系, 起着很重要的作用。特别对于较大的知识库, 应考虑如何将问题的“焦点”集中在知识库的相关部分。 例
16、如,对于下面的一段话: “接着, 把虎钳固定到工作台上。螺栓就放在小塑料袋中。 ” 显然, 第二句中的螺栓就是第一句中用来固定虎钳的螺栓。 所以, 如果在理解第一句时, 就把需用的螺栓置于“焦点”之中, 则全句的理解就容易了。因此, 需要表示出与“固定”有关的知识, 以便当见到“固定”时, 能方便地提取出来。,对于描述与行为有关的复合语句, 也可采用目标结构的方法帮助理解。 即对于常见的一些行为目标, 事先制定出其行动规划, 这样, 当语句所描述的情节中的某些信息省略时, 可以调用这些规划, 通过推导找到问题的答案。 例如对于下面的文章片段: “小王有点饿。 他便向行人打听餐馆在哪里。 ” 如
17、果有这样的行动规划: 打听地址去餐馆吃饭不饿 则就不难理解第二个句子了。,11.3 转换文法和转换网络,11.3.1 转换文法 人们对自然语言句子的结构进行研究, 发现同一个意思往往有许多不同的表示形式 (说法)。 例如语句: Mary read me a story. 和 Mary read a story to me.,说法虽然不同, 但意思实际是完全一样的。再如主动句和被动句也是常用的两种不同的表示形式。于是,人们就提出了语句的深层结构和表层结构的概念。认为一个句子可以有多个不同的表层结构, 但其深层结构都是相同的。鉴于这样的认识,转换文法(transformational gramma
18、r)便应运而生。,转换文法就是可把句子的一种结构转换为另一种结构的文法。转换文法是由基础和转换两部分组成。基础部分是一个上下文无关文法,它产生句子的深层结构表示;转换部分是一个转换规则(重写规则)集, 它负责句子结构的转换。 转换文法的工作过程是: 先用上下文无关文法建立相应句子的深层结构,然后再应用转换规则将深层结构转换为符合人们习惯的表层结构。图 11-3给出了一条把主动句转换为被动句的转换规则。,图 11-3 转换规则,转换又可分为被动转换、分割转换、疑问转换等等, 运用这些转换, 转换文法可以将一个句子转换为多种不同的表达形式。例如, 对于下面这个简单的主动句: John ate th
19、e banana. 运用被动转换, 得到: The banana was eaten by John. 运用分割转换, 得到: It was John who ate the banana. 先进行被动转换, 再进行分割转换, 得到: It was the banana that was eaten by John.,运用疑问转换, 得到: Did John eat the banana? 转换也可以将语句的表层结构逆转换为其深层结构。这样, 我们可以将一组不同形式的相关语句, 通过一个转换序列而映射为一个单一的句子。例如把上述各种其他形式的语句转换为一个主动句。这显然对于自然语言理解和机器翻
20、译有重要作用。,11.3.2 转换网络 转换网络(Transition Network)全称为状态转换网络。 它是一种由节点和有向边(弧)组成的有向图。其中节点代表状态, 有向弧代表从一个状态到另一个状态的转换。一个转换网络中一般有一个起始节点(代表起始状态),有一个或多个终止节点(代表终止状态)。一般节点用单线圆圈表示, 终止节点用双线圆圈表示。 转换网络也是一种自然语言文法的表示形式, 用它也可对所给句子进行语法分析。例如, 11.1节给出的上下文无关文法用状态转换网络表示就是图 11-4。图中S0节点为起始节点, S5为终止节点。,图 11-4 状态转换网络,让我们举例说明怎样用该网络进
21、行语法分析。 设有英语句子: Mary wants a computer. 首先,将句子从起始节点处输入, 起始状态S0考察输入句子的左边第一个单词Mary, 因为它是名词, 故用名词转换, 结果把剩下的单词序列推向S2;S2考察wants,由于它是动词, 所以用动词转换,但从S2出发有两个动词转换,即有两条路可走,这时发现动词后面还有单词, 所以, 只能走上面的一条路, 于是就把剩下的单词序列推向S3;接着S3考察的应是冠词a, 所以立即作冠词转换, 又把剩下的单词推向S4;这时S4发现它所考察的单词是个名词,于是就作名词转换, 结果, 单词考察完毕, 也刚好到达终止状态S5。从而说明输入的句子是合乎语法的。,习 题十 一,1. 研究自然语言理解有什么意义? 它的难点何在? 2. 实现机器的自然语言理解都涉及哪些工作? 3. 扩充11.2节中所给的文法及程序, 进行语法分析练习。 4. 对11.3节中的语义文法编写程序, 进行语义分析练习。,
链接地址:https://www.31doc.com/p-2763909.html