您好,欢迎来到尔游网。
搜索
您的当前位置:首页NLG自然语言生成(搜集的内容)

NLG自然语言生成(搜集的内容)

来源:尔游网


1 自然语言生成

自然语言生成是人工智能和计算语言学的分支,它的重点在于建成一个计算机系统,这

个系统能生成用英语或其他人类语言表示的可理解文本,它的输入是一些非语言表示的信息,它会利用相关的语言知识和领域知识来自动地生成文件,报告,说明,帮助信息,以及其它类型的文本。(《buiding natrual language generation systems》)。

1.1 自然语言生成与自然语言理解

事实上,自然语言生成是自然语言处理的一部分,自然语言处理大体包括了自然语言理解和自然语言生成两个部分:自然语言理解是需要消除输入语句的歧义来产生机器表示语言,而自然语言生成的工作过程与自然语言理解相反,即它是从抽象的概念层次开始,决定如何用语言来表示这个抽象的概念,通过选择并执行一定的语义和语法规则生成文本。(《自然语言生成综述》) 自然语言处理,即实现人机间自然语言通信,或实现自然语言理解和自然语言生成是十分困难的。(ambiguity)。

例如,一个中文文本从形式上看是由汉字(包括标点符号等)组成的一个字符串。由字可组成词,由词可组成词组,由词组可组成句子,进而由一些句子组成段、节、章、篇。无论在上述的各种层次:字(符)、词、词组、句子、段,……还是在下一层次向上一层次转变中都存在着歧义和多义现象,即形式上一样的一段字符串,在不同的场景或不同的语境下,可以理解成不同的词串、词组串等,并有不同的意义。一般情况下,它们中的大多数都是可以根据相应的语境和场景的规定而得到解决的。也就是说,从总体上说,并不存在歧义。这也就是我们平时并不感到自然语言歧义,和能用自然语言进行正确交流的原因。但是一方面,我们也看到,为了消解歧义,是需要极其大量的知识和进行推理的。如何将这些知识较完整地加以收集和整理出来;又如何找到合适的形式,将它们存入计算机系统中去;以及如何有效地利用它们来消除歧义,都是工作量极大且十分困难的工作。这不是少数人短时期内可以完成的,还有待长期的、系统的工作。以上说的是一个中文文本或一个汉字(含标点符号等)串可能有多个含义。它是自然语言理解中的主要困难和障碍。反过来,一个相同或相近的意义同样可以用多个中文文本或多个汉字串来表示,所以一个中文文本或一个汉字(含标点符号等)串可能有多个含义同样也是自然语言生成的主要困难和障碍。 (《WAPEDIA》) 因此,自然语言的形式(字符串)与其意义之间是一种多对多的关系。其实这也正是自然语言的魅力所在。从自然语言理解的角度看,我们必须消除歧义,即要把带有潜在歧义的自然语言输入转换成某种无歧义的计算机内部表示。而从自然语言生成的角度看,我们也要消除歧义,从抽象概念生成符合语义,语法,语用的无歧义文本,所以不论从哪方面看,自然语言的魅力都给我们带来了巨大的困难。

历史上对自然语言理解研究得较多,而对自然语言生成研究得较少。但这种状况近年来已有所改变。

1.2 自然语言生成的研究

从20世纪40年代算起,自然语言处理的研究已经接近有70年的历史,而自然语言生成正是在自然语言处理的发展中逐渐清晰化的其中一个部分,大概兴起于70年代早期,在1983年~1993年这十年期间,自然语言生成的研究取得了令人瞩目的成就。

自然语言生成迄今已走过了近四十年的历程,在这段时间里,从事该领域研究的专家们不断提出新的理论和方法,设计出新的生成模型,使语言生成的研究不断取得新的进展。目前语言生成的研究侧重于以下几个方面:在特定的语法理论框架内更加广泛深入地处理语言

现象,如 :生成系统。\"在同一语法环境下生成多语言,例如英国大学的多语种生成系统(包括英语、德语、)日语、法语、荷兰语、西班牙语),上海交通大学的多语言天气预报发布系统。面向实际应用的开发,如国内有北京交通大学和北京颐和园的导游系统、中国科技大学的机器人足球现场解说系统以及人机接口等;国外的有英 国大学所设计的在线文件剪接系统。\"在生成过程中对所要表达的信息进行语义和句法方面的聚合亦是目前研究重点之一。当前语言生成的研究方向主要是在语言表示形式、信息内容规划以及语言生成模型等方面。自然语言生成的研究将继续在诸多语言学科、计算机领域和其他学科的通力协作下获得新的成果。(《自然语言生成综述》) 2 自然语言生成的内容

传统来说,自然语言生成的任务大致分为两个个部分:内容选择,即“应该表达什么”;以及内容表示,即“怎样去表达”。但随着自然语言生成的发展,我们还应解决一个问题,那就是“为什么要用这种方式表达?”,所以提出了更为标准的自然语言生成结构,它由三部分构成:内容(文本)规划(也称宏观规划),句子规划(微观规划)和句子实现。标准自然语言生成结构见图1:(《Natural Language Generation》)

图1:自然语言标准生成结构

事实上还没有一个已实现的自然语言生成器完全的体现了图1中所有 的模块,目前试验性的尝试来完成这一结构的自然语言生成器有 ERMA (Clippinger 1974)和PAULINE (Hovy 1988) 。而大多数的自然语言生成器在不同的安排下只包含这一结构中的某些阶段而已,如 Reiter (1994) 和 De Smedt, Horacek, and Zock(1995)。(《Natural Language Generation》)

2.1 自然语言生成体系结构

下面对自然语言生成体系结构的三个基本模块进行介绍。(《自然语言生成综述》,《Natrual Language Gneration:Requirment for construction》,《Natural Language

Generation》,《Microplanning with Communicative Intentions:The SPUD System》)

2.1.1 内容规划

内容规划的任务主要包括内容确定和结构构造两个方面。内容确定的功能是决定生成的文本应该表示什么样的问题,而结构构造则是完成对已确定内容的结构描述,即用一定的结构将所要表达的内容组织起来,并决定这些内容块是怎样按照修辞方法互相联系起来的,以便更加符合阅读和理解的习惯。通俗讲,就是输入是一个或多个交互目标,像[DESCRIBE HOUSE-15] 或[MOTIVATEGOING-ON-VACATION-12]之类的这种抽象的概念,经过内容规划,输出通常会是树结构,或者是一个有着更加详细的内容命题的列表,这些命题会用像“and”,“therefore”,“however”这样的连接词连接起来。当然,每个命题都包含着一个单子句所应该包含的信息。比如初始目标是 [DESCRIBE HOUSE-15],那么它被简单扩展后应该是像 [GENERATE HOUSE-IDENTIFIER] [GENERATE ADDRESS] [INTRODUCE FLOORPLAN] [ELABORATE [GENERATE GROUND-FLOOR] “and”[GENERATE TOP-FLOOR] “and” [GENERATE BASEMENT]] 这样的。

2.1.2 句子规划

通常,内容规划并没有完全指定输出文本的内容和结构,句子规划的任务就是进一步明确定义规划文本的细节,具体包括选词(Lexicalization)、优化聚合(Aggregation)、指代表达式生成(Referring Expression Generation)等工作。

选词模块:在应用中,特定信息必须根据上下文环境、交互目标和实际因素(如人的知识背景或作强调等特定处理)用词或短语来表示。选择特定的词、语法结构以表示规划文本的信息意味着对规划文本进行消息映射。有时只用一种选词方法用来表示信息或信息片段,在多数系统中允许有多种选词方法。

优化聚合模块:为了能够消除句子间的冗余信息,增加可读性以及能从子句构造更复杂的句子,在句子规划中应用了聚合技术,通常按照粒度区分有句子、词汇、语义、修辞和概念等聚合。即决定内容规划输出的结构怎样才能映射到像句子和段落那样的语言结构。聚合就是使用修改,联合短语,以及其它语言结构等方法来将信息打包到较少的句子中(当然这可能会使得这些句子反映的信息更为复杂一些),聚合依赖一些应用操作,这些操作的作用是会检测将要表达的信息之间的联系,比如,有的信息会重复指向共同的参与者(如Doe is a patient,DOE is a female),这样就要组织相关材料信息到一个嵌套的语义结构了(得到Doe is a female patient)。

指代表达式生成:决定什么样的表达式,句子或词汇应该被用来指代特定的实体或对象。在实现选词和聚合之后,对 指代表达式生成的工作来说,就是让句子的表达更具语言色彩,对已经描述的对象进行指代以增加文本的可读性。

句子规划的输出是文本描述(Text Specification),但其仍然不是最终输出文本,仍有句法、词法等特征需进一步处理。一般文本描述的层次结构仍然对应于逻辑结构,需经过文本实现系统实现逻辑结构向物理结构(段落章节)的映射,才能最终生成文本。

也就是说,句子规划的基本任务涵括确定句子边界,组织材料内部的每一句话,规划句子交叉引用和其它的回指情况,选择合适的词汇或段落来表达内容,确定时态,模式,以及其它的句法参数等,即通过句子规划,理想化的输出应该是一个子句集列表,且每一个子句都应该有较为完善的句法规则。但是事实上,自然语言是有很多歧义性和多义性的,各个对象之间大范围的交叉联系等情况,也就造成了句子规划是一个很难的任务,这点很多做过相关实验的学者都已经指出过。针对句子规划的许多子任务,如果要一起很好的完成是不容易的,所以有一种考虑是,单独,或者只着重考虑其中几个子任务,这样的研究也是早已存在。相比之下,现在已经较少人研究完成所有句子规划子任务的了。

2.1.3 句子实现

句子实现主要包括语言实现和结构实现两部分,具体地讲就是将经句子规划后的文本描述映射至由文字、标点符号和结构注解信息组成的表层文本。生成算法首先按主谓宾的形式进行语法分析,并决定动词的时态和形态,再完成遍历输出。其中,结构实现完成结构注解信息至文本实际段落、章节等结构的映射;语言实现完成将短语描述映射到实际表层的句子或句子片段。

3 SPUD系统基础

了解了自然语言生成的大致过程,应该看到,句子规划问题是比较复杂又为重要的。句子规划就像一个装满特殊任务的包一样,而这些任务又各自调用它们自己的表示方法和算法,所以比如像选词,聚合,指代表达式生成这些任务都是用系统的而又复杂的方法进行交互作用。但是这些交互也给集成异构的句子规划进程带来了挑战。(《Microplanning with Communicative Intentions:The SPUD System》)

相对的,也有考虑对句子规划使用统一方法的研究,而不是像上面所描述的那种集成异构,如SPUD(Stone et al., 2003)。SPUD( sentence planning using description)就是在整个句子规划的过程中对临时信息(provisional utterance)使用同一种表示方法,并利用这种表示方法给出一个单独的决策策略,而不是像传统上的句子规划那样不同的子任务有自己的表示方法和算法。

SPUD这个框架的关键就是生成器中临时信息(provisional utterance)的解释意图(intended of interpretation)的表示,SPUD将这种表示叫做交际意图(communicate intent)。同时,强调句子规划是一个协商的过程,即对句子规划而言,临时意图能引导和约束规划中进一步的推理 (Bratman, 1987; Pollack, 1992)。SPUD中交际意图的具体表示是与一种语言结构相关联的,这个语言结构拥有关于它所包含意义的“指向”,而这些意义表明了在当前的语境中,这个结构怎样描述各种各样的广义信息(generalized individuals)。这样就可以通过交际意图的具体表示与语言结构之间的联系来关联相关应用领域的具体信息。交际意图的具体表示拥有句子规划作出决策所需的所有信息,比如它会记录指代表达式(referring expressions)转变为非歧义形式的过程,它还能表明给定的结构和意义怎样才能用修饰词加以修饰阐述,这

样多个信息片就能在一个单一的表达式中被组织起来等。因此,有了交际意图模型,SPUD能同时地补充一个不完整句子的句法,语义以及语用,并能逐步评估掌握句子规划子问题相互作用的进展情况。

使用交际意图来进行句子规划,意味着要通过对语法推导进行搜索来同时构建一个话语(utterance)和它的解释,而能将有意义的决策打包在一起并允许逐步修改评估这些决策的语法形式会有助于这个搜索。所以,SPUD使用了LTAG( the lexicalized tree-adjoining grammar formalism)形式,同时,使用像逻辑编程和约束满足等这样的技术会有助于为给定的语言形式决定交际意图。

SPUD的重点在于句子规划,它是基于交际意图的,它的整个过程结构如下:

图2 基于交际意图的句子规划(微规划)的对话结构(conversational architecture)

3.1 SPUD基础举例说明

例子(1)Slide coupling nut onto elbow to uncover fuel-line sealing ring. 使用依赖关系树表示这一话语(utterace):

图3 例(1)关系树

为了表示交际意图,需要三个组成成分:(1)话语(utterace)怎样添加有关于交际目标的信息;(2)怎样增加与对象特性有联系的约束;(3)怎样建立参与者角色(the status of participants)与谈话中的指向(referents in the discourse)之间的关系。即:

Assertion:是语法规则在树种每个元素的体现,它用于更新话语(utterance)的意图; Presupposition:旨在用共享的领域知识表现话语;

Pragmatic condition:表现描述参与者角色(the status of participants)以及话语中的“指向”(referents in the discourse);

所以,经过一系列基于领域知识和语法语义以及语用的假设与设计,图3可表示为:

这些都是对元素的解释,约束。

接下来给出交际意图表示的一般规范:

图4 交际意图的一般规范

之后例(1)再经过进一步的设计与设定,如定义一些新的函数,还有采用领域表达和语言表达等。领域表达分别是盒装表达式(boxed expression)和下划线表达式(underlined expression),它们分别表示对已有记录的更新和记录中已经有的功能。之后得到以下结果:

图5 例(1)中slide的交际意图

图5中的边表示语言表达与领域表达之间的推理连接。

所以,句子规划经过考虑语法以及领域知识得到的初步交际意图便呈现出来:

图6 例(1)的交际意图。

就像图2所展示的,内容规划是综合规划管理器下面的多个子任务中的一个,一旦内容规划给出了一些更新,那么对话管理器就要将这些更新作为句子规划的输入。相应的,句子规划模块会生成一些交际意图表示,这些交际意图表示阐述了一个达到这些更新的方法,这个方法是通过使用一个具体语言形式的话语(utterance)来达到这些更新的。句子规划会依据语法和一个广义知识库构建这个交际意图的表示。这个知识库指定了系统的私有领域知识,以及关于领域的所有背景信息,而这些信息是所有参与者都可以共享的。句子规划生成的交际意图返回到对话管理器中,对话管理器不仅能将这个交际意图推进到实现模块,而且还能将它作为协调过程的一般资源。

有了以上的背景知识,我们可以给出SPUD系统的关键:图6 给出的结构不仅给对话

管理器提供了资源,也给句子规划自己提供了资源。例子(1)中,句子规划开始于对话管理器给出的任务:在一个可认知的方法下,这一话语(uterance)是有助于更新的,即move是next的,并且它的purpose是uncover。句子规划器可以通过给临时的交际意图表示一次添加一个解释元素来达到这些要求,如第一步添加如图5中slide的结构。在每一个步骤中,句子规划器都可以使用这些话语解释来推进解决像词汇选择,聚合和指代表达式的相互关联的问题。图7就提供了一些这样步骤的简单示意图:

图7 例(1)的初始阶段的句子规划示意图

通过之前的介绍,我们发现了能确定NLG中指代意图的一般方法:通过添加预先假定的关系来扩充一个话语的内容。

以上只是介绍了SPUD系统中句子规划大致过程,当然后期会有别的处理,如句法结构,形态结构,文法推论等,但是大致的前提基础如上所述。

SPUD系统是将句子生成作为一个规划问题在解,利用贪婪算法和先到先进(head-first)的算法作为规划基本算法,最后输出一个plan可以达到交际目标。

4 近期改进

近来有基于SPUD基本思想作出改进的方法,如论文《Sentence generation as a planning problem》中提到的改进,下面介绍此文中具体改进。

这个方法也是将生成语句这个问题编码为规划问题,将包含语义和语用信息的TAG语法的句子生成问题转换为基于PDDL的规划问题。但和以往的系统不一样的是它将重点放在了每个单词所做的贡献上,这些贡献包括对所要求生成的语句的句法,语义和语用上作出的语法特定的贡献。本文刻意避免对话语(utterance)像协调理性行为一样进行推理,早期的系统就是这样做的,本文避免这样,为的是能够得到一种更简单的逻辑。

文章解决的问题是围绕指称表达式(REs)的生成的,它开发了一个针对distractor(后面会介绍)的生命周期的新的观点,这样会生成更简洁的REs 。另外,这个方法还跟之前

系统不一样的是它不像别的系统将句子生成问题分为句子规划和生成两个步骤解决,而是只用一个综合步骤解决句子生成问题。 4.1

图8 例(2)

图8展示了例(2)的过程。如图8a所示,是通过“替代”和“附加”(都是TAG的主要操作)来合并元素树,这些操作的结果是如图8b所示的推导树,图8c则展示了最后的结果表示。

现在来考虑从上到下地构造如图8c的推导树过程。如图8 所示,很明显,过程开始于一个空的推导树,目的将要生成一个S层的表达式。为了满足这个目标,首先往空树上添加了“likes”树,将它作为推导树的根,但是这样做后,会引入两个新的未满足的NP层的“替代”节点,即这棵树还是不完整的。接下来,我们又用NP层的树“mary”和“rabbit”来放到这两个“替代”节点上,虽然这个动作满足了所有的“替代”节点,但是如图,“rabbit”树又引入了一些“附加”(adjunction)约束,而这个约束是我们必须通过毗连“the”辅助树才能满足的。之后就得到了一个语法推导树,当然我们是可以自由地继续添加辅助树的,比如图8a中添加的“white”树。

如上所述的过程我们可以看出,其实推导树的生成本质上是一个规划问题。对于规划问题我们是知道的,它需要状态以及可以从一个状态到另一个状态的动作,解决规划问题其实就是找到一个完整的动作序列,这个序列可以从初始状态一直到满足目标状态。

本文过程中,状态是由非满足的“替代”节点,非满足的强制性“附加”约束以及在一些推导树中“添加”动作可作用的节点来表示的。对于动作,是每个动作添加一个单独的元素树到推导树上,移除一些“开放节点”,当然同时也引入一些新的“开放节点”。初始状态是由空推导树以及为给定的根(category)生成一个表达式所需的要求组成,而目标状态是将现有的推导树规划为语法上完整的树。

4.2 语义角色

这个方法是需要推导树中每个节点都有自己单独的名字,这样的名字对区分非满足的“替代”节点和“附加”节点之间的不同是必要的。因此方法中引入了“语义角色”。以图8中例(2)为例,假定给根节点取名为self,还有角色ag和pat。另外引入索引确保一个节点一个名字。比如“likes”树的索引是1且树中“替代”节点的语义角色分别为ag和pat,那么给“likes”推导树添加元素树的规划动作就要求用这个元素树去替代“likes”树NP层的名为1.ag的替代节点以及另一个也是NP层的名为 1.pat的替代节点。

4.3 PDDL编码

现在将语法LTAG推导树的生成问题编码为PDDL。在这个模式下。一个规划状态被定义为有限的谓词逻辑原子的集合,这些谓词逻辑是取得真值。动作(action)有很多个参数,还有一个precondition和一个effect,这两个都是逻辑公式。PDDL允许对可以作为precondition和effect的公式进行扩展。

Precondition中的 subst(A,s)表示根类别为A的初始树有一个替代节点的标志为u。即说对于一个对替代节点进行替代的动作,它的前提条件就是subst(A,s),如果当前树有这么一个替代节点u,那么就可以应用这个动作了,同样的道理对于辅助树的操作也是一样的,不过要求的前提条件是canadjoin(A,s)。这里还有一个区别:对于初始树,它的替代动作的结果是从规划状态中消除subst条件,即¬subst(A,u);而对于辅助树,它的附加动作的结果是影响:¬ mustadjoin(A,u),它表明这个被附加(adjoin)元素树的“附加”节点可以不用再进行附加操作了,但是也可以继续进行附加操作,即不作必须进行附加操作的硬性规定了。就像图8a例(2)中已经有“the”附加在上面了,就算后来不附加“white”也符合了句法要求,但也可以依据生成语句的后继要求继续附加。

之前提到过,动作的应用会为节点引入新的身份,因此我们使用目前规划的步骤数作为索引,给初始状态引入一个原子:step(1)。然后给每个元素树引入一个step(k),这里k是规划规模的最大上限。 图9展示了一些动作。

图9 图8中语法的一些动作 由上所述,最后的目标状态应该含有以下状态: ∀ A,u. ¬ subst(A,u) ∧ ∀ A,u. ¬ mustadjoin(A,u)

然后我们就可以将这些动作,初始状态以及目标规定放到任何现成的规划器,获得像图10显示的规划。

图10 对图9中动作的规划 4.4

以上是最基本的句子生成到规划问题的介绍,接下来,我们扩展这个编码来处理语义和指代表达式。 4.4.1

为了将规划器像TAG的语句实现(surface realization)算法那样使用,我们将语义内容( semantic content)附给每一个元素树,并要求语句要达到某个特定的交际目标。这里也会用到知识库,知识库中只用树来表示信息。

比如,我们定义“likes”树的语义内容形如:{ like(self,ag,pat) },知识库也是有限的原子集合,比如包含 like(e,m,r)和rabbit(r)等,交际目标是知识库的子集,如 like(e,m,r)。 针对交际目标,对其每一个元素P(a1,...,an )都在初始状态添加cg(P,a1,...,an ),相应的,在目标上添加∀ P,x1,...,xn. ¬ cg(P,x1,...,xn )。另外,为每一个有n个语义角色作为参数的动作赋予参数x1,...,xn,对知识库中每一个元素P(a1,...,an ),在初始状态下都添加

skb(P,a1,...,an ) 。然后定义一个函数id,它将语义角色映射到节点标志,比如它将self映射到u,将别的角色r映射到i.r;接着再定义一个函数ref,它将函数id的输出映射到参数x1,...,xn

上,如 ref(u) = x1。

为了获得元素树t的第i个动作对交际目标的贡献,我们在每个元素树的语义内容的每个 P(r1,...,rn )的effect中添加一个影响:¬ cg(P,ref(id(r1)),...,ref(id(rn ))) ;我们通过给每个语义内容元素的动作一个前提条件:skb(P,ref(id(r1)),...,ref(id(rn )))来严格表示只表达真值语句。 为了能确定以后的“指向”内容,保持跟踪节点标志和对象(individuals)之间的联系,对每个动作都为语义角色(除了rself)增加一个影响referent(id(r),ref(id(r))),下面就是“likes”的元素树:

完整的计划不仅对应着语法推导树,还能达到所有的交际目标。

4.4.2 指代表达式

因为一个指代表达式必须允许hearer能地确定意图指向,所以我们分别记录跟踪hearer的知识库。

像之前提到的 skb(P,a1,...,an )一样,这里使用了一个原子 hkb(P,a1,...,an )。另外,假定语用信息形式是pkb(P,a1,...,an )。这里我们将用到三个语用谓词:hearer-new,表明hearer不知道这个对象(individual)的存在,并且不能推导出它;hearer-old ,意思与hearer-new相反;contextset,一个意图指向的contextset是指hearer可能混淆的所有的对象(individual)集合。例说b是a的context set,我们在初始状态中使用原子pkb(contextset,a,b)。

除了语义内容,我们还给每一个元素树的语法上配备了语义要求和语用条件。语义要求是一个原子集合,它给元素树提供了一个“前提条件”,这个“前提条件”可以帮助hearer确定它的参数指代的是什么。比如“likes”就有一个严格要求是它的agent必须是动物。这就简化了hearer的选择,方便指代表达式的生成。

由于在推导过程中引入的每个替代节点都会引入一个新的指代表达式,这意味着我们能通过引入这个指代表达式的替代节点的身份来区分这些指代表达式。所以,对每个指代表达式u,给出一个原子distractor(u,x)。这个distractor(u,x)在一些规划状态中的存在,意味着目前的推导树信息量还不足以允许hearer单独地确定u的意图指向。有种情况是,有个a是另一个对象,它不是我们需要的那个意图指向,但它又符合我们目前为止构造的部分指代表达式,这样就可能会出现错误偏差,那么我们就为了确定所有指代表达式的唯一性,给规划目标添加∀ u,x ¬ distractor(u,x)。

图11和图12给出了例(2)的扩展语法和一些相应动作。

图11

扩展语法例子

图12 对应于图11中语法的一些动作

还有很多问题需要考虑。看了关于NLG的这些论文方法,以及它的挑战之处,认为要把它作为规划问题处理,那么:

问题一是用什么语法形式表示,像论文《Microplanning with Communicative Intentions:The SPUD System》中的LTAG,像论文《Sentence generation as a planning problem》中的LTAG转换到PDDL然后作为规划输入,这些表现形式是否就是最好的表现形式了? 问题二是怎样才能保证给出的逻辑状态是尽量的包含所有语义,语用,并符合所有应有句法的。NLG中有很多子任务,子问题,如内容规划,句子规划,句子规划中还有聚合,指代表达式,选词等等很多,是否能改进这些个别货几个子问题,效果就会更明显?

问题三是规划问题将状态,动作作为输入放到规划器,那么这个规划器又应该怎样设计才对这些形式的状态和动作效果最为好。SPUD使用贪婪算法和head-first,FF使用启发式算法等等,是否能设计一个更为妥当的规划器,使用的算法专门针对这个NLG领域的这些状态,动作呢?

目前最多的考虑应该在后两个问题上吧

自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。

因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,包括中文、英文、俄文、日文、德文、法文等等,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。

语言是人类区别其他动物的本质特性。在所有生物中,只有人类才具有语言能力。人类的多种智能都与语言有着密切的关系。人类的逻辑思维以语言为形式,人类的绝大部分知识也是以语言文字的形式记载和流传下来的。因而,它也是人工智能的一个重要,甚至核心部分。 用自然语言与计算机进行通信,这是人们长期以来所追求的。因为它既有明显的实际意义,同时也有重要的理论意义:人们可以用自己最习惯的语言来使用计算机,而无需再花大量的时间和精力去学习不很自然和习惯的各种计算机语言;人们也可通过它进一步了解人类的语言能力和智能的机制。

实现人机间自然语言通信意味着要使计算机既能理解自然语言文本的意义,也能以自然语言文本来表达给定的意图、思想等。前者称为自然语言理解,后者称为自然语言生成。因此,自然语言处理大体包括了自然语言理解和自然语言生成两个部分。历史上对自然语言理解研究得较多,而对自然语言生成研究得较少。但这种状况近年来已有所改变。

无论实现自然语言理解,还是自然语言生成,都远不如人们原来想象的那么简单,而是十分困难的。从目前的理论和技术现状看,通用的、高质量的自然语言处理系统,仍然是较长期的努力目标,但是针对一定应用,具有相当自然语言处理能力的实用系统已经出现,有些已商品化,甚至开始产业化。典型的例子有:种数据库和专家系统的自然语言接口、各种机器翻译系统、全文信息检索系统、自动文摘系统等。 自然语言处理,即实现人机间自然语言通信,或实现自然语言理解和自然语言生成是十分困难的。造成困难的根本原因是自然语言文本和对话的各个层次上广泛存在的各种各样的歧义性或多义性(ambiguity)。

一个中文文本从形式上看是由汉字(包括标点符号等)组成的一个字符串。由字可组成词,由词可组成词组,由词组可组成句子,进而由一些句子组成段、节、章、篇。无论在上述的各种层次:字(符)、词、词组、句子、段,……还是在下一层次向上一层次转变中都存在着歧义和多义现象,即形式上一样的一段字符串,在不同的场景或不同的语境下,可以理解成不同的词串、词组串等,并有不同的意义。一般情况下,它们中的大多数都是可以根据相应的语境和场景的规定而得到解决的。也就是说,从总体上说,并不存在歧义。这也就是我们平时并不感到自然语言歧义,和能用自然语言进行正确交流的原因。但是一方面,我们也看到,为了消解歧义,是需要极其大量的知识和进行推理的。如何将这些知识较完整地加以收集和整理出来;又如何找到合适的形式,将它们存入计算机系统中去;以及如何有效地利用它们来消除歧义,都是工作量极大且十分困难的工作。这不是少数人短时期内可以完成的,还有待长期的、系统的工作。

以上说的是,一个中文文本或一个汉字(含标点符号等)串可能有多个含义。它是自然语言理解中的主要困难和障碍。反过来,一个相同或相近的意义同样可以用多个中文文本或多个汉字串来表示。

因此,自然语言的形式(字符串)与其意义之间是一种多对多的关系。其实这也正是自然语言的魅力所在。但从计算机处理的角度看,我们必须消除歧义,而且有人认为它正是自然语言理解中的中心问题,即要把带有潜在歧义的自然语言输入转换成某种无歧义的计算机内部表示。

歧义现象的广泛存在使得消除它们需要大量的知识和推理,这就给基于语言学的方法、基于知识的方法带来了巨大的困难,因而以这些方法为主流的自然语言处理研究几十年来一方面在理论和方法方面取得了很多成就,但在能处理大规模真实文本的系统研制方面,成绩并不显著。研制的一些系统大多数是小规模的、研究性的演示系统。

大约90年代开始,自然语言处理领域发生了巨大的变化。这种变化的两个明显的特征是 (1)对系统输入,要求研制的自然语言处理系统能处理大规模的真实文本,而不是如以前的研究性系统那样,只能处理很少的词条和典型句子。只有这样,研制的系统才有真正的实用价值。

(2)对系统的输出,鉴于真实地理解自然语言是十分困难的,对系统并不要求能对自然语言文本进行深层的理解,但要能从中抽取有用的信息。例如,对自然语言文本进行自动地提取索引词,过滤,检索,自动提取重要信息,进行自动摘要等等。

同时,由于强调了“大规模”,强调了“真实文本”,下面两方面的基础性工作也得到了重视和加强。

(1)大规模真实语料库的研制。大规模的经过不同深度加工的真实文本的语料库,是研究自然语言统计性质的基础。没有它们,统计方法只能是无源之水。

(2)大规模、信息丰富的词典的编制工作。规模为几万,十几万,甚至几十万词,含有丰富的信息(如包含词的搭配信息)的计算机可用词典对自然语言处理的重要性是很明显的。 虽然上述新趋势给自然语言处理领域带来了成果,但从理论方法的角度看,由于采集、整理、表示和有效应用大量知识的困难,这些系统更依赖于统计学的方法和其他“简单”的方法或技巧。而这些统计学的方法和其他“简单”的方法似乎也快达到它们的极限了,因此,目前在自然语言处理界广泛争论的一个问题便是:要取得新的更大的进展,主要有待于理论上的突破呢,还是可由目前已有的方法的完善和优化实现?答案还不清楚。大致上,更多的语言学家倾向于前一种意见,而更多的工程师则倾向于后一种意见。回答或许在“中间”,即应将基于知识和推理的深层方法与基于统计等“浅层”方法结合起来。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务