基于循环神经网络基于循环神经网络(RNN)的古诗生成器的古诗生成器
基于循环神经网络(RNN)的古诗生成器,具体内容如下
之前在手机百度上看到有个“为你写诗”功能,能够随机生成古诗,当时感觉很酷炫= =
在学习了深度学习后,了解了一下原理,打算自己做个实现练练手,于是,就有了这个项目。文中如有瑕疵纰漏之处,还请路
过的诸位大佬不吝赐教,万分感谢!
使用循环神经网络实现的古诗生成器,能够完成古体诗的自动生成。我简单地训练了一下,格式是对上了,至于意境么。。。
emmm,呵呵
举一下模型测试结果例子:
1.生成古体诗
示例1:
树阴飞尽水三依,谩自为能厚景奇。
莫怪仙舟欲西望,楚人今此惜春风。
示例2:
岩外前苗点有泉,紫崖烟霭碧芊芊。
似僧月明秋更好,一踪颜事欲犹伤?
2.生成藏头诗(以“神策”为例)
示例1:
神照隆祭测馨尘,策紫珑氲羽团娟。
示例2:
神辇莺满花台潭,策穷渐见仙君地。
下面记录项目实现过程(由于都是文本处理方面,跟前一个项目存在很多类似的内容,对于这部分内容,我就只简单提一下,
不展开了,新的东西再具体说):
1.数据预处理数据预处理
数据集使用四万首的唐诗训练集,可以点击这里进行下载。
数据预处理的过程与前一个项目TensorFlow练手项目一:使用循环神经网络(RNN)实现影评情感分类大同小异,可以参考前
一个项目,这里就不多说了,直接上代码。
# -*- coding: utf-8 -*-
# @Time : 18-3-13 上午11:04
# @Author : AaronJny
# @Email : Aaron__7@163.com
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import collections
ORIGIN_DATA = 'origin_data/poetry.txt' # 源数据路径
OUTPUT_DATA = 'processed_data/poetry.txt' # 输出向量路径
VOCAB_DATA = 'vocab/poetry.vocab'
def word_to_id(word, id_dict):
if word in id_dict:
return id_dict[word] else:
return id_dict['<unknow>']
poetry_list = [] # 存放唐诗的数组
# 从文件中读取唐诗
with open(ORIGIN_DATA, 'r') as f: