1. 项目概述:基于GRU的英文诗歌生成系统
作为一名长期从事AI项目开发的工程师,我最近完成了一个结合深度学习与文学创作的毕业设计项目——基于GRU神经网络的英文诗歌生成系统。这个项目不仅具有学术价值,还能为诗歌爱好者提供创作灵感。不同于传统的规则式诗歌生成器,我们采用深度学习技术让系统学会"创作"具有文学美感的英文诗歌。
在实际开发中,这个系统主要解决了三个核心问题:
- 如何让机器理解诗歌的韵律和情感特征
- 如何设计网络结构来捕捉诗歌的长期依赖关系
- 如何构建用户友好的交互界面
系统最终实现了从用户输入主题词自动生成多段式英文诗歌的功能,生成的诗歌在语法正确性和文学性上都达到了不错的水准。下面我将详细分享这个项目的技术实现细节和开发经验。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计
2.1 整体技术栈选择
在技术选型上,我们采用了前后端分离的架构模式:
后端技术栈:
- 框架:Spring Boot 2.7 + MyBatis Plus
- 深度学习:Python 3.8 + TensorFlow 2.6
- 数据库:MySQL 8.0
- 接口:RESTful API
前端技术栈:
- 框架:Vue 3 + Element Plus
- 构建工具:Vite
- 可视化:ECharts
选择这套技术栈主要基于以下考虑:
- Spring Boot提供了快速开发企业级应用的能力,内置Tomcat简化部署
- Vue 3的Composition API更适合复杂前端状态的维护
- TensorFlow 2.x对GRU等RNN网络有良好的支持
- MySQL作为成熟的关系型数据库,能满足诗歌语料存储需求
2.2 系统架构图
系统采用典型的三层架构:
code复制[前端界面] ←HTTP→ [Spring Boot后端] ←JDBC→ [MySQL数据库]
↑
[Python模型服务] ←gRPC→
这种架构的优势在于:
- 前后端完全解耦,可独立开发和部署
- Python负责计算密集型任务,Java负责业务逻辑
- gRPC保证了模型服务调用的高效性
3. 核心算法实现
3.1 GRU网络结构设计
GRU(Gated Recurrent Unit)是LSTM的一种变体,在保持相似性能的同时结构更简单。我们的GRU模型结构如下:
python复制model = tf.keras.Sequential([
tf.keras.layers.Embedding(vocab_size, 256),
tf.keras.layers.GRU(1024, return_sequences=True),
tf.keras.layers.Dropout(0.3),
tf.keras.layers.GRU(512),
tf.keras.layers.Dense(512, activation='relu'),
tf.keras.layers.Dense(vocab_size)
])
关键参数说明:
- Embedding层维度:256(平衡表达能力和计算成本)
- 第一层GRU单元数:1024(捕捉长期依赖)
- 第二层GRU单元数:512
