基于深度学习的歌词和古诗自动生成系统设计

基于深度学习的歌词和古诗自动生成系统设计


2024年4月14日发(作者:)

2021年1月10日

第5卷第1期

DOI:10.19850/.2096-4706.2021.01.006

现代信息科技

Modern Information Technology

Jan.2021

Vol.5

No.1

基于深度学习的歌词和古诗自动生成系统设计

彭涛

江西青年职业学院

江西 南昌 330045

摘 要

文本生成技术在近年开始深受研究者的青睐

其中就包括了古诗和歌词的自动生成

文章设计了一个基于深度学

习的歌词与古诗自动生成系统

生成过程主要包括了数据预处理

歌词和古诗生成模型搭建

歌词和古诗生成模型训练

使用训

练好的模型生成歌词和古诗

通过测试

该歌词和古诗生成系统比传统的机器写作系统效果更好

语义更准确

关键词

自动生成

深度学习

训练模型

中图分类号

TP391.41 文献标识码

A 文章编号

2096-4706

2021

01-0025-03

Design of Automatic Generation System of Lyrics and Ancient Poems

Based on Deep Learning

PENG Tao

(Jiangxi Youth Vocational College,Nanchang 330045,China)

of ancient poems and lyrics. This paper designs an automatic generation system of lyrics and ancient poems based on deep learning. The

generation model training,using the trained model to generate lyrics and ancient poems. Through the test,the lyrics and ancient poems

generation system has better effect and more accurate semantics than the traditional machine writing system.

Abstract:

Text generation technology has been deeply loved by researchers in recent years,including the automatic generation

generation process mainly includes data preprocessing,lyrics and ancient poems generation model building,lyrics and ancient poems

Keywords:

automatic generation;deep learning;training model

0 引 言

古诗作为中国古代文学艺术的结晶

是中华民族文化艺

术宝库中非常重要的部分

那些历久弥新的古诗展示了古代

文人墨客的多彩生活

更包含了中国国民精神的全部符码

歌词作为音乐的核心

美妙的音乐必然少不了高品质的歌

所以歌词和古诗自动生成技术的研究是非常有意义的

笔者在教授计算机课程过程中

发现班上一些学生对歌词和

古诗也很感兴趣

在业余时间

就带领这些学生利用所学的

深度学习知识设计开发了歌词和古诗自动生成系统

该系统

已经进入测试阶段

目前能够较好地完成歌词和古诗自动生

该系统的开发

不但将所学知识应用于实践

让学生体

会到所学知识的用武之地

还陶冶学生了情操

积极响应国

家提出的课程思政教育

积极推进素质教育

对于古诗生成来说

可以利用关键字生成古诗或者藏头诗

用户可以自己输入关键字

非常的方便

生成的古诗格式是

保证正确的

系统流程图如图1所示

开始

歌词生成

选择歌词或

古诗生成

古诗

输入关键字

对文字进行古诗

模型处理

输出古诗

古诗生成

输入歌词前奏

对文字进行歌词

模型处理

输出歌词

选择古诗或

藏头诗

藏头诗

输入4个关键字

对文字进行

藏头诗模型处理

输出藏头诗

1 系统功能概述

基于深度学习的歌词和古诗自动生成系统是通过神经网

络对数据集进行学习和语义分析后训练出模型

再利用模型

和GUI图形界面为用户提供古诗和歌词生成服务的系统

对于歌词生成来说

用户需要先输入10个字作为歌词的前

系统会根据前10个字预测下一个字

以此类推

当然

系统会自动分析一句歌词什么时候结束

用户可以根据自己

的喜好生成大量的歌词文本

再加以修饰

效果就会非常好

结束

图1 系统流程图

本系统的核心功能

1

生成歌词

通过用户输入的歌词前奏

利用系统

的模型生成歌词文本

2

生成古诗

通过用户输入关键字

利用模型生成

意境相似的古诗

2021.1

收稿日期

2020-12-18

25

第1期

3

生成藏头诗

通过用户输入4个关键字

利用模

型生成藏头诗

基于深度学习的歌词和古诗自动生成系统由多个模块构

总体可以分为服务于LSTM神经网络的数据预处理模

LSTM神经网络模块和GUI服务模块

数据预处理模

块主要是对3.4万首中文歌词和10.6万首传统古诗进行预处

转换成One-Hot编码

神经网络才能进行矩阵计算

LSTM神经网络模块是最核心的模块

该模块是歌词和

古诗生成最关键的部分

训练参数的选择十分重要

需要通

过不断进行对比

调参

记录损失值和准确率来最终确定模

型参数

通过用户交互界面

方便用户使用该系统

在LSTM神经网络模块中分为训练模块和生成模块

首先必须有足够的数据用于训练模块

该模块是最重要的模

训练之后要保存模型

用于重构模型以生成歌词和古

可以说训练模块的独立的

最终只有生成模块会有数据

交互

同时与GUI界面关联起来

本系统的神经网络结构

使用的是RNN循环神经网络以及LSTM长短期记忆模型用

于训练

深度学习框架使用TensorFlow和Keras

激活函数使

用softmax

损失函数使用交叉熵损失函数和sequence_loss

函数

优化器使用Adam

本文使用中华诗词库和3.4万首中文歌两个数据集进行

训练和效果测试

建立两个文本生成模型并进行训练

学习

得到较优的文本生成模型

能够实现端到端随机生成一首古

诗或给出关键字的藏头诗以及具有语义的歌词

数据预处理模块是准备工作

在深度学习领域当中

备数据是非常烦琐的工作

本系统研究的中文歌词没有开源

的数据集可供使用

需要爬虫获取

古诗数据集是开源的中

华诗词库

JSON格式

数据操作流程为

1

去除指定无用的符号

2

文本只保留汉字

3

将文本转为向量并输入算法中

最后则是GUI服务模块

使用Tkinter实现

是Python

自带的标准图形库

设计人机交互界面

便于用户进行相关

操作

系统整体结构图如图2所示

爬虫文本处理

数据预处理模块

语料歌词生成

训练模块生成模块

LSTM神经网络模块

数据传递

GUI界面

GUI服务模块

图2 系统结构图

2 系统核心功能

2.1 数据预处理

26

2021.1

现代信息科技

数据预处理主要包括了爬取歌词

收集古诗

文本筛选

文本向量化和功能性处理

爬虫主要运用于歌词的获取

系统采用Python的爬虫框架Pyspider爬取了非常多歌词

但是不能直接用于训练

要先手动删除不需要的标点符号

留下中文歌词

对于有些用网络词语改编的歌词也不作为训

练集

古诗使用开源的中华诗词库

数据中可能存在部分符

号的问题

例如中英文符号混用

每行存在多个冒号

数据

中存在其他符号等问题

因此需要对数据进行清洗

通过文

本筛选得到了比较干净的歌词和古诗文本

但是这样的文本

对于神经网络来说是不能直接训练的

需要对歌词和诗句进

行分词

为了最后生成的歌词和古诗的长度的整齐性及便利

需要先按单个字符进行拆分

对所有文本分词处理之后

应对单个字符进行向量化

每个不同的字符对应唯一的向

便于之后计算出值后转换为对应的词

最后

需要统

计词频

删除掉出现次数较低的词

本文歌词数据集采用的

是中文歌词

所有歌词存放在一个txt文档中

每一行存储

一首歌词

古诗数据集数据采用的是全唐诗

一共包含105

336首唐诗

数据格式为诗歌内容

存放在JSON文档中

2.2 歌词和古诗生成模型

建立歌词和古诗生成模型

需要三个步骤

搭建

训练

和保存

2.2.1 搭建模型

核心结构是两层LSTM神经网络

需要注意的是每次

都定义一个新的BasicCell

而不是定义一个BasicCell之后

多次调用

LSTM神经网络在处理序列数据方面非常有效

虽然RNN与CNN都能进行序列建模

但本质上有不同

在搭建模型过程中还使用了Embedding层

称为嵌入层

当于一个网络层

在模型第一层中使用

其目的是将有索引

的标签映射到高密度低维向量

达到降维的作用

可以防止

One-Hot向量维度过大导致的运算速度过慢的问题

该层通

常用于文本数据建模

使用LSTM神经网络模型还有一个必

不可少的全连接层

Dense层

),

它能够根据特征的组合进

行分类

大大减少特征位置对分类带来的影响

2.2.2 训练模型

创建session会话进行训练

由于训练集比较大

所以

歌词生成模型训练30个周期

古诗生成模型训练100个周

输入每一轮的损失值

通过每轮训练后损失值的变化判

断LSTM神经网络模型性能是否发生欠拟合

再比较LSTM

神经网络模型在训练集和测试集的正确率判断LSTM神经网

络模型是否发生过拟合

若发生欠拟合则应该增加LSTM神

经网络模型的深度或者增加训练的时间

若发生过拟合则应

该采取正则化的方法或者Dropout抑制过拟合

2.2.3 保存模型

歌词生成模型保存为H5文件

古诗生成模型保存为

DATA-00000-OF-00001文件

Keras框架使用()方法

保存模型

TensorFlow框架使用类来保存模型

2.3 生成歌词和古诗

2.3.1 歌词生成

生成歌词需要用户先输入10个字

定义

抽样函数

”,

彭涛:基于深度学习的歌词和古诗自动生成系统设计

作用是从模型中得出当前文本的下一个字符的概率分布

分布重新调整

根据重新加权的分布随机抽样下一个字符

在当前文本的末尾添加新字符

定义生成歌词函数

通过调

抽样函数

和t()方法

用前10个字预测

下一个字

直到for循环结束

生成歌词的核心代码为

def create_music(gen):

for i in range(300):

x_p = ((1, maxL))

for t, char in enum(sent):

x_p[0, t] = chartoid[char]

forecast= t(x_p, verbose=0)[0]

nextIndex = sample(forecast, diversity)

nextChar = idtochar[nextIndex]

gen += nextChar

return gen[1:]

2.3.2 古诗生成

生成古诗分为用户输入关键字生成古诗和输入4个字藏

头诗

每次预测其实是根据一个序列预测一个新的词

需要

词的多样化

因此可以按预测结果的概率分布进行抽样

头诗就是固定每句诗的第一个字

按照藏头来预测该行的词

生成古诗的核心代码为

def create_poetry():

st= (ini_s)

while :

x = ((b_size, 1))

x[:, 0] = char2id[c]

p, st = ([probs, last_s], feed_dict={X: x, init_s:

st})

p = e(p)

pos = int(((p), () *

(p)))

c = id2char[pos]

return gen[1:36]

系统主界面如图3所示

图3 系统主界面

第1期

古诗生成界面如图4所示

图4 古诗生成界面

歌词生成界面如图5所示

图5 歌词生成界面

3 结 论

本文在阐述完开发基于深度学习的歌词和古诗自动生成

系统的背景和意义

完成系统设计后

使用Python语言对

系统进行实现

主要使用了RNN以及LSTM神经网络模型

进行歌词和古诗的自动生成

生成过程设置两个阶段

每个

阶段包括一个RNN检测模型

使用中华诗词库数据集训练

得到生成古诗的模型

使用中文歌词数据集训练得到生成歌

词的模型

通过训练好的RNN进行古诗和歌词的生成

到具有语义的古诗和歌词

参考文献

[1] 池云仙

赵书良

罗燕

等.基于词频统计规律的文本数

据预处理方法 [J].计算机科学

2017

44

10

):

276-282+288.

[2] 肖烨晗.基于自然语言生成技术的人工智能应用 [J].科技

传播

2019

11

7

):

155-156.

[3] 马然.基于深度学习的自然场景文本识别系统的设计与实

现 [D].长春

吉林大学

2015.

[4] 段军红

李晓宇

慕德俊.一种非完全标注的文本分类训

练方法 [J].微处理机

2019

40

1

):

20-24.

[5] 张克君

史泰猛

李伟男

等.基于统计语言模型改进的

Word2Vec优化策略研究 [J].中文信息学报

2019

33

7

):

11-

19.

作者简介

彭涛

1974

—),

汉族

江西龙南人

讲师

硕士

主要研究方向

计算机应用

2021.1

27


发布者:admin,转转请注明出处:http://www.yc00.com/web/1713086044a2180139.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信