# 深度学习_文本生成
**Repository Path**: liu-wenchao-1/deep-learningtext-creation
## Basic Information
- **Project Name**: 深度学习_文本生成
- **Description**: 深度学习课程的期末作业
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: https://gitee.com/liu-wenchao-1/deep-learningtext-creation.git
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-05-23
- **Last Updated**: 2025-05-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 基于长短期记忆网络的中文文本生成项目
## 项目简介
本项目旨在探索深度学习在中文文本生成中的应用效果,以《西游记》为语料基础,采用长短期记忆网络(LSTM)构建了一个文本生成模型。通过清洗数据、搭建模型、训练模型等步骤,最终实现了根据给定起始词生成具有一定连贯性和逻辑性的中文文本的功能。
### 项目文件结构:
###### 深度学习_文本生成/deep-learning-creation/
##### │
##### ├── train.txt # 清洗后的训练数据文件
##### ├── model/ # 模型保存文件夹
##### │ └── test_model.pth # 训练好的模型文件
##### │# 由于模型文件过大,无法上传
##### ├── README.md # 项目说明文件
##### ├── 文本生成.ipynb # 项目代码文件
##### └── 西游记,txt # 初始数据材料
## 项目依赖:
##### Python 3.10
##### PyTorch
##### jieba
##### numpy
##### torch
##### matplotlib
##### random
##### sacrebleu
##### gradio
##数据准备
本项目以《西游记》为语料基础,数据文件为 西游记.txt。在代码中,会对该文件进行清洗,包括去除无用符号、多余空格以及按句子和词语进行分割等操作,最终生成 train.txt 文件作为训练数据。
##模型构建
基于 PyTorch 框架,搭建了包含嵌入层、LSTM 层和线性层的神经网络模型。模型的具体结构如下表所示:
##### 层 输入维度 输出维度 其它参数 作用
##### 嵌入层 (batch_size, seq_length) (batch_size, seq_length, 512) vocab_size:48312
embed_size:512
##### 将词汇的索引转换为固定大小的密集向量,以便模型能够更好地捕捉词汇之间的语义关系。
##### LSTM层 (batch_size, seq_length, 512) (batch_size, seq_length, 1024) input_size:512
hidden_size:1024
num_layers:3
batch_first:True
dropout:0.5 负责对输入的文本序列进行编码,并捕捉序列中的长期依赖关系。加入了 dropout 机制以防止过拟合。
##### 线性层 (batch_size * seq_length, 1024)(batch_size * seq_length, 48312)in_features:1024
out_features:48312
bias:True
将 LSTM 层的输出转换为词汇表大小的向量,并通过 softmax 函数计算每个词汇的生成概率。
## 模型训练
在模型训练过程中,使用了交叉熵损失函数和 Adam 优化器。通过计算 BLEU 分数和困惑度等指标,动态调整训练参数,以优化模型性能。训练完成后,模型的参数会被保存到 model/test_model.pth 文件中。
## 模型使用
加载训练好的模型和词典后,可以通过调用 generate_text 函数来生成文本。该函数可以根据给定的起始词生成具有一定连贯性和逻辑性的文本内容。此外,还使用 Gradio 创建了一个简单的界面,方便用户输入起始词和生成文本长度,从而快速生成文本。
## 项目成果
实验结果表明,随着训练轮数的增加,模型的损失值逐渐降低,困惑度趋于稳定,BLEU 分数在部分轮次中达到较高值,表明生成文本与参考文本在一定程度上具有相似性。该研究展示了深度学习在自然语言处理领域的强大应用潜力,为中文文本生成提供了新的方法和思路。
未来工作
优化模型结构:尝试引入更多的深度学习技术,如 Transformer 架构、注意力机制等,进一步优化模型结构,提高模型的性能。
扩大训练数据规模:增加训练数据的规模和多样性,以提高模型对中文语言的理解能力和生成能力。
探索更多应用场景:将文本生成技术应用于更多的实际场景,如智能写作助手、内容创作平台等,为用户带来更加便捷和高效的文本创作体验。
提高生成文本的质量和多样性:通过改进模型的训练方法和优化策略,进一步提高生成文本的质量和多样性,使其更加自然、流畅且具有语义连贯性。
## 项目地址
https://gitee.com/liu-wenchao-1/text-generation.git