第一章自然语言处理简介厦门大学计算机科学系李堂秋第一节关于语言的研究•语言是人类行为的一个基本方面,是生活的重要内容。本课程研究语言的理解和生成是如何工作的,其目标是建立语言的相当详细的计算模型,使得我们能够基以写出程序去执行自然语言的各种任务,最终的目标是我们认定的模型能够接近人类读、写、听、说等各种语言能力。概括地说,一个是科学的目标,另一个是实际的目标:–科学的目标--探索人类语言通讯的本性–实际的目标--使人机之间能进行有效的交互•语言的研究分成几个学术领域,各自都有自己的问题和对应的研究方法:–语言学:研究语言的结构,词如何形成短语、短语如何形成句子,什么东西限制一个句子可能的意义等。研究的工具:人类对合适的语法和意义形式的直觉,以及一些数学工具如形式语言理论、模型理论语义学等。–心理语言学:研究人类语言产生和理解的过程,人类如何识别句子的正确结构,何时决定一个词的正确含义,理解过程何时发生等。研究的方法是:测量人类对象执行情况的实验技术,以及对观察结果的统计分析。–哲学:一个词和一个句子怎么会有意义,如何用词指定世界中的物体。信念、目标、和意图是什么东西,与语言有什么关系。通过反例的直觉来扩展自然语言;数学模型:逻辑和模型理论。–计算语言学:如何识别一个句子的结构,如何模拟知识表示和推理过程,如何用语言完成特定的任务等。研究工具:使用计算机科学中的算法和数据结构的表示方法以及人工智能的知识表示和推理的形式模型,研究语言的计算理论。要建立语言的计算模型需要综合各领域专家的已有成果。•科学研究的宗旨是为了更好地理解语言是如何起作用的,但是人们意识到,没有任何一种传统的方法可做到这一点,即使可能把所有的方法结合起来,其结果也太复杂。但是也许可以把复杂的理论编成程序,然后观察程序的执行情况,如果失败,想办法逐步改进。计算模型可以很好地对人类的行为做出某种预测以便心理语言学家进一步研究。通过不断继续这一过程,我们也许可以获得对人类语言处理过程的深入的理解。要达到这一点,当然需要各种领域专家共同的努力。•实际或技术的宗旨是希望自然语言处理能力将使计算机的使用方式获得一场革新。因为人类几乎所有的知识都是以语言的方式存储的,如果计算机能够理解自然语言,那它就能获得并使用这些知识。此外,我们如果有自然语言接口,则任何人都能使用复杂的计算机系统,系统将显的更加灵活和聪明。从技术观点出发,人们并不在乎计算机的模型是否反映人类处理语言的真正过程。只要能工作就行了。•在这两中主旨之间,我们采取折中的立场:–语言是这样复杂,如果没有系统的理论为基础,任何杂凑的方法将无法成功。–当前人类关于语言处理的知识过分贫乏,一定要建立感知上正确的模型是不可能的,我们只好尝试一切看来可行的模型。第二节自然语言的处理的应用要对自然语言系统研究做定义最好是考虑这些研究的应用领域。自然语言的应用可以分为基于文本的和基于对话的两种:•基于文本的应用最好是对文本的处理–从文本库中寻找特定论题的文献(如在图书馆中寻找有关的书)–在某中论题的消息和文章中抽取信息(如通过新闻报道建立某一天股票交易数据库)–把文献从一种语言翻译成另一种语言(如用几种语言生成汽车修理手册)–为某种目的生成总结性文本(如从1000页的政府报告产生3页的总结)–故事理解系统(读入一段故事,然后回答问题)并非所有的上述系统都用上了自然语言理解:–关键词的检索–词组模式匹配的机器翻译•基于对话的应用与人机通讯有关,用口语或用键盘–问题解答系统,用自然语言对数据库提问题(如查询人事信息)电话自动客户服务系统(如执行银行转帐或通过手册订货)–自动教学系统,在这种系统中学生可跟系统交互–用口语控制机器–通用交互式问题求解系统(如协助旅客做旅行的航班计划安排)基于对话的系统与基于文本的所面临的问题有时很不相同:–使用语言不同–系统需积极介入对话,以便使对话进行得很平滑–要证实问题理解了,或需要客户提供更多的信息要搞清楚口语识别系统与自然语言理解系统的区别,前者只识别单词,而后者的关键特征是会用某种表示语言生成句子的中间表达形式,以便用于进一步处理。•本课程所讲的方法同样使用与基于文本和基于对话的系统•ELIZA给人的印象十分深刻,真的理解用户的输入吗?否。下面是它工作的秘密:词alikearealwayswhat评分103332模式?x?xareyou?y?xare?y?x?x输出Inwhatway?Whatresemblancedoyousee?WouldyoupreferitifIweren’t?y?Whatiftheywerenot?y?Canyouthinkifaspecificexample?When?Really,always?Whydoyouask?Doesthatinterestyou?第三节自然语言理解系统的评价•如何判断一个系统是否真的理解?图灵测试建议黑箱测试法。这种办法只看系统的性能,而不关心它是如何工作的。此法对最终的系统评价是合适的,但是对早期的系统(好与不好)却都说明不了什么问题。•另一种是玻璃箱测试法,它要了解系统个部分是如何工作的,并加以分别测试。但此法也有问题,因为要对系统需要有么样的子部分及其功能取得一致意见并不容易。•尽管评价一个系统很困难,但十分重要。MIT1960年代开发的ELIZA就是著名的反例,它模仿一种精神病医生,给人深刻的印象。下面是这个程序人机对话片段:用户:Manarealile.They’realwaysbuggingusaboutsomethingorother.Well,myboyfriendmademecomehere.HesaysI’mdepressedmuchofthetime.It’sture,Iamunhappy.Ineedsomehelp;thatmuchseemscertain.PerhapsIcouldlearntogetalongwithmymother.Mymothertakescareofme.Myfather.Youarelikemyfatherinsomeways.ELIZA:Inwhatway?Canyouthinkofaspecificexample?Yourboyfriendmadeyoucomehere.Iamsorrytohearyouaredepressed.Doyouthinkcomingherewillhelpyounottobeunhappy?Whatwoulditmeantoyouifyougotsomehelp?Tellmemoreaboutyourfamily.Whoelseinyourfamilytakescareofyou?Yourfather.Whatresemblancedoyousee?•关键词,匹配输入,如果匹配多个词,取评分高的,然后给出对应的输出(若有多种选择取与上次不同的)。如果有变量,在匹配中变量也得到值,如:?xareyou?y匹配Whyareyoulookingatme?则?x=Why?y=lookingatme.这些值可在生成时使用,这也有助于产生有变化的输出。如果没有找到,回答一些不疼不痒的话,如:Tellmemore.或Goon.•之所以人们接受ELIZA,是因为一:人类的聪明,很会把它的输入做合理的解释。二:它工作的方式不必做任何有用的判断。它没有理解语言,没有记忆,如果多测一会儿还是难免漏洞百出,但是如果你不认真去测,它会给你一个错误的结论。•为了避免产生同样的错误,有两种办法:–我们必须接受一些对系统结构的假定,并开发一些指标对不同的组件进行测试。–我们对获的测试结果持一定的保留态度,除非获得相当高水平的性能结果。只有这样,系统之间的比较才可能反映系统在领域中潜在成功的可能性。第四节语言分析的不同层次自然语言系统需要很多语言学的知识,同时还需要组成人类智能所包含的其它知识--人类对世界的一般知识和推理能力,大体说来需要如下知识:•语音学和阴韵学:词与其发音的关系•词法知识:如何用音节形成词,如friend-ly•句法知识:词如何形成短语,词和短语如何形成正确的句子,每一个词在句中在机构方面起什么样作用•语义知识:每个词的意义是什么,词的意义如何结合成句子的意义,主要指独立于语境的意义•语用知识:句子如何用于不同的场合,不同的用法如何影响它的解释•谈话的知识:前一句如何影响下一句的解释,对于代词的解释和时态的解释特别重要•世界知识:语言的使用者为执行对话所必须具有的世界的一般知识,包括语言使用者对别的使用者的信念和目标要了解些什么第五节表示方法和理解的关系人类的自然语言包含太多的歧义,但是由于人类有大量的知识,这些歧义对人类并没有带来很大的影响,但不适合在计算机中使用。为了表达意义,需要精确的表达语言,一种来自数学和逻辑的形式语言。这种语言必须是精确和非歧义的,同时必须能够刻画自然语言句子的直观结构,在自然语言处理中使用的表示方法有几种:1句法的表示:表示句子的结构句法结构表示句子中单词之间的关系,以及它在句子中所起的作用。为了后续的处理,需要一种表示方法能刻画句子的语法结构。最简单的表示方法是基于上下文无关文法的语法树。SVPNPVPVPNNNVPPNPNsandVNPRiceflieslikeNsandRiceflieslikeSRiceflieslikesand的两棵分析树2逻辑形式:逻辑形式用来表示句子在不考虑上下文情况下的意义,举例说:NPDETNthecatch但catch有两种意思,一是垒球的抓球动作,一是钓到鱼----逻辑形式本课程把与上下文无关的意义叫逻辑形式,逻辑形式表示词的可能意义,并指出词和短语之间的语义关系。如果说它指的是约翰昨天钓的鱼,那又是另一个意思----不是逻辑形式Buy事件AGENTTHEMETO-POSSJohmthebookMarry在形成逻辑解释时不排除剔除词的某些含义:JackinvitedMarrytotheHalloweenball.3最后的意义表示:最后的意义表示需要一般知识表示方法(KR),系统用这种表示法表示应用领域的知识并对之进行推理,系统认为这种语言可以表示应用领域中的一切指定的知识。上下文解释的目的就是为了把句子的结构和逻辑形式映射成为系统可以对之进行推理某种形式。–在问题回答系统中-------映射成为数据库的查询语句–在故事理解应用中-------映射成为一些表达式,表示句子所描述的情形。一般是把首序谓词逻辑公式作为最后的表达语言,尽管它还有一些不足之处。第六节自然语言理解系统的组织词系列(输入)词系列(输出)句法结构和逻辑形式最终意义句法结构和逻辑形式回答的意义语法剖析语法剖析对话规划句子的实现词典与语法对话的语境应用的环境语境解释•尽管在实际中,语法分析和语义分析的过程是密不可分的,但是为了处理的分别,本课程还是以句法结构分析、逻辑形式生成、最终意义表示为相继的几个步骤,这样可以减少复杂性。我们建议的过程如下图。•有的处理方法是语法分析器利用词的意义和语法规则把输入句子先分析成语法结构,在应用语义解释程序生存逻辑形式。但本图建议在句法分析时,同时生存这两个结构,这样可以减少很多中间的歧义。如:–Visitingrelativescanbetrying.–Visitingmuseumscanbetrying.(一起处理,只会生成一个结构)•语境处理要解释特指的对象、代词指的是什么,确定分析句子蕴涵的时序关系,判别说话人的意图(Canyoulefttherock?是问句还是请求句?),理解句子所必要的推理等。通过上下文和应用领域的知识,把逻辑形式转化成最终的语义表示。•虽然这里主要关心语言的理解,但生成器也使用同样的词典和语法进行语言生成。可同时用于语法分析和生成的语法称为双向语法。虽然许多研究者主张双向语法,但实际上使用的分析语法和生成语法还是有区别的。原因主要是分析和生成的着重点不同。总结:•本课程研究自然语言理解的计算理论。自然语言理解系统的共同特点是通过对输入句子的分析计算它