littlebot
Published on 2025-04-08 / 2 Visits
0

【源码】基于TensorFlow框架的宋词生成器

项目简介

本项目以TensorFlow为框架,以《全宋词》作为训练数据,实现了人工智能写词机。项目包含词嵌入(word embedding)生成与RNN模型训练两部分,词嵌入将宋词单字映射为向量,帮助模型理解语义关系;RNN模型通过学习《全宋词》文本数据来生成新词。

项目的主要特性和功能

  1. 词嵌入生成:运用词嵌入技术,将宋词里的每个单字转化为连续向量表示,便于模型掌握词语语义关联。
  2. RNN模型训练:借助TensorFlow构建RNN模型,以《全宋词》为蓝本进行训练,从而生成类似的新词。
  3. 可视化展示:利用T - SNE降维技术对高维词向量进行降维,以二维形式可视化呈现词向量语义关系。

安装使用步骤

环境准备

确保系统已安装Python和TensorFlow框架,建议使用Python 3,其对UTF - 8编码支持更好,且官方对Python 2的支持接近尾声。

下载源码

已假设用户已经下载了本项目的源码文件。

数据处理

  • 不进行分词,将每个单字符当作一个word。
  • 只取出现次数最多的前5000个单字符。
  • 用json模块的save方法保存生成的dictionary和reversed_dictionary。
  • 若使用matplotlib输出中文,需自行设置避免乱码。
  • 运行40W个step可得到较好结果,四核CPU约需两三个小时。
  • 训练时不对文本做空格、换行、标点符号等处理。

模型训练

使用model.pytrain.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】