项目简介
本项目以TensorFlow为框架,以《全宋词》作为训练数据,实现了人工智能写词机。项目包含词嵌入(word embedding)生成与RNN模型训练两部分,词嵌入将宋词单字映射为向量,帮助模型理解语义关系;RNN模型通过学习《全宋词》文本数据来生成新词。
项目的主要特性和功能
- 词嵌入生成:运用词嵌入技术,将宋词里的每个单字转化为连续向量表示,便于模型掌握词语语义关联。
- RNN模型训练:借助TensorFlow构建RNN模型,以《全宋词》为蓝本进行训练,从而生成类似的新词。
- 可视化展示:利用T - SNE降维技术对高维词向量进行降维,以二维形式可视化呈现词向量语义关系。
安装使用步骤
环境准备
确保系统已安装Python和TensorFlow框架,建议使用Python 3,其对UTF - 8编码支持更好,且官方对Python 2的支持接近尾声。
下载源码
已假设用户已经下载了本项目的源码文件。
数据处理
- 不进行分词,将每个单字符当作一个word。
- 只取出现次数最多的前5000个单字符。
- 用json模块的save方法保存生成的dictionary和reversed_dictionary。
- 若使用matplotlib输出中文,需自行设置避免乱码。
- 运行40W个step可得到较好结果,四核CPU约需两三个小时。
- 训练时不对文本做空格、换行、标点符号等处理。
模型训练
使用model.py
和train.py
中的代码构建并训练RNN模型。根据自身计算资源调整学习率、批次大小等参数。构建RNN网络时,可参考以下API:
- tf.nn.rnn_cell.DropoutWrapper
- tf.nn.rnn_cell.BasicLSTMCell
- tf.nn.rnn_cell.MultiRNNCell
模型评估与可视化
训练过程中,用train_eval.py
脚本观察训练进度和性能。训练完成后,使用sample.py
脚本生成新的宋词,并通过word_embedding.py
中的可视化工具查看词向量分布。
注:因项目复杂,推荐在本地运行,并准备充足计算资源。TinyMind上运行可能需额外设置且有费用,初始运行建议使用CPU资源,待代码无误后再启用GPU。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】