文本生成与预测是自然语言处理中一个重要的研究领域,具有广阔的应用前景,例如通过输入法或者检索框打字时预测下一个单词或者文字。然后人们的喜好和习惯不尽相同,传统的预测方法难以有很好的预测效果。而随着深度神经网络的发展与应用,利用深度神经网络模型的文本预测系统识别准确率和速度也极大地提高。本文训练并评估了最为流行的深度神经网络预测模型,并设计了一个单词预测系统,使用前后端分离技术,前端是一个可视化网页界面,后端采用多个深度学习模型,方便评估模型效果。
文本生成与预测是自然语言处理中一个重要的研究领域[1] [2], 具有广阔的应用前景。
国内外已经有诸如Automated Insights、Narrative Science 以及“小南”机器人和“小明”机器人等文本生成系统投入使用。这些系统根据格式化数据或自然语言文本生成新闻、财报或者其他解释性文本。例如,Automated Insights 的WordSmith 技术已经被美联社等机构使用, 帮助美联社报道大学橄榄球赛事、公司财报等新闻。
这使得美联社不仅新闻更新速度更快,而且在人力资源不变的情况下扩大了其在公司财报方面报道的覆盖面。
2. 相关理论 2.1. 单词预测 单词预测是典型NLP [3] [4]任务,其在生活中具有很多应用,如输入法的实时辅助输入系统,古书籍缺失文字修复等。这种预测的思路就是把整个句子看作是一个概率模型,下一个词是什么的概率是由前面的次序列所决定的。下面是整个句子产生的概率: ()()111, , |IiiiP XP xxx −== ∏ (1) 那么预测下一个单词就可以表示为: ()11ˆarg max, , |ixiixP xxx −= (2) 2.2. LSTM 从循环神经网络RNN [2] (Recurrent Neural Network)说起,这是一种用于处理序列数据的神经网络, 常用语NLP [3]等领域。
最普通的RNN 主要形式如图1 所示,这里x 为当前状态输入,h 为接收到的上一节点输入;y 为当前状态输出,h'为传递到下一节点输出,可以看到输出h'与x 和h 的值都相关。
而长短时记忆LSTM [4] (Long short-term memory)是一种特殊的RNN,主要为了解决长序列训练过程的梯度消失和梯度爆炸问题,即相比于普通RNN,LSTM 能在更长的序列中有更好的表现。
LSTM 的结构及其和普通RNN 得对比如图2 所示。