1.1 文本生成问题
文本生成是自然语言处理中一个重要的研究领域,具有广阔的应用前景。国内外已经有诸如Automated Insights、Narrative Science以及“小南”机器人、“小明”机器人、“运动报道机器人”等文本生成系统投入使用。这些系统根据格式化数据或自然语言文本生成新闻、财报或者其他解释性文本。例如,Automated Insights的WordSmith技术已经被美联社等机构使用,帮助美联社报道大学橄榄球赛事、公司财报等新闻。这使得美联社不仅新闻更新速度更快,而且在人力资源不变的情况下扩大了其在公司财报方面报道的覆盖面。
解决这个问题的深度学习模型,最常见的是借助于语言模型,或者seq2seq这种encoder-decoder模型。我们这里使用最经典的语言模型,借助LSTM构建一个AI文本生成器。
1.2 文本生成原理
1.3 关于数据源
本项目更丰富的数据源可以在诗词github取到,感谢github作者的分享。
1.4 诗词生成器
导入库
每行数据是一首诗,冒号前是题目,冒号后是诗句。
首春:寒随穷律变,春逐鸟声开。初风飘带柳,晚雪间花梅。碧林青旧竹,绿沼翠新苔。芝田初雁去,绮树巧莺来。
初晴落景:晚霞聊自怡,初晴弥可喜。日晃百花色,风动千林翠。池鱼跃不同,园鸟声还异。寄言博通者,知予物外志。
初夏:一朝春夏改,隔夜鸟花迁。阴阳深浅叶,晓夕重轻烟。哢莺犹响殿,横丝正网天。珮高兰影接,绶细草纹连。碧鳞惊棹侧,玄燕舞檐前。何必汾阳处,始复有山泉。
度秋:夏律昨留灰,秋箭今移晷。峨嵋岫初出,洞庭波渐起。桂白发幽岩,菊黄开灞涘。运流方可叹,含毫属微理。
仪鸾殿早秋:寒惊蓟门叶,秋发小山枝。松阴背日转,竹影避风移。提壶菊花岸,高兴芙蓉池。欲知凉气早,巢空燕不窥。
文本预处理
(对于古典诗歌,不做分词。)
构建LSTM模型
自定义自由度,四种预估模式(根据首句、根据首字、根据前max_len个字、藏头诗)
看下模型预测效果如何
第一行为: 翁夜往还。争
争音常开台,云来清子恩。日天扉青家,夏作浮音为。
第一行为: 啄江海隅。争
争空谁上尽,云云中林翠。日落危西烟,夏更无长塞。
第一行为: 珠坠还结。争
争独望云落,云华北山山。日远仙入还,夏红游长无。
第一行为: 山为斜好几,
山为斜好几,风外风玉正。东云水赏叶,先松句断采。
第一行为: 山为斜好几,
山为斜好几,隐公帝碧自。开夜知孤满,下且露落鸟。
第一行为: 山为斜好几,
山为斜好几,六池如中田。阙露奇雪前,然十盛空不。
山家光出观,隐黄戎识移。愿传兰重弦,飞方来凤为。
山迹几星道,寒行极幽直。方朝蝉家复,人经识子木。
山溪二屡正,归飞情尽宅。山未子华帝,花云新酒三。