littlebot
Published on 2025-04-13 / 0 Visits
0

【源码】基于TensorFlow的人工智能写词机

项目简介

本项目借助TensorFlow框架,以《全宋词》作为训练数据,打造一个人工智能写词机。项目核心由word embedding和RNN训练两部分构成。在word embedding部分,参照TensorFlow官方代码对《全宋词》进行embedding处理;在RNN训练部分,需实现RNN网络搭建、数据处理与训练,让模型学会标点使用、记住词牌名字,最终达成写词功能。

项目的主要特性和功能

  1. 词嵌入(Word Embedding):把《全宋词》里的单字符转化为向量表示,通过训练获取embedding结果,并保存相关字典。
  2. RNN训练:构建RNN网络,对数据开展处理与训练,使模型掌握诗词的生成规律,生成包含有意义词、正确标点和词牌名的诗词。
  3. 诗词生成:运用训练好的模型,依据最近的checkpoint对三个词牌进行诗词生成。

安装使用步骤

前提条件

假设用户已下载本项目的源码文件,且已安装Python 3,建议先在本地运行得出一定结果,确保代码无误后再上传到TinyMind运行。

步骤

  1. word embedding部分
    • 因TinyMind对中文字体支持欠佳,此部分需在本地完成。
    • 运行代码约40W个step,在四核CPU上两三个小时左右可输出较好结果。
    • 运行完embedding脚本后会输出图片,满足图片中意义接近的词距离较近等条件可获得相应作业分数。
    • 使用np.save('embedding.npy', final_embeddings)保存最终生成的embeding,并使用json模块的save方法保存dictionary和reversed_dictionary。
  2. RNN训练部分
    • 实现train.py(训练)、utils.py(数据处理)、model.py(网络)中的相关代码。
    • 构建RNN网络可使用tf.nn.rnn_cell.DropoutWrappertf.nn.rnn_cell.BasicLSTMCelltf.nn.rnn_cell.MultiRNNCell等API。
    • RNN部分以embedding作为输入,hiddenunit取128。
    • 训练过程至少要到第二个epoch才能看到较有意义的输出。
    • 运行train_eval.py可在TinyMind上进行训练和采样,按默认设置运行一个epoch需19220步,约半小时。
  3. 诗词生成 运行sample.py,使用最近的checkpoint对三个词牌进行生成操作。由于TinyMind网页输出中文会转码,可将输出字符复制到Python命令行用print函数打印查看中文。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】