您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 自然语言处理-第13章-自然语言理解
自然语言理解第十三章知识表示和推理★关于上下文知识的两个重要方面是:关于世界的普遍知识及语言交流时的专业知识。★知识表示为了对上下文进行分析,你需要有表示知识和进行推理的一种形式。对于这个领域的研究就是知识表示(knowledgerepresentation)。★对于不同的研究者知识表示意味着不同的事情:对一些人来说,知识表示关心的是用来表示知识的语言的结构——或者是逻辑形式、语意网络、框架,或者是其他特殊设计的表示形式。而对另一些人来说,知识表示关心的是句子的内容——需要什么样的前提及句子是如何组织的。这两个问题都是很重要的。有时,看起来是一场关于知识表示的激烈争论事实上是争论的双方都只注意到了知识表示的其中一方面而忽略了另一方面。这一章没有对知识表示的形式进行更广泛的讨论。相反地,主要讨论的是知识表示和推理是如何被用来方便语言理解的。因此,将采用的是一种基于谓词演算的抽象表示。以便使有关知识表示的问题的讨论以最少量的新资料和符号来介绍。这并不意味着用在一个系统中的基本的知识表示必须采用逻辑公式或定理证明的方法做为推理的模型。基本的知识表示系统可以是语意网络、逻辑描述、基于框架的系统、相互连接的模型或是其他形式,只要系统有起码的表示能力进行描述。知识表示和推理13.1知识表示13.2一种基于谓词演算的知识表示13.3框架:描述事物各个方面的信息13.4自然语言中的量化的表示13.5动词的时态和语态13.6基于知识表示的自动推理13.7过程语意学和问题的求解13.8混合知识表示§13.1知识表示在任何知识表示系统中有两种知识十分关键:对于世界的普遍知识和当前情况下的特定知识。对于世界的普遍知识的许多方面已经被认识了,如:典型的统治阶级、部分和全体的联系等等。这些组成了对于世界中的普遍限制的信息和语言中某些术语的语意定义。对于绝大多数来说,大部分知识是根据世界中各种各样的目标指定的,并不关心特定个体的信息。例如,OWN1可以译成人和物之间的一种关系,而不是一个特定的人(如:John,ownsaparticularcar.)。关于个体的信息在语言理解中同样是很重要的,它是我们称之为特定的被理解的句子系列的一个大的组成部分。事实上所有的知识表示系统支持这两者任何一个方面的推导。★一般的世界知识对于解决许多语言解释问题是必不可少的,最重要的一个是非歧义。例如:Ireadastoryaboutevolutionintenminutes.Ireadastoryaboutevolutioninthelastmillionyears.特定情况下的特定知识对于许多问题来说是很重要的,包括确定被引用的名词短语和非歧义词在当前情况下的意义。★我们往往不是很正规地把知识表示看作是用来翻译知识和理解系统的。但只要引入越来越多的术语知识和规则,那越来越多的专门用语将被更精确地科学定义。★一个知识表示系统包括一个称为知识库(KB:knowledgebase)的句子数据库和一序列可以根据当前知识库组成新句子的推理规则集(inferencetechniques)。当规则集中的原始句子都是正确的时候它仅能生成正确的新的句子时,我们说这个规则集是好(sound)的。然而并不是要求所有的推理规则都必须是好的,就象我们后面将会看到的一样。★知识表示语言由知识库中的句子定义的语言称为知识表示语言(KRL)。它很象逻辑形式语言,但有许多实际原因使他们经常不同。这两种语言是根据不同的需要被使用的。逻辑形式语言是为了简化语意解释过程和有效地解决歧义,所以要有很好的表达能力。而知识表示语言在一个特定的领域内必须支持高效的预测推理。换句话说,它必须是相对简单以至可以定义从特定知识库中推导出的句子集,并建立在合理的时间内执行这些推理的计算模型。例如:对处理数量词而言。在逻辑形式语言中引入了大范围的数量词,与英语数量词的不同词义严密相对称。这使得非歧义技术(例如当要确定数量词范围的时候)就可以应用实际数量词之间的微妙的区别(如在each和every之间)。然而,在许多知识表示语言中,往往是一个结构只允许一些数量词或经常只是一个而已。这样推理过程可以被很简单地定义。通过保持语言的分离性及在他们之间定义一个映射函数,你可以同时拥有这两个优点。当然,这个方法的成功依赖于这个映射函数是否被高效地定义。在确定一个满足有含义的逻辑形式和高效的知识表示的最佳方法时,需要实际的研究工作。根据现有知识,保持逻辑形式和知识表示的分离看起来好象是最好的妥协办法。当根据知识库中的公式知道一个公式P是真的时,或根据公式表示一个句子的意义时,我们说这个知识库(或句子)继承给了P。然而,通过理解语言而得出的许多结论却不是继承的产物,而是句子的隐含的东西。隐含的东西是指可以从句子中典型地推出,但在其他特定的情况下却被明确地被否定的那些结论。例如,Jackownstwocars.Infact,heownsthreecars.★★推理的形式为了理解自然语言需要许多不同的推理形式。推理方法可以被分成演绎和非演绎形式。由逻辑概念的继承性证明了演绎推理形式的正当。由事实的集合,演绎推理过程可以逻辑地从这些事实得出结论。★非演绎推理分成几类。例如包括从例子中学习一般性的推理规则(归纳推理inductiveinference)和从结论中推出原因的推理规则(展开推理的一种形式abductiveinference)。★展开推理与演绎推理是相反的,可以通过考虑公理AB。演绎推理当给定A利用公式可以推出B,展开推理则由B推出A,因为A是B正确的原因。★许多系统允许缺省信息的使用。缺省规则是一条可能有例外的推理规则,因而它是可废除的。如果你使用表示法AB写缺省信息时,那么被缺省的推理规则如下:IFAB,andAistrue,and﹁Bisnotprovable,thenconcludeB.缺省规则被认为可以对一般的句子提供好的说明。例如,句子Birdsfly可以用FOPC公式描述:xBIRDS(x)FLIES(x)可废除的规则引入了表示法中的新的复杂性。没有这些规则,大多数表示是单调的,因为增加新的断言只是增加必需的公式的数目。特别是,在单调的表示法中,如果知识库KB1推出结论C,并且如果你加入另一个公式到KB1以至形成一个新的一致的知识库KB2时,那么KB2也推出C。然而这对于使用缺省规则的表示法并不适用,因而他们称为非单调的表示法。例如,考虑一个包含以下公式集的知识库K:Cat(Sampson)Sampsonisacat.TabbyCat(Sampson)Sampsonisatabbycat.c.Cat(c)Purrs(c)Catspurr.由这个知识库,你使用缺省规则可以断定Purrs(Sampson),因为没有信息和Purrs(s)相矛盾。另一方面,如果你添加一个新的事实:notabbycatspurr.,那么扩展后的知识库就不能再推出Sampsonpurrs。除了缺省规则外,有其他有用的方法可以得到非单调的结论。例如,封闭的世界假设(CWA:closedworldassumption)声明了知识库KB包含了关于某些谓词的完整信息。例如,对CWA的一个谓词P,如果一个包含P的命题不能从知识库KB中推出,那么它的否定就被认为是真的。对于航空时间表的数据查询应用中,知识库KB存储了关于存在的航班信息——如从Rochester到Boston的FDG100航班——但它并没有明确包含否定信息——即航班FDG100不飞到Chicago或没有航班FDG455。只有推理过程建立在关于航班的封闭世界假定中这样的信息才能被得出。★★推理规则在知识表示系统中有两类主要的推理方法:过程式和陈述式。大多数系统在某种程度上混用这两种方法,形成一个从纯粹的陈述式表示法到纯粹的过程式表示法的联合体。联合体的陈述式结果可能是一个基于逻辑的定理证明器。知识库被表示成公式集合,推理则按照演绎推理的定理证明算法执行。在一个强大的陈述式系统中,强调的是把形式语义赋值给独立于推理的表示法中的表达式。而过程推理系统强调的是表示法中的推论性的方面。特别是它不关心知识库中的表达式在程序中如何处理。关于过程表示法的一个实例是一个使用计算机自己内置的算术过程来计算算术表达式的系统,它没有任何关于数学的明确的知识表示。实际上,过程系统用在那些经过很好的定义过的领域中的特定的推理任务时具有很高的问题求解效率,但常常因为不够形式化而很难进行分析。举个例子。继承技术在第十章就被用于语义网络中了。这种推理过程可以用过程化或陈述化的表达方法来实现。纯粹的陈述化表达方法将把关于每一个事实的子类和作用建模为一个公式,并且从标准的演绎推导中获得继承属性。如图:ACTIONANIMATEAGENTOBJ/ACTIONTHEMEPHYSOBJ上图的信息可以用以下的谓词公式来表示: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的作用。即:a.AGENT(A,a)&ANIMATE(a)用公理3和1。而过程式的表达方法是一个程序:它开始于某个特定的结点OBJ/ACTION,然后寻找和这个结点相连的所有的作用边。再由弧S向上到子类ACTION,在那得到与之相连的所有作用边。因而任何OBJ/ACTION都有一个从类ACTION继承来的的AGENT作用边。这两种方法得到的是相同的结果,但陈述式的表达是通过在逻辑公式上应用演绎推导,而过程式的表达则是使用一个执行转换图的程序。第一种方法看起来更加严格定义,但第二种可能更加有效。在这种情况下,你可以证明两种方法获得相同的结果,从而充分利用两种方法的优点,即:一个严格定义的语义和执行推理形式的高效程序。返回§13.2基于FOPC的表示这本书使用的知识表示语言(KRL)将是一阶的谓词演算的一个扩大的版本。注意通过选择语言,你不必一定要用推理的某一种特别的形式。例如,后面的章节将显示出KRL是怎么与演绎推理和过程推理两种技术一起使用的。谓词演算的语法已被介绍,这里不再描述。我们将集中于对描述自然语言句子意思时需要的标准的的谓词演算进行扩展,并介绍这种语言和逻辑形式语言之间的差别。语言的术语由常量(例如:John1),函数(例如:父亲(John1)),及变量(例如:x和y)组成。而逻辑形式语言没有使用常量,相反,它是以一对不同的变量来使得描述的上下文互相独立地来表达每件事情。在知识库中,常量被用来代表特定的个体。例如,逻辑形式项(NAMEj1“John”)是一个短语的意思,它代表其被谈到的人物名为“John”。在给定的上下文中被谈到的真正的人可能被表示成知识库中的常量John1。在KRL中使用受限量化是很方便的,它与逻辑形式语言中一般量词表示法是很相似的。限制条件由一个冒号隔开接在量词变量后面。正如第八章所提及的,对于存在和全称量词,这种表示法可以进行缩写,但并不扩大语言的表达能力。因而:x:Man(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替换掉了。许多知识表示系统没有明确使用量词。就象有广阔辖域的全程量词变量一样,量词中也包括变量。例如,知识库中的一个公式如(P?xA)在意义上与谓词演算公式x.P(x,
本文标题:自然语言处理-第13章-自然语言理解
链接地址:https://www.777doc.com/doc-7214339 .html