自然语言生成

自然语言生成（NLG）是自然语言处理的一部分，从知识库或逻辑形式等等机器表述系统去生成自然语言。这种形式表述当作心理表述的模型时，心理语言学家会选用语言产出这个术语。
自然语言生成系统可以说是一种将资料转换成自然语言表述的翻译器。不过产生最终语言的方法不同于编译程式，因为自然语言多样的表达。NLG出现已久，但是商业NLG技术直到最近才变得普及。
自然语言生成可以视为自然语言理解的反向： 自然语言理解系统须要厘清输入句的意涵，从而产生机器表述语言；自然语言生成系统须要决定如何把概念转化成语言。
一个简单的例子是套用信函的生成系统。这种系统通常没有运用文法的知识，但是可以生成信函给消费者，例如告诉消费者信用卡的额度已达。换言之，简单的系统运用版型，跟Word文件的邮件合并程式没什么差别，但是更复杂的NLG系统会灵活地产生文本。
正如自然语言处理的其它领域，自然语言生成可以使用明确的语言模型（例如文法）或者运用根据真人所写的文本分析而成的统计模型。

示例

“苏格兰花粉预报系统”就是一个基于版型的简单自然语言生成系统。该系统利用苏格兰几个区域花粉预报的六个输入数目，生成简短的花粉等级文本作为输出。
例如使用2005年7月1日的历史资料，该软件的输出：
星期五花粉等级已从昨天的中级到今天的高级，全国大部分地区的数值在6到7。不过北部是中级，数值为4。
对比实际的预报（气象员手拟）如下：
苏格兰大部分地区花粉量还是很高，为6级，东南部更是7级。只有北方岛屿及苏格兰东北角情况舒缓，花粉量中等。

步骤

生成文本的过程可以简单到取用已准备好的章句，再用连结的文字组合起来。在简单的领域如占星机器或个人化商业信件，成果可能令人满意。不过复杂的自然语言生成系统必须经过规划以及合并资讯的步骤，从而生成看似自然并且避免重复的文本。自然语言生成典型的步骤，例如戴尔与瑞特所提出的如下：
决定内容：决定在文本里置入哪些资讯。用上一节花粉预报软件为例，是否要明确提到东南部花粉级数为7。
架构文件：所传达资讯的整体组织。例如决定先描述高花粉量地区，再提及低花粉量地区。
聚集语句：合并类似的句子，让文本更可读、更自然。例如合并下两个句子“星期五花粉等级已从昨天的中级到今天的高级”和“全国大部分地区的花粉等级在6到7”成为“星期五花粉等级已从昨天的中级到今天的高级，全国大部分地区的数值在6到7。”
选择字词：选用表达概念的文字。例如决定要用“中等”还是“中级”。
指涉语生成：产生能辨认物体或地区的指涉语。例如用“北方岛屿和苏格兰东北角”指涉苏格兰的某个地区。这个任务也包括决定代名词以及其它的照应语。
实现文本：根据语法学、构词学、正写法的规则产生实际的文本。

应用

大众媒体向来以报导会说笑话的NLG系统为重点（参见“计算幽默”），不过从商业的角度，最成功的NLG应用是从数据库或资料集产生文字摘要的“资料转文本”系统，这些系统通常除了文字生成外，也进行资料分析，特别是几个已经建成的从气象资料产生气象报告文的系统。此类系统最早是加拿大的FoG，于1990年代开始制作英、法语的气象报告，其成功引领了其它研究和商业系统。近年的一个研究显示，使用者有时候偏好电脑产生的气象报告，因为使用的术语比较一致。另一个研究显示统计的技巧可以用来生成高品质的气象报告。
1990年代自然语言生成开始用于财金和商业摘要。例如AC尼尔森研发的SPOTLIGHT系统，分析大量零售资料然后自动产生可读的英文。
更近的NLG也用于摘要电子医疗记录，已有商业应用问世，研究人员已显示NLG摘要的医疗资料可以有效辅助医疗专业人员做决定。
内容生成系统可以辅助真人作者，让写作过程更有效率。例如利用搜索引擎应用界面，基于网络探勘建立的内容生成工具，模拟作者根据各种搜寻结果形成内容，有如剪贴的写作场景。相关度的验证，对于过滤不相关的搜寻结果至为重要，方法基于匹配问题与可能答案的语法树。另一种方法利用真人写的文本建立高层次结构的版型，然后自动写成维基百科新的条目。