现代自然语言生成:(一) 研究背景

1、背景概述

自然语言处理 (NLP,natural language processing)
= 自然语言理解(NLU,natural language understanding) +自然语言生成( NLG,natural language generating)。

如何让机器“说出话”从而实现更方便、体验更好的人机交互系统,是NLG的最终目标之一。

2、基本定义与研究范畴

宽泛定义:在特定的交互目标下,从给定输入信息生成人类可读的语言文本的自动化过程。

输入:不同任务输入不同,包含下面四个维度<CG,UM,KB,CH>

  • CG 交互目标 Communicative Goal:服务于什么目的?
  • UM 用户模型 User Model : 生成内容的目标用户,涵盖了个性化语言生成任务:个性对话生成,广告语生成等
  • KB 任务相关的领域知识库 Knowledge Base:实体、关系、领域规则等信息
  • CH 上下文信息 Context History:需要考虑的输入信息

输出:一段可读的文本

3、NLG与NLU

NLU 自然语言理解:

  • 将文本转化为计算机能处理的文本内在表示。
  • 重在分析,理解输入文本的语义、意图。
  • 核心任务是在假设空间中选择一个或多个标记作为最后的答案。
  • 常见问题在于歧义(一词多义)和输入信息不足(字面信息意外的辅助信息)。

NLG 自然语言生成:

  • 将计算机能处理的文本内在表述转化为文本。
  • 重在规划和重构,从从往下的规划,包含派篇章、用语结构再到词的选择、风格等。
  • 核心问题是确定选择,即选择合适的信息、词汇来表达给定的信息。

4、传统的模块化生成框架

(1)内容规划 (Content Planning)
通常使用树状的层次结构表示,叶节点表示要生成的内容,树状结构组织内容在文本中的顺序

  • 内容选择(Content Determination):生成啥东西
  • 文本结构化(Text Structuring):表达信息的先后顺序

(2)句子规划(Sentence Planning)

从微观角度决定词汇和句法结构,怎么把内容描述出来。句子规划使用树状图实现,内部节点是句子结构,叶子节点表示单词和词语

  • 句子聚合(Sentence Aggregation):哪些信息需要出现在一个句子里面,哪些要分开来描述,提升文本的流畅性和可读性
  • 词汇化(Lexicalisation): 表达同样的意思有不同的表达方式,用合适的词语去描述信息,如通过上下文、情感等对词语施加约束

(3) 文本实现(Text Realization)

一般使用两种框架实现:

  • 针对小规模生成:手写模板或语法规则的方法,这种方法表示为带有占位符的文本表述:附近有 类型的餐馆 。前面的这句话中包含三个占位符,类似于NER,可以使用任意的实体进行替代:南京附近有小吃类型的餐馆南京大排档。
  • 基于统计的思想:
  • 候选文本(手写)+ 机器学习方法排序 + 模板
  • 大规模数据检索 + 语法规则 (大规模)

5、端到端的自然语言生成框架

6、典型的NLG任务

输入信息的形态

  • Text to Text:机翻、对话、故事、文本摘要、问题生成等
  • Data to Text:输入结构化数据(表格、键值对等),生成一段话
  • Meaning to Text:输入语义抽象表示和逻辑表达式生成一句话
  • Multimodality to Text:多模态输入生成一句话
  • Zero to Text:无约束文本生成。不给定输入,模型自由生成文本。一般用于测试基础模型。

信息转换

开放端语言生成(open-ended LG):输入信息不完整,不足以引导模型得到完善输出语义的任务。具体来说,比如故事生成,仅仅给定开头或者一些片段或者关键字,要求生成具备一定情节的故事。显然模型需要使用外部的信息。这类任务的特点是一对多,同一份输入,可能会出现多份输出。对话生成、长文本生成等都会出现这个问题。

非开放端语言生成 (NOE LG):输入信息在语义上提供了完备甚至更多的信息。比如机翻、GEC等任务,模型的创造性较低,只能生成规定的句子,有明确的评测指标。

7、NLG的可控性

生成模型的可控性是指:模型在给定输入条件下生成不符合预期的文本,这些文本在语法、用词、语义等方面不符合人类语言的规范或者事先给定的约束。

参考文献

《自然语言生成》黄民烈

posted @ 2022-08-20 16:25  朝南烟  阅读(197)  评论(0编辑  收藏  举报
body { color: #000; background-color: #e6e6e6; font-family: "Helvetica Neue",Helvetica,Verdana,Arial,sans-serif; font-size: 12px; min-height: 101%; background: url(https://images.cnblogs.com/cnblogs_com/caolanying/1841633/o_2009041…ly1geq8oc9owbj21hc0u0th5.jpg) fixed; } #home { margin: 0 auto; opacity: 0.8; width: 65%; min-width: 1080px; background-color: #fff; padding: 30px; margin-top: 50px; margin-bottom: 50px; box-shadow: 0 2px 6px rgba(100, 100, 100, 0.3); }