首页 > 其他分享 >现代自然语言生成:(一) 研究背景

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

时间:2022-08-20 16:33:14浏览次数:60  
标签:自然语言 背景 信息 生成 Text 文本 输入

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的可控性

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

参考文献

《自然语言生成》黄民烈

标签:自然语言,背景,信息,生成,Text,文本,输入
From: https://www.cnblogs.com/caolanying/p/16607593.html

相关文章

  • spring源码学习笔记1——解析xml生成BeanDefinition的过程解析
    spring源码学习笔记1——解析xml生成BeanDefinition的过程解析一丶Spring解析Xml生成BeanDefinition的流程1.指定xml路径解析xml首先需要知道xml的位置,如下我们构造了Ap......
  • Winform生成子窗口
    FormEdit:子窗口的构造函数;this.cabinet:传给子窗口的值FormEditform2=newFormEdit(this.cabinet);form2.StartPosition=FormStartPosition.CenterPa......
  • webgl(threejs)生成房间楼层
    楔子在很多数字孪生项目中,都会涉及到楼层的建模。楼层的建模由于结构繁多,如果都是建模师进行手动建模,工作量会比较大。而楼层本身的结构,可以抽象成可以通过路径构造的对象......
  • Python快速生成无用大文件(GB)
    importtimedefcreatfilesize(n):local_time=time.strftime("%Y%m%d%H%M%S",time.localtime())file_name=r"D:\data\test\\"+str(local_time)+".txt"......
  • NXP GUI-Guider,lvgl的好伴侣 拖曳式设计并自动生成代码,而且还可以当模拟器练习代码,
    GUIGuider是恩智浦提供的用户友好型图形用户界面开发工具,可通过开源LVGL图形库快速开发高品质的显示。GUIGuider的拖放编辑器可以轻松利用LVGL的众多特性,如小部件、动画......
  • Intellij IDEA 快速生成注释模板教程
    生成类注释File–>settings–>Editor–>FileandCodeTemplates–>Class(1)@BelongsProject:当前项目的名称(2)@BelongsPackage:当前包的名称(3)@Author:作者姓名(可以写死,写成......
  • 前端小工具----一键生成产品报告
    产品报告具有特定的格式,非常适合机器生成......
  • python 中生成列表矩阵
     001、>>>[[0]*5foriinrange(3)]##生成3行5列,元素为0的矩阵[[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]] 002、>>>......
  • MybatisPlus——全网配置最全的代码生成器
    MybatisPlus代码生成器这里讲解的是新版(mybatis-plus3.5.1+版本),旧版不兼容官方文档:https://baomidou.com/(建议多看看官方文档,每种功能里面都有讲解)配置这里的配置......
  • 生成JavaDoc
    1.第一步:首先创建一个新的文件夹。2.第二步:选中所要生成的包。3.第三步:点击键盘shift两下,搜索tools,并选择生成javadoc(GenerateJavaDoc)这个选项。4.第四部:红色圈的都......