参考:https://www.jianshu.com/p/ffbd9abc5fff
NLG的常见形式
- text to text,如对话机器人
- data to text,如BI报告生成
- image to text,如图片自动描述
NLG的发展过程
- 简单的数据合并
- 模板化的 NLG
- 高级 NLG
NLG的6个步骤(传统处理方式)
-
第一步:内容确定 - Content Determination
作为第一步,NLG 系统需要决定哪些信息应该包含在正在构建的文本中,哪些不应该包含。通常数据中包含的信息比最终传达的信息要多。 -
第二步:文本结构 - Text Structuring
确定需要传达哪些信息后,NLG 系统需要合理的组织文本的顺序。例如在报道一场篮球比赛时,会优先表达「什么时间」「什么地点」「哪2支球队」,然后再表达「比赛的概况」,最后表达「比赛的结局」。 -
第三步:句子聚合 - Sentence Aggregation
不是每一条信息都需要一个独立的句子来表达,将多个信息合并到一个句子里表达可能会更加流畅,也更易于阅读。 -
第四步:语法化 - Lexicalisation
当每一句的内容确定下来后,就可以将这些信息组织成自然语言了。这个步骤会在各种信息之间加一些连接词,看起来更像是一个完整的句子。 -
第五步:参考表达式生成 - Referring Expression Generation|REG
这个步骤跟语法化很相似,都是选择一些单词和短语来构成一个完整的句子。不过他跟语法化的本质区别在于“REG需要识别出内容的领域,然后使用该领域(而不是其他领域)的词汇”。 -
第六步:语言实现 - Linguistic Realisation
最后,当所有相关的单词和短语都已经确定时,需要将它们组合起来形成一个结构良好的完整句子。
NLG技术汇总
1.传统方法
- 基于模版的NLG
- 基于树的NLG
2.基于语言模型
- Plan-Based NLG:语法树
- Class-Based LM:概率语言模型
- Phrase-Based
- Corpus based
3.基于深度学习
- RNN-Based LM
- Semantic Conditioned LSTM
- Structural NLG:seq2seq
- Contextual NLG:seq2seq,适合多轮对话
- Controlled Text Generation:基于GAN的NLG
- Transfer learning for NLG:用迁移学习做NLG