记得两年多以前,在网上看到一个关于机器生成诗歌的新闻,感觉好神奇。
工作之后开始用pytorch框架,忙里偷闲,自己也试做了这样一个模型。
先展示一下模型生成的两首五言诗(以‘宅女姜璐’以及‘宅女胡盼’为藏头):
宅中逢圣主,天子在中州。
女娲将军幕,胡兵入汉廷。
姜旌连赛路,旌旎入城隅。
璐落三千里,旌旗万里余。
宅中无一酣,家有一壶酒。
女子不相识,君家亦有谁。
胡为白马走,不见白头看。
盼然无所为,今日无人知。
虽然不知讲了些什么,咋眼看去,貌似还行吧(作为一个文学院出来的同学,我的要求有点低哈)。
下面介绍下模型的实现过程。大致可以概括成:对训练数据进行预处理(将每首诗加上开头和结束标志);搭建一个lstm的模型;训练模型;调用训练好的模型,设置一个生成藏头诗的函数。
因为这是关于诗的语言生成,也并没有什么特写的评价指标,每次epoch都保存模型,到时候都试试看生成的诗是什么样子,只能用肉眼来分辨了。
1.
诗词预处理。关于诗词的资料可以去网上下载,毕竟还是有很多文学爱好者的。
将每首诗标上起始和终止符号,因为都选用五言诗,就不必考虑每首诗的长度问题了。然后将诗由字变成数(不用分词,因为诗就是以字为单位的呀)。这个部分相对于其它项目,还是挺简单的。
2.
设置一些基本参数,比如存放路径,学习率,是否是gpu,weig