Applied Natural Language Processing —— 读书笔记 第二章

来源:互联网 发布:北京赛车pk10辅助软件 编辑:程序博客网 时间:2024/06/06 03:35

前一章描述了自然语言理解中关于人如何理解的部分,这个过程包含了内部和外部的信息。外部信息是通过视觉或者听觉传递的语言内容,内部信息是个人关于这个时间和语言的知识。这些过程的结果就是使得人们能够理解语言输入。

解决自然语言理解包含三个问题,第一个是模拟思考问题的过程,第二个是模拟思考的结果,第三个是模拟理解这个输入语言内容所需要的世界知识world knowledge。后两个都涉及到了如何表示的问题。

AI问题的研究带来了许多表示抽象物体的方式,这一章的目的就是展示如何用AI技术解决这三个问题,在讨论的同时也会包含NL技术发展的历史。这个讲解会按照概念从属理论conceptual dependency来讲。


2.1 不基于理解的自然语言处理

首先来讨论一个问题,计算机需要在多大的程度上理解自然语言。

最开始尝试进行自然语言处理是在20世纪50年代中期。当时的研究是利用大量的计算资源,将一种语言翻译成为另一种语言,用的具体技术是在存储一些很大的源语言,这些源语言被当作是字典,翻译就逐字翻译(查字典)。有一些其他的系统会用到语法分析来调整对应不同语言之间字的顺序。

总的流程就是source text -> target language translation

但是这些机器翻译的结果并不是令人满意。最主要的问题是这种逐字翻译、一一对应的翻译方式是有问题的,原因是每个单词词意的模糊性(多义性);另外有一些俚语或者隐喻性的内容也会造成翻译上的困难。除了多义性,还有一个与之相反的原因,许多源语言中的单词在目标语言中没有对应的单词翻译。其他一些单词则是不同语境和文化背景下,含义有所变化。(对于这些人工解决都有点困难的问题,在电脑能给解决之前是不是得先有人工解决的方案?)

人工翻译不会遇到这些问题的原因是人们会先将语言进行理解,也就是source text -> meaning of source text -> target language translation

1960年,Bar Hillel声明,如果电脑程序要能够成功将一个语言转换成另一个语言,那么它必须先像人一样,理解语言。六年后,在现在非常著名的ALPAC(1966)报告中这个观点被重申。


2.2 电脑程序能够理解意味着什么?

随着1966ALPAC报告的发布,当时人们还不太了解对于程序来说,理解语言意味着什么。之后,大量的工作投入到当中。


2.2.1 文字含义在人类记忆时的表现

首先对于人类认知语言的方面,我们并不清楚在这方面的物理结构,比如多少脑细胞和化学物质涉及到。但是我们能够知道一些功能性特征,并且用电脑程序模拟。

文字含义的表现不是基于字的word based,证明:人们可以记下一个故事的大概内容,但是无法记住每个单词。

文字含义的表现必须是独立于语言的。另外可以证明语言文字的表示不是基于字的,就是无法逐字将一门语言翻译成另外一门语言。

基于以上的理由,许多人认为存在一种特殊的语言language of thought。

2.2.2 概念从属理论conceptual dependency

Schank的概念从属理论是最新的理论(本书是1987年发行)。

概念从属是一种独立于语言的language-independent机制。Schank理论的基本原理是:

For any two sentences that are identical in meaning, regardless of language, there should be only one representation.

Schank确定了11个原始行为primitive ACT作为理论的基础,它们代表的是行为,而不是动词。这么做的原因是,如果ACT表示的是动词,有时候会受到上下文含义的影响。比如gave,在句子John have Mary a book.和句子John gave Mary a tip on the ninth race.有不同的含义。

每一个原始行为primitive ACT都是一个框架,有slot组成,每个slot都填入名词。除了表示行为,Schank的理论还提供了一系列状态的表示,状态的表示有连续的、有范围的(-10到10这种),还有表示物品之间关系的,比如CONTROL, PART, POSSESSION, OWNERSHIP, CONTAIN等等。

手段:许多句子的概念化都由多于一个primitive ACTs组成。

因果关系:ACTs组合起来,也经常表示ACT和状态改变的因果关系。在概念从属理论中,有五个因果链的类型:resultant, enablement, disenablement, initiation, reason.比如如下句子:

John killed Mary.

(do   actor   (John)

        result  (Health    object    (Mary)

                                   value    (-10))

用概念从属,就可以避免语言输入时候产生的模糊性。

2.2.3 电脑理解的过程

表示法的理论,比如概念从属理论conceptual dependency,对于电脑的自然语言理解没有什么太大的价值。概念从属理论的价值在于,Schank和他的学生对此并不满足,他们将自然语言作为输入,将文字表示作为输出,这个程序叫做解析器parser。

第一个解析器是1972年由Chris Riesbeck写完的ELI,他当时是作为斯坦福graduate student,在Roger Schank's lab打工。后来又Larry Birnbaum和Mallory Selfridge在Riesbeck的最开始版本上面进行了提升,放到了他们自己的CA解析器上(1979)。再后来是1982年Michael Dyer和Tom Wolf的BORIS解析器。概念解析器一般有两个组成部分,一个是程序上的部分procedural,另一个是说明的部分declarative。

1. 说明的部分declarative component是一个英语单词、短语和习语表达组成的字典。概念从属的语法就是一个特殊的语法头,比如ATRANS,后面是几个slot-value对。

2. 过程的部分procedural component,或者说控制结构control structure,从左到右读入input,然后将运行的结果保存到两个数据结构中:concept-list和demon-list。每个单词、短语和习语表达都会在字典中找到对应的意思,并且加到concept-list中。所以字典中的demons都会添加到demon-list中。demons的作用是如何将concept-list中单独的概念集合成更大的概念。最终,就是将整个句子表示成一个意思。

概念上来说,demon会和主程序并行进行。demon可以理解为对某些状态的期望值,可以达到去除多样性的作用。每当有demon符合或者不符合是,都会从demon-list中添加或者删除。


Rieger提出了引用机制inference mechanism,这个机制会将输入中对应的矩阵转换成相对应的概念,同时也有用到某种控制结构。

margie系统级那个Riesbeck概念解析器、Rieger引用机制和由Neil Goldman写得发生器组成。margie系统说明了概念从属方法的可行性。生成器有两种模式,改意模式paraphrase mode和引用模式inference mode。改意模式是会根据同一个input,产生很多含义相同的句子。引用模式是会根据概念分析其产生的初始结果,利用一些引用内容进行提升。

margie系统中的推荐机制缺陷是无法控制,会产生大量的引用,其中许多是不相关的。

Schank和Abelson假设了人们在记忆的时候,在语言理解过程中有一个上层的机制,叫做脚本scripts。一个脚本包含了一系列场景scene,比如有个人在餐厅吃饭,scene就如下: entering -> ordering -> eating -> exiting

Wilensky在1987年提出了一个目标分类,他的一个项目PAM就可以理解行为的目标。

Schank在1982年提出了script的结果是静态的,无法满足动态记忆,比如遗忘、回忆和学习。为了满足这些动态记忆的过程,Schank提出了另外一种叫做MOP的结构。

以上提到的scrip、plan和goal都是知识架构knowledge structure,是一种不连贯记忆。另外一种知识架构就是语义网络。语义架构是将事实组织起来,比如动物的分类,每一种分类都有各自的特征。


2.3 NLP的理论问题

2.3.1 表现上的问题

AI研究已经发掘了许多表现特征的策略,除了概念从属和语义网络,其他人还做了许多有关于primitive的工作。大部分的知识结构只在特定的条件下比较适用,比如prolog是特地为支持逻辑形式support logic formalism设计的。

2.3.2 语法和语义

大部分理论都认为自然语言系统可以将一个自然语言转换到一个独立语言表现上,比如

English -> Meaning Representation

现在的争论之处是是否有必要在这中间加入一层语法表示

English -> Syntactic Representation -> Meaning Representation

大家都确定语法分析在自然语言理解中起作用,但是起作用的程度收到了质疑。




总结:

这一张讨论最主要的贡献还是就究竟对于电脑来讲,什么叫做自然语言理解——让电脑产生一个规范的、独立于语言的含义表示。从自然语言到含义表示的多对一使得我们可以用推测inference过程。推测过程和推理reasoning过程然后可以得到真实世界的知识。

这一类可以理解自然语言的系统被叫做基于知识的自然语言系统。

0 0
原创粉丝点击