《自然语言处理-第13章-自然语言理解ppt课件.ppt》由会员分享,可在线阅读,更多相关《自然语言处理-第13章-自然语言理解ppt课件.ppt(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、自然语言理解自然语言理解第十三章第十三章 知识表示和推理知识表示和推理关于上下文知识的两个重要方面是:关于上下文知识的两个重要方面是:关于世界的普遍知识及语言交流时的专业知识。关于世界的普遍知识及语言交流时的专业知识。知识表示知识表示为为了了对对上上下下文文进进行行分分析析,你你需需要要有有表表示示知知识识和和进进行行推推理理的的一一种种形形式式。对于这个领域的研究就是知识表示(对于这个领域的研究就是知识表示(knowledgerepresentation)。)。对于不同的研究者知识表示意味着不同的事情:对于不同的研究者知识表示意味着不同的事情:对对一一些些人人来来说说,知知识识表表示示关关心
2、心的的是是用用来来表表示示知知识识的的语语言言的的结结构构或或者者是是逻逻辑辑形形式式、语语意意网网络络、框框架架,或或者者是是其其他他特特殊殊设设计计的的表表示示形形式式。而而对对另另一一些些人人来来说说,知知识识表表示示关关心心的的是是句句子子的的内内容容需需要要什什么样的前提及句子是如何组织的。么样的前提及句子是如何组织的。这这两两个个问问题题都都是是很很重重要要的的。有有时时,看看起起来来是是一一场场关关于于知知识识表表示示的的激激烈烈争争论论事事实实上上是是争争论论的的双双方方都都只只注注意意到到了了知知识识表表示示的的其其中中一一方方面面而而忽略了另一方面。忽略了另一方面。这一章没
3、有对知识表示的形式进行更广泛的讨论。相这一章没有对知识表示的形式进行更广泛的讨论。相反地,主要讨论的是知识表示和推理是如何被用来方便语言反地,主要讨论的是知识表示和推理是如何被用来方便语言理解的。因此,将采用的是一种基于理解的。因此,将采用的是一种基于谓词演算谓词演算的抽象表示。的抽象表示。以便使有关知识表示的问题的讨论以最少量的新资料和符号以便使有关知识表示的问题的讨论以最少量的新资料和符号来介绍。这并不意味着用在一个系统中的基本的知识表示必来介绍。这并不意味着用在一个系统中的基本的知识表示必须采用逻辑公式或定理证明的方法做为推理的模型。须采用逻辑公式或定理证明的方法做为推理的模型。基本的知
4、识表示系统可以是语意网络、逻辑描述、基于基本的知识表示系统可以是语意网络、逻辑描述、基于框架的系统、相互连接的模型或是其他形式,只要系统有起框架的系统、相互连接的模型或是其他形式,只要系统有起码的表示能力进行描述。码的表示能力进行描述。知识表示和推理知识表示和推理13.1知知识表示识表示13.2一种基于谓词演算的知识表示一种基于谓词演算的知识表示13.3框架:描述事物各个方面的信息框架:描述事物各个方面的信息13.4自然语言中的量化的表示自然语言中的量化的表示13.5动词的时态和语态动词的时态和语态13.6基于知识表示的自动推理基于知识表示的自动推理13.7过程语意学和问题的求解过程语意学和问
5、题的求解13.8混合知识表示混合知识表示13.1知识表示知识表示在任何知识表示系统中有两种知识十分关键:对于世界的普遍在任何知识表示系统中有两种知识十分关键:对于世界的普遍知识和当前情况下的特定知识。对于世界的普遍知识的许多方面知识和当前情况下的特定知识。对于世界的普遍知识的许多方面已经被认识了,已经被认识了,如:典型的统治阶级、部分和全体的联系等等。如:典型的统治阶级、部分和全体的联系等等。这些组成了对于世界中的普遍限制的信息和语言中某些术语的这些组成了对于世界中的普遍限制的信息和语言中某些术语的语意定义。对于绝大多数来说,大部分知识是根据世界中各种各语意定义。对于绝大多数来说,大部分知识是
6、根据世界中各种各样的目标指定的,并不关心特定个体的信息。样的目标指定的,并不关心特定个体的信息。例如,例如,OWN1可以译成人和物之间的一种关系,而不是一个特可以译成人和物之间的一种关系,而不是一个特定的人(如:定的人(如:John,ownsaparticularcar.)。)。关于个体的信息在语言理解中同样是很重要的,它是我们称之关于个体的信息在语言理解中同样是很重要的,它是我们称之为特定的被理解的句子系列的一个大的组成部分。事实上所有的为特定的被理解的句子系列的一个大的组成部分。事实上所有的知识表示系统支持这两者任何一个方面的推导。知识表示系统支持这两者任何一个方面的推导。一般的世界知识对
7、于解决许多语言解释问题是必不可少的,最一般的世界知识对于解决许多语言解释问题是必不可少的,最重要的一个重要的一个是非歧义是非歧义。例如:例如:Ireadastoryaboutevolutionintenminutes.Ireadastoryaboutevolutioninthelastmillionyears.特定情况下的特定知识对于许多问题来说是很重要的,包括确定特定情况下的特定知识对于许多问题来说是很重要的,包括确定被引用的名词短语和非歧义词在当前情况下的意义。被引用的名词短语和非歧义词在当前情况下的意义。我们往往不是很正规地把知识表示看作是用来翻译知识和理解我们往往不是很正规地把知识表示
8、看作是用来翻译知识和理解系统的。但只要引入越来越多的术语知识和规则,那越来越多的专系统的。但只要引入越来越多的术语知识和规则,那越来越多的专门用语将被更精确地科学定义。门用语将被更精确地科学定义。一个知识表示系统包括一个称为知识库(一个知识表示系统包括一个称为知识库(KB:knowledgebase)的句子数据库和一序列可以根据当前知识库组成新句子的推理规则的句子数据库和一序列可以根据当前知识库组成新句子的推理规则集(集(inferencetechniques)。)。当规则集中的原始句子都是正确的时当规则集中的原始句子都是正确的时候它仅能生成正确的新的句子时,我们说这个规则集是好候它仅能生成正
9、确的新的句子时,我们说这个规则集是好(sound)的。然而并不是要求所有的推理规则都必须是好的,就的。然而并不是要求所有的推理规则都必须是好的,就象我们后面将会看到的一样。象我们后面将会看到的一样。知识表示语言知识表示语言由知识库中的句子定义的语言称为知识表示语言(由知识库中的句子定义的语言称为知识表示语言(KRL)。)。它很象逻辑形式语言,但有许多实际原因使他们经常不同。这两它很象逻辑形式语言,但有许多实际原因使他们经常不同。这两种语言是根据不同的需要被使用的。逻辑形式语言是为了简化语种语言是根据不同的需要被使用的。逻辑形式语言是为了简化语意解释过程和有效地解决歧义意解释过程和有效地解决歧义
10、,所以要有很好的表达能力。而知所以要有很好的表达能力。而知识表示语言在一个特定的领域内必须支持高效的预测推理。换句识表示语言在一个特定的领域内必须支持高效的预测推理。换句话说,它必须是相对简单以至可以定义从特定知识库中推导出的话说,它必须是相对简单以至可以定义从特定知识库中推导出的句子集,并建立在合理的时间内执行这些推理的计算模型。句子集,并建立在合理的时间内执行这些推理的计算模型。例如:对处理数量词而言。例如:对处理数量词而言。在逻辑形式语言中引入了大范围在逻辑形式语言中引入了大范围的数量词,与英语数量词的不同词义严密相对称。这使得非歧义的数量词,与英语数量词的不同词义严密相对称。这使得非歧
11、义技术(例如当要确定数量词范围的时候)就可以应用实际数量词技术(例如当要确定数量词范围的时候)就可以应用实际数量词之间的微妙的区别(如在之间的微妙的区别(如在each和和every之间)。然而,在许多知识之间)。然而,在许多知识表示语言中,往往是一个结构只允许一些数量词或经常只是一个表示语言中,往往是一个结构只允许一些数量词或经常只是一个而已。这样推理过程可以被很简单地定义。通过保持语言的分离而已。这样推理过程可以被很简单地定义。通过保持语言的分离性及在他们之间定义一个映射函数,你可以同时拥有这两个优点。性及在他们之间定义一个映射函数,你可以同时拥有这两个优点。当然,这个方法的成功依赖于这个映
12、射函数是否被高效地定义。当然,这个方法的成功依赖于这个映射函数是否被高效地定义。在确定一个满足有含义的逻辑形式和高效的知识表示的最佳在确定一个满足有含义的逻辑形式和高效的知识表示的最佳方法时,需要实际的研究工作。根据现有知识,保持逻辑形式和方法时,需要实际的研究工作。根据现有知识,保持逻辑形式和知识表示的分离看起来好象是最好的妥协办法。知识表示的分离看起来好象是最好的妥协办法。当根据知识库中的公式知道一个公式当根据知识库中的公式知道一个公式P是真的时,或根据公式是真的时,或根据公式表示一个句子的意义时,我们说这个知识库(或句子)继承给了表示一个句子的意义时,我们说这个知识库(或句子)继承给了P
13、。然而,通过理解语言而得出的许多结论却不是继承的产物,然而,通过理解语言而得出的许多结论却不是继承的产物,而是句子的隐含的东西。隐含的东西是指可以从句子中典型地推而是句子的隐含的东西。隐含的东西是指可以从句子中典型地推出,但在其他特定的情况下却被明确地被否定的那些结论。出,但在其他特定的情况下却被明确地被否定的那些结论。例如,例如,Jackownstwocars.Infact,heownsthreecars.推理的形式推理的形式为了理解自然语言需要许多不同的推理形式。推理方法可以被为了理解自然语言需要许多不同的推理形式。推理方法可以被分成演绎和非演绎形式。由逻辑概念的继承性证明了演绎推理形分成
14、演绎和非演绎形式。由逻辑概念的继承性证明了演绎推理形式的正当。由事实的集合,演绎推理过程可以逻辑地从这些事实式的正当。由事实的集合,演绎推理过程可以逻辑地从这些事实得出结论。得出结论。非演绎推理分成几类。例如包括从例子中学习一般性的推理规则非演绎推理分成几类。例如包括从例子中学习一般性的推理规则(归纳推理(归纳推理inductiveinference)和从结论中推出原因的推理规则和从结论中推出原因的推理规则(展开推理的一种形式(展开推理的一种形式abductiveinference)。)。展开推理与演绎推理是相反的,可以通过考虑公理展开推理与演绎推理是相反的,可以通过考虑公理AB。演绎推理当给
15、定演绎推理当给定A利用公式可以推出利用公式可以推出B,展开推理则由展开推理则由B推出推出A,因为因为A是是B正确的原因。正确的原因。许多系统允许缺省信息的使用。许多系统允许缺省信息的使用。缺省规则是一条可能有例外的推理规则,因而它是可废除的。如缺省规则是一条可能有例外的推理规则,因而它是可废除的。如果你使用表示法果你使用表示法AB写缺省信息时,那么被缺省的推理规则如写缺省信息时,那么被缺省的推理规则如下:下:IFAB,andAistrue,andBisnotprovable,thenconcludeB.缺省规则被认为可以对一般的句子提供好的说明。缺省规则被认为可以对一般的句子提供好的说明。例如
16、,句子例如,句子Birdsfly可以用可以用FOPC公式描述:公式描述:xBIRDS(x)FLIES(x)可废除的规则引入了表示法中的新的复杂性。没有这些规则,大多可废除的规则引入了表示法中的新的复杂性。没有这些规则,大多数表示是单调的数表示是单调的,因为增加新的断言只是增加必需的公式的数目。因为增加新的断言只是增加必需的公式的数目。特别是,在特别是,在单调的表示法单调的表示法中,如果知识库中,如果知识库KB1推出结论推出结论C,并且如并且如果你加入另一个公式到果你加入另一个公式到KB1以至形成一个新的一致的知识库以至形成一个新的一致的知识库KB2时,时,那么那么KB2也推出也推出C。然而这对
17、于使用缺省规则的表示法并不适用,然而这对于使用缺省规则的表示法并不适用,因而他们称为因而他们称为非单调的表示法非单调的表示法。例如,考虑一个包含以下公式集的知识库例如,考虑一个包含以下公式集的知识库K:Cat(Sampson)Sampsonisacat.TabbyCat(Sampson)Sampsonisatabbycat.c.Cat(c)Purrs(c)Catspurr.由这个知识库,你使用缺省规则可以断定由这个知识库,你使用缺省规则可以断定Purrs(Sampson),因为没,因为没有信息和有信息和Purrs(s)相矛盾。另一方面,如果你添加一个新的事实:相矛盾。另一方面,如果你添加一个新
18、的事实:notabbycatspurr.,那么扩展后的知识库就不能再推出那么扩展后的知识库就不能再推出Sampsonpurrs。除了缺省规则外,有其他有用的方法可以得到非单调的结论。除了缺省规则外,有其他有用的方法可以得到非单调的结论。例如,例如,封闭的世界假设封闭的世界假设(CWA:closedworldassumption)声明了知声明了知识库识库KB包含了关于某些谓词的完整信息。例如,对包含了关于某些谓词的完整信息。例如,对CWA的一个谓的一个谓词词P,如果一个包含如果一个包含P的命题不能从知识库的命题不能从知识库KB中推出,那么它的否中推出,那么它的否定就被认为是真的。对于航空时间表的
19、数据查询应用中,知识库定就被认为是真的。对于航空时间表的数据查询应用中,知识库KB存储了关于存在的航班信息存储了关于存在的航班信息如从如从Rochester到到Boston的的FDG100航班航班但它并没有明确包含否定信息但它并没有明确包含否定信息即航班即航班FDG100不飞到不飞到Chicago或没有航班或没有航班FDG455。只有推理过程建立在关于航班只有推理过程建立在关于航班的封闭世界假定中这样的信息才能被得出。的封闭世界假定中这样的信息才能被得出。推理规则推理规则在知识表示系统中有两类主要的推理方法:在知识表示系统中有两类主要的推理方法:过程式和陈述式过程式和陈述式。大多大多数系统在某
20、种程度上混用这两种方法,形成一个从纯粹的陈述式表数系统在某种程度上混用这两种方法,形成一个从纯粹的陈述式表示法到纯粹的过程式表示法的联合体。联合体的陈述式结果可能是示法到纯粹的过程式表示法的联合体。联合体的陈述式结果可能是一个基于逻辑的定理证明器。知识库被表示成公式集合,推理则按一个基于逻辑的定理证明器。知识库被表示成公式集合,推理则按照演绎推理的定理证明算法执行。照演绎推理的定理证明算法执行。在一个强大的陈述式系统中,强在一个强大的陈述式系统中,强调的是把形式语义赋值给独立于推理的表示法中的表达式。调的是把形式语义赋值给独立于推理的表示法中的表达式。而过程推理系统强调的是表示法中的推论性的方
21、面。而过程推理系统强调的是表示法中的推论性的方面。特别是特别是它不关心知识库中的表达式在程序中如何处理。关于过程表示法它不关心知识库中的表达式在程序中如何处理。关于过程表示法的一个实例是一个使用计算机自己内置的算术过程来计算算术表的一个实例是一个使用计算机自己内置的算术过程来计算算术表达式的系统,它没有任何关于数学的明确的知识表示。实际上,达式的系统,它没有任何关于数学的明确的知识表示。实际上,过程系统用在那些经过很好的定义过的领域中的特定的推理任务过程系统用在那些经过很好的定义过的领域中的特定的推理任务时具有很高的问题求解效率,但常常因为不够形式化而很难进行时具有很高的问题求解效率,但常常因
22、为不够形式化而很难进行分析。分析。举个例子。继承技术在第十章就被用于语义网络中了。这种举个例子。继承技术在第十章就被用于语义网络中了。这种推理过程可以用过程化或陈述化的表达方法来实现。纯粹的陈述推理过程可以用过程化或陈述化的表达方法来实现。纯粹的陈述化表达方法将把关于每一个事实的子类和作用建模为一个公式,化表达方法将把关于每一个事实的子类和作用建模为一个公式,并且从标准的演绎推导中获得继承属性。并且从标准的演绎推导中获得继承属性。如图:如图:ACTIONANIMATEAGENTOBJ/ACTIONTHEMEPHYSOBJ上图的信息可以用以下的谓词公式来表示:上图的信息可以用以下的谓词公式来表示
23、:1、x.ACTION(x)a.AGENT(x,a)&ANIMATE(a)2、ax.ACTION(x)&AGENT(x,a)ANIMATE(a)3、x.OBJ/ACTION(x)ACTION(x)4、x.OBJ/ACTION(x)o.THEME(x,o)&PHYSOBJ(o)5、ox.OBJ/ACTION(x)&THEME(x,o)PHYSOBJ(o)用这些公理,你可以证明类用这些公理,你可以证明类OBJ/ACTION继承了继承了AGENT的角色的角色。换句话说,对任一个对象换句话说,对任一个对象A,如果如果OBJ/ACTION(A)是真的,就可以是真的,就可以证明证明A也起了也起了AGENT
24、的作用。即:的作用。即:a.AGENT(A,a)&ANIMATE(a)用公理用公理3和和1。而过程式的表达方法是一个程序:它开始于某个特定的结点而过程式的表达方法是一个程序:它开始于某个特定的结点OBJ/ACTION,然后寻找和这个结点相连的所有的作用边。再由弧然后寻找和这个结点相连的所有的作用边。再由弧S向上到子类向上到子类ACTION,在那得到与之相连的所有作用边。因而任在那得到与之相连的所有作用边。因而任何何OBJ/ACTION都有一个从类都有一个从类ACTION继承来的的继承来的的AGENT作用边。作用边。这两种方法得到的是相同的结果,但陈述式的表达是通过在逻这两种方法得到的是相同的结
25、果,但陈述式的表达是通过在逻辑公式上应用演绎推导,而过程式的表达则是使用一个执行转换辑公式上应用演绎推导,而过程式的表达则是使用一个执行转换图的程序。第一种方法看起来更加严格定义,但第二种可能更加图的程序。第一种方法看起来更加严格定义,但第二种可能更加有效。在这种情况下,你可以证明两种方法获得相同的结果,从有效。在这种情况下,你可以证明两种方法获得相同的结果,从而充分利用两种方法的优点,即:一个严格定义的语义和执行推而充分利用两种方法的优点,即:一个严格定义的语义和执行推理形式的高效程序。理形式的高效程序。返返回回13.2基于基于FOPC的表示的表示这本书使用的知识表示语言(这本书使用的知识表
26、示语言(KRL)将是一阶的谓词演算的将是一阶的谓词演算的一个扩大的版本。注意通过选择语言,你不必一定要用推理的某一个扩大的版本。注意通过选择语言,你不必一定要用推理的某一种特别的形式。例如一种特别的形式。例如,后面的章节将显示出后面的章节将显示出KRL是怎么与演是怎么与演绎推理和过程推理两种技术一起使用的。绎推理和过程推理两种技术一起使用的。谓词演算谓词演算的语法已被介绍,这里不再描述。我们将集中于对的语法已被介绍,这里不再描述。我们将集中于对描述自然语言句子意思时需要的标准的的谓词演算进行扩展,并描述自然语言句子意思时需要的标准的的谓词演算进行扩展,并介绍这种语言和逻辑形式语言之间的差别。语
27、言的术语由介绍这种语言和逻辑形式语言之间的差别。语言的术语由常量常量(例如(例如:John1),),函数函数(例如:父亲(例如:父亲(John1)),),及及变量变量(例(例如:如:x和和y)组成。而逻辑形式语言没有使用常量,相反,它是组成。而逻辑形式语言没有使用常量,相反,它是以一对不同的变量来使得描述的上下文互相独立地来表达每件事以一对不同的变量来使得描述的上下文互相独立地来表达每件事情。在知识库中,常量被用来代表特定的个体。例如,情。在知识库中,常量被用来代表特定的个体。例如,逻辑形逻辑形式项(式项(NAMEj1“John”)是一个短语的意思,它代表其被谈到是一个短语的意思,它代表其被谈
28、到的人物名为的人物名为“John”。在给定的上下文中被谈到的真正的人可能。在给定的上下文中被谈到的真正的人可能被表示成知识库中的常量被表示成知识库中的常量John1。在在KRL中使用中使用受限量化受限量化是很方便的,它与逻辑形式语言中一是很方便的,它与逻辑形式语言中一般量词表示法是很相似的。限制条件由一个冒号隔开接在量词变量般量词表示法是很相似的。限制条件由一个冒号隔开接在量词变量后面。正如第八章所提及的,对于存在和全称量词,这种表示法可后面。正如第八章所提及的,对于存在和全称量词,这种表示法可以进行缩写,但并不扩大语言的表达能力。以进行缩写,但并不扩大语言的表达能力。因而:因而:x:Man(
29、x)Happy(x)isequivalenttox:Man(x)Happy(x)x:Man(x)Happy(x)isequivalenttox:Man(x)Happy(x)我们也需要我们也需要等价谓词等价谓词(a=b),),它说明了它说明了a和和b有同样的指示。有同样的指示。给定一个包含常量给定一个包含常量a的简单命题的简单命题Pa,如果如果Pa是真的并且是真的并且a=b,那那么么Pb一定也是真的,且一定也是真的,且Pb和和Pa一样,只不过一样,只不过a被被b替换掉了。替换掉了。许多知识表示系统没有明确使用量词。就象有广阔辖域的全程量许多知识表示系统没有明确使用量词。就象有广阔辖域的全程量词变
30、量一样,量词中也包括变量。词变量一样,量词中也包括变量。例如,知识库中的一个公式如(例如,知识库中的一个公式如(P?xA)在意义上与谓词演算公在意义上与谓词演算公式式x.P(x,A)是一致的。是一致的。skolem化化存在量词变量用存在量词变量用skolem标准化的的方法来处理,就是用一个标准化的的方法来处理,就是用一个以前从未用过的以前从未用过的新的常量新的常量来替换变量。来替换变量。例如:公式例如:公式yx.P(x,y)在知识库中可能被解释成象在知识库中可能被解释成象(P?xSk1)这样的公式,其中这样的公式,其中Sk1是一个没用过的新的常量,它表示一个是一个没用过的新的常量,它表示一个已
31、知存在的对象。已知存在的对象。量词限定域用量词限定域用Skolem函数函数来指示。来指示。例如:公式例如:公式yx.P(x,y)在知识库中将被解释成象(在知识库中将被解释成象(P(Sk2?y)?y)这样的公式,其中这样的公式,其中Sk2是一个新的函数,对于每一个是一个新的函数,对于每一个?y的值的值都会相应产生一个不同的对象。都会相应产生一个不同的对象。公式常常以两种方法的结合的形式来描写,即全称量词仍然存公式常常以两种方法的结合的形式来描写,即全称量词仍然存在的,而存在量词已被在的,而存在量词已被Skolem化了。化了。例如:公式例如:公式yx.P(x,y)可能被写成可能被写成yP(Sk1(
32、y),y)。可以证明所有这些不同形式的表示法是等价的。可以证明所有这些不同形式的表示法是等价的。对于基本的知识表示语言来说谓词演算在表示的形式上没有过对于基本的知识表示语言来说谓词演算在表示的形式上没有过多的限制。特别地,对于谓词代表的意思也没有过多的解释,因而多的限制。特别地,对于谓词代表的意思也没有过多的解释,因而在选择谓词上有很宽的可能性。一方面对于每一个词的意义你可以在选择谓词上有很宽的可能性。一方面对于每一个词的意义你可以有一个不同的谓词,必须使用形式逻辑语言中的策略。另一方面你有一个不同的谓词,必须使用形式逻辑语言中的策略。另一方面你可以预制一谓词的集合,称为可以预制一谓词的集合,
33、称为原始集原始集,每一个词意都根据原始集来,每一个词意都根据原始集来定义。考虑每一种方法的优点,通过一个词义使用一个谓词,就可定义。考虑每一种方法的优点,通过一个词义使用一个谓词,就可以抓住语义与词条之间的微妙的区别。以抓住语义与词条之间的微妙的区别。例如:你可能有这样的信息,在知识库中定义的动作例如:你可能有这样的信息,在知识库中定义的动作SAUNTERS1,包含慢慢地走,作为一个人的一种无忧无虑的状态。因而句子包含慢慢地走,作为一个人的一种无忧无虑的状态。因而句子Jack sauntered down the street.可能与可能与Jack walked down the street
34、.有有不同的含义。当然,要拥有大范围的谓词,且绝大多数有相似的公不同的含义。当然,要拥有大范围的谓词,且绝大多数有相似的公式定义它们,那你必须付出一定代价。尤其是对于式定义它们,那你必须付出一定代价。尤其是对于SAUNTERS1和和WALKS1有一定的重叠。有一定的重叠。使用原始集的方法时,两种意义都会产生获得基本动作的谓词或使用原始集的方法时,两种意义都会产生获得基本动作的谓词或谓词集合,如谓词集合,如MOVEBYFOOT。然后推理规则就在原始谓词集然后推理规则就在原始谓词集上定义。这种方法允许获得非常简洁的词之间的一般性。然而,如上定义。这种方法允许获得非常简洁的词之间的一般性。然而,如果
35、没有词义上的推理规则,就很难获得词义之间微妙的区别。果没有词义上的推理规则,就很难获得词义之间微妙的区别。可以定义一个可以定义一个新的原始词新的原始词以区别以区别sauntering和和walking,我们认我们认为新的原始词与思想状态有关。为新的原始词与思想状态有关。Sauntering可能被定义成可能被定义成MOVEBYFOOT和和CAREFREESTATE。而词义组合越复杂,原始集而词义组合越复杂,原始集的表示法就显得越不利,因为原始词的数目会随着例子的增加而绝的表示法就显得越不利,因为原始词的数目会随着例子的增加而绝对增加。更可怕的是,推理规则也不得不建立在复杂的原始集上而对增加。更可
36、怕的是,推理规则也不得不建立在复杂的原始集上而不是简单的谓词上了,所以推理过程也不再是简单的定义。不是简单的谓词上了,所以推理过程也不再是简单的定义。随着许多问题的出现,找到了一个折中的办法。特别是,基于原随着许多问题的出现,找到了一个折中的办法。特别是,基于原始集的表示法的许多优点可以通过类型继承而获得。如果你断定始集的表示法的许多优点可以通过类型继承而获得。如果你断定SAUNTERS1和和WALKS1是更抽象动作是更抽象动作MOVEBYFOOT的两个的两个子类,那么他们可以从子类,那么他们可以从MOVEBYFOOT继承他们的最一般的属继承他们的最一般的属性,而无需额外的公式。因而当你要添加
37、其他的公式以附上特殊的性,而无需额外的公式。因而当你要添加其他的公式以附上特殊的属性给属性给SAUNTERS1时,就变的很方便了。时,就变的很方便了。这种方法允许你对不完全的知识进行处理。如系统只知道这种方法允许你对不完全的知识进行处理。如系统只知道SAUNTERS1是是WALKING的一种类型,它不知道任何关于这个词的一种类型,它不知道任何关于这个词的附加信息,但仍然可以用从的附加信息,但仍然可以用从MOVEBYFOOT继承的信息产生继承的信息产生所需的许多推理规则。另外,我们知道两个词多少有些不同,但是所需的许多推理规则。另外,我们知道两个词多少有些不同,但是当系统需要关于当系统需要关于s
38、auntering的额外的知识时,这可被增加进来。的额外的知识时,这可被增加进来。除了继承关系,知识表示也可以利用定义词义的其他方法。如已除了继承关系,知识表示也可以利用定义词义的其他方法。如已知一个词的完整定义。你就可以定义谓词知一个词的完整定义。你就可以定义谓词father是是maleparent,即即x.FATHER(x)yPARENT(x,y)&MALE(x)但大多数词没有精确定义。比如说没有一个属性集精确定义大多但大多数词没有精确定义。比如说没有一个属性集精确定义大多数自然种类,如数自然种类,如dogs,cats,chairs等等。这些可以被归类成类型继承,等等。这些可以被归类成类型
39、继承,而描述必要条件的公式可以被说明,但没有绝对的定义是可能的。而描述必要条件的公式可以被说明,但没有绝对的定义是可能的。作为谓词演算公式来说,这意味着这种定义只包含了一个方面的含作为谓词演算公式来说,这意味着这种定义只包含了一个方面的含义。例如:关于义。例如:关于DOG1的公式可能是的公式可能是x.DOG1(x)CANINE(x)&DOMESTIC-PET(x)其中其中CANINE本身被定义成本身被定义成MAMMAL的子类。这样的公理获得了的子类。这样的公理获得了作为一只狗的许多重要的属性,但没有完整的定义概念。例如:某作为一只狗的许多重要的属性,但没有完整的定义概念。例如:某人可能有一只宠
40、物狼满足作为一只狗的所有属性,但它仍然不是一人可能有一只宠物狼满足作为一只狗的所有属性,但它仍然不是一只狗。只狗。从产生句子的观点来看,在知识表示语言中从语言的词中抽象出从产生句子的观点来看,在知识表示语言中从语言的词中抽象出来的谓词越多,越难产生基于意思的句子。来的谓词越多,越难产生基于意思的句子。如以下的公式:如以下的公式:p:(MaleHumanp)&c.Parent(p,c).MoveByCar(p,L1)&Buildding(L1)&Used-for-teaching(L1)它很自然的能实现句子它很自然的能实现句子All father drove to the school。为产生这
41、样为产生这样一个句子,系统不得不识别公式一个句子,系统不得不识别公式(Malep)&c.Parent(p,c),它可能逐字被识别成它可能逐字被识别成male humans who have a child 作为词作为词father的的意思,而命题意思,而命题MoveByCar(p,L1)&Building(L1)&Used-for-teaching(L1),它将逐字被识别成它将逐字被识别成moved by car to a building used for teaching,作为短语作为短语drovetoschool的解释。的解释。很清楚地,这需要关于特定词很清楚地,这需要关于特定词fath
42、er和和drive的意义的实质性知识的意义的实质性知识和一个将和一个将KRL中的公式与谓词相匹配的复杂的过程。如果没有谓词中的公式与谓词相匹配的复杂的过程。如果没有谓词和和KRL中的这些词义相匹配,那么这个过程将特别复杂。如果这些中的这些词义相匹配,那么这个过程将特别复杂。如果这些谓词被包括了,继承组织将建议使用可以识别一个公式如何实现的谓词被包括了,继承组织将建议使用可以识别一个公式如何实现的方法。特别是,若给定一抽象谓词方法。特别是,若给定一抽象谓词MaleHuman,你可以考虑抽象继你可以考虑抽象继承里在其之下的所有谓词中,是否有更精确的表达这个意思的谓词。承里在其之下的所有谓词中,是否
43、有更精确的表达这个意思的谓词。在这样的情况下在这样的情况下Father是一个好的选择,它不仅包含了是一个好的选择,它不仅包含了MaleHuman而且还有意思的另一部分,即:而且还有意思的另一部分,即:c.Parent(p,c)总之,设计高效的知识表示的一个技巧是总之,设计高效的知识表示的一个技巧是选择一个可以使继承关选择一个可以使继承关系更加高效的谓词集合系更加高效的谓词集合。通常,最好的表示法可以和语言学的综合。通常,最好的表示法可以和语言学的综合形成一一映射关系。这不仅帮助我们解释句子,也帮助我们从知识形成一一映射关系。这不仅帮助我们解释句子,也帮助我们从知识库的表达式中产生句子。库的表达
44、式中产生句子。返返回回13.3框架:描述固定格式的信息框架:描述固定格式的信息框架的构成:框架的构成:自然语言理解的许多推理涉及到假定所讨论的对象或事件在一般自然语言理解的许多推理涉及到假定所讨论的对象或事件在一般情况下都是真的。这种信息经常用称为框架的结构来解释。以最明情况下都是真的。这种信息经常用称为框架的结构来解释。以最明确的表达方式,确的表达方式,框架仅仅是一个集合,其中包含了框架仅仅是一个集合,其中包含了描述某些典型的描述某些典型的事物或事件的事实和对象及关于这些事件的推理的特定推导策略事物或事件的事实和对象及关于这些事件的推理的特定推导策略。被描述的事件可以包括从可视的情景到复杂的
45、物质对象的结构,到被描述的事件可以包括从可视的情景到复杂的物质对象的结构,到一些动作被执行的典型方法。基于框架等的系统可以提供如缺省推一些动作被执行的典型方法。基于框架等的系统可以提供如缺省推理、由上下层关系自动继承属性和附加过程等方便。在某些实现策理、由上下层关系自动继承属性和附加过程等方便。在某些实现策略中,所有推理都是由附加在框架上的特定推理过程来完成,而另略中,所有推理都是由附加在框架上的特定推理过程来完成,而另一些中,框架对于知识大多是描述性的,并且用较为统一的推理过一些中,框架对于知识大多是描述性的,并且用较为统一的推理过程来解释。不管哪种方法,主要思想就是收集信息去描述通常发生程
46、来解释。不管哪种方法,主要思想就是收集信息去描述通常发生在对象和事件上的情况。在对象和事件上的情况。框架中的主要对象用槽(框架中的主要对象用槽(slots)或角色(或角色(roles)来表示(和逻来表示(和逻辑形式中的主题角色相似)。例如:一座房子的框架可能由各个方辑形式中的主题角色相似)。例如:一座房子的框架可能由各个方面的槽组成,如:厨房、卧室、门厅、前门等等。面的槽组成,如:厨房、卧室、门厅、前门等等。框架也强调了位置和框架所表示的对象之间的关系。框架也强调了位置和框架所表示的对象之间的关系。如:房子框架的厨房成分,按规律必须位于房子内部,且它包含各如:房子框架的厨房成分,按规律必须位于
47、房子内部,且它包含各种各样的做饭的器皿。你可以把每一个槽当作一个函数,这个函数种各样的做饭的器皿。你可以把每一个槽当作一个函数,这个函数含有参数:由框架所描述的对象(即框架的一个实例),并且提供含有参数:由框架所描述的对象(即框架的一个实例),并且提供适当的槽值。因而房子框架的一个典型实例适当的槽值。因而房子框架的一个典型实例如如H1包含了厨包含了厨房的一个典型实例,它可以被表示成房的一个典型实例,它可以被表示成“thekitchen_slotofH1”或或kitchen(H1),加到其它成分的典型实例同样适用。加到其它成分的典型实例同样适用。举个例子:个人计算机的框架定义可能如下所示:举个例
48、子:个人计算机的框架定义可能如下所示:DefineObjectclassPC(e):Roles:Keyb,Disk1,MainBoxConstraints:Keyboard(Keyb),DiskDrive(Disk1),CPU(Mainbox)这个结构意味着类这个结构意味着类PC的所有对象都含有成分:键盘、磁盘和的所有对象都含有成分:键盘、磁盘和CPU(可以用函数可以用函数Keyb,Disk1和和Mainbox分别表示)。这与在许多语义分别表示)。这与在许多语义网络系统中所使用的表示法是有相似的形式。事实上,你可以很容网络系统中所使用的表示法是有相似的形式。事实上,你可以很容易地用语义网络表示
49、符号来表示这种结构,如图易地用语义网络表示符号来表示这种结构,如图13.2所示:所示:如一个如一个PC类型的例子类型的例子设为设为PC3有子成分有子成分KEYS13,DD11和和CPU00023,它可以用如下的框架表示法来表示:它可以用如下的框架表示法来表示:(PC3isaPCwithKeyb=KEY13,Disk1=DD11,MainBox=CPU00023)这种定义可以看作下面的这种定义可以看作下面的FOPC公式的一个缩写形式公式的一个缩写形式:PC(PC3)Keyb(PC3)=KEY13 Disk1(PC3)=DD11 MainBox(PC3)=CPU00023PCKeyboardDis
50、kDriveCPUKeybDisk1MainBox受限槽:受限槽:一般来说,你需要比一般来说,你需要比PC的结构成分这种表面知识更多的东西。的结构成分这种表面知识更多的东西。如:如:PC框架可以包含关于各槽值是如何相互关联的更多信息。你可框架可以包含关于各槽值是如何相互关联的更多信息。你可能想把每一个槽当成一个子部分及指示这些部分如何关联:如键盘能想把每一个槽当成一个子部分及指示这些部分如何关联:如键盘和磁盘用适当的连接器加到和磁盘用适当的连接器加到CPU盒子中。为了确认这一点,你得定盒子中。为了确认这一点,你得定义义CPU为一个含有如键盘插头、磁盘端口、电源插头等等槽的框架为一个含有如键盘插