NLP-语言生成
NLP|自然语言生成(NLG)
一. NLG概述
1.定义:自然语言生成是研究使计算机具有人一样的表达和写作的功能,即能够根据一些关键信息及其在机器内部的表达形式,来自动生成一段高质量的自然语言文本。
2.分类:按照输入可以分成如下几类:
文本到文本的生成(text-to-text generation)
意义到文本的生成(meaning-to-text generation)
数据到文本的生成(data-to-text generation)
图像到文本的生成(image-to-text generation)
3.NLG应用:
论文写作:
MIT计算机科学与人工智能实验室三位研究生联合编写了SCIgen- An Automatic CS Paper Generator,该应用只需输入作者名,就可以生成“SCI级别”的computer science论文
在2005年,机器论文Rooter: A Methodology for the Typical Unification of Access Points and Redundancy被WMSCI会议所接收
2008年和2009年中国武汉举办的两个IEEE国际会议投稿,还获得高度评价
摘要生成:
Summly是一款由一个17岁少年独立开发的新闻摘要应用,Summly无需人工帮助可将新闻内容提炼为不足400词的摘要文章,使得用户只需花上不到一分钟的时间就可以了解新闻中最关键的信息
自动作诗:
清华大学语音与语言实验中心(CSLT)研发的做诗机器人“薇薇”,在社科院等专家的评定中,通过了图灵测试。其创作的诗词,有31%被认为是人所创作。另外,在人机诗词写作大赛中,薇薇仅是以2.72分(满分5分)的平均分败给了现代人类诗人(3.20分)。
新闻写作、报告生成...
二. 数据到文本的生成
1.定义:根据给定的数值数据生成相关文本,例如基于数值数据生成天气预报文本、体育新闻、财经报道、医疗报告等
2.简单示例:
数据:
天气:晴 ;温度:19-26 ℃ ;湿度:83%
文本:
今天是个好晴天,温度适宜,宜户外活动 ……
3.英国阿伯丁大学的 Ehud Reiter 在三阶段流水线模型:

信号分析模块(Signal Analysis)的输入为数值数据,通过利用各种数据分析方法检测数据中的基本模式,输出离散数据模式。例如股票数据中的峰值,较长期的增长趋势等。该模块与具体应用领域和数据类型相关,针对不同的应用领域与数据类型所输出的数据模式是不同的。
数据阐释模块(Data Interpretation)的输入为基本模式与事件,通过对基本模式和输入事件进行分析,推断出更加复杂和抽象的消息,同时推断出它们之间的关系,最后输出高层消息以及消息之间的关系。例如针对股票数据,如果跌幅超过某个值则可以创建一条消息。还需要检测消息之间的关系,例如因果关系、时序关系等。值得说明的是,数据阐释模块并不是在所有文本生成系统中都需要,例如,在天气预报文本生成系统中,基本的模式足以满足要求,因此并不需要采用数据阐释模块。
文档规划模块(Document Planning)的输入为消息及关系,分析决定哪些消息和关系需要在文本中提及,同时要确定文本的结构,最后输出需要提及的消息以及文档结构。从更高的层次来说,信号分析与数据阐释模块会产生大量的消息、模式和事件,但文本通常长度受限,只能描述其中的一部分,因此文档规划模块必须确定文本中需要说明的消息。一般可根据专家知识、消息的重要性、新颖性等来进行选择和确定。当然,该模块与领域也很相关,不同领域中对消息的选择所考虑的因素不一样,文档的结构也会不一样。
微规划与实现(Microplanning and Realisation)模块的输入为选中的消息及结构,通过自然语言生成技术输出最终的文本。该模块主要涉及到对句子进行规划以及句子实现,要求最终实现的句子具有正确的语法、形态和拼写,同时采用准确的指代表达。所采用的技术在学术界有相当多的研究,具体可参考本文第 3 节“意义到文本的生成”。