智能写作-经典自然语言生成算法

编辑:pitaya02        日期:2020-09-14

在深度神经网络算法出现之前,经典自然语言生成(NLG,Natural Language Generation)算法[1]可以抽象为一个流水线,其中包括三个核心步骤:篇章规划、微观规划和表层实现。下面以一场火龙果自动写作撰写的中超足球比赛战报为例,描述经典NLG算法过程。



步骤1——篇章规划: 这一步骤解决“写什么”的问题,对于一场足球比赛,有大量的比赛数据、技术统计、文字直播等,其中只有最重要的部分需要在最终的写作结果中体现。


因此,篇章规划步骤需要决定最终写作结果的标题、段落布局,以及每个文章部分对应的输入素材。在这个例子中,一个完整的战报可以分为四个段落:


综述:包括比赛时间、地点、轮次、对阵双方、比赛结果、历史战绩等


上半场:包括上半场的关键比赛事件


下半场:包括下半场的关键比赛事件


技术统计:包括双方的重要技术统计和对比


步骤2——微观规划:这一步骤解决“如何写”的问题,利用输入素材具体生成每个句子,在经典NLG算法中,常用模板写作(Template-based Generation)完成这一步骤。在缺乏训练数据,或对写作结果可控性有强要求的场景下,基于人工挖掘或定义的模板,结合数据即可得到写作结果。最简单的模板可以是句子+槽位的组合,但通常需要借助形式语言技术,基于完备的语法树定义对模板做规范化,以支持多样性和丰富的模板写作结果。


步骤3——表层实现:微观规划得到的结果通常不是自然语言,而是语法树等包含语法结构信息的结果。因此,“表层实现”步骤解决“如何形成符合人类习惯的自然语言”的问题。例如,将微观规划结果直接转换为自然语言,常会残存一些算法的痕迹,即不完全符合人类写作习惯的细节,例如:“特谢拉接到队友横传”、“特谢拉右脚推射破门”这两个句子都是由数据素材生成的正确句子,但是直接组合成一个长句就会存在问题。


而在表层实现中,要将已生成的结果,按照符合人类表达习惯的方式进一步完善。表层实现步骤根据要处理的问题不同,会对应很多具体算法,其中比较典型的一个例子是指代生成(Referring Expression Generation),这类方法可以识别需要替换为代词的实体,从而更符合人类的写作习惯。


经典NLG算法在自动写作的几种应用形态中均有使用,特别在结构化数据写作中,经典NLG算法因其良好的可解释性和可控性,是当前实际工业生产环境中最常用的方法。火龙果智能写作是全球第一款中英双语语法检查校对产品,运用火龙果智能写作技术进行错别字文本校对,除错别字校对以外,还可以对语法、标点等进行校对。

火龙果智能写作官网https://www.mypitaya.com

积极拥抱变化,才能更好的应对这个时代



智能写作-火龙果智能写作的底层思考,智能写作的核心逻辑