在本节中,我们将学习如何生成类似于莎士比亚风格的文本。核心思想非常简单:以莎士比亚写的真实文本作为输入,并输入到即将要训练的 RNN 中;然后,用训练好的模型来生成新文本,这些文本看起来像是英国最伟大的作家所写的。
为了简单起见,这里将使用基于 TensorFlow 运行的框架 TFLearn,这里所使用的例子只是标准版的一部分(参考https://github.com/tflearn/tflearn/blob/master/examples/nlp/lstm_generator_shakespeare.py),所开发的模型是字符级 RNN 语言模型,考虑的序列则是字符序列而不是单词序列。
当一件新的未知或遗忘的艺术作品需要被鉴定归于某位作者时,就会有著名学者将这件作品与作者的其他作品进行比较。学者们所做的是在作者已知作品的文本序列中寻找共同特征,并希望在鉴定作品中找到相似的特征。本节的工作方式与之前的相似:RNN 学习莎士比亚作品中的特征,然后这些特征被用来产生新的、从未见过的文本,这些文本很好地代表了最伟大的英国作家的写作风格。来看执行示例:
第一次迭代,此时,网络正在学习一些基本结构,包括虚拟人物(DIA、SURYONT、HRNTLGIPRMAR和ARILEN)的对话,但是英语水平还很糟糕,很多单词并不是真正的英文:
经过几次迭代,此时,网络正在学习对话的正确结构,使写出来的英语看起来更像正确的句子,例如:Well,there shall the things to need the offer to our heart和There is not that be so then to the death To make the body and all the mind: