APP下载

基于改进的深度学习古诗自动生成系统研究

2021-04-03吕敬褚丽莉龚瑞雪

现代信息科技 2021年19期
关键词:深度学习

吕敬 褚丽莉 龚瑞雪

摘  要:近年来,利用深度学习技术实现古诗自动生成逐渐火热。研究者多采用基于语句或基于图片作为古诗自动生成系统的输入,完成古诗的自动生成。研究发现,目前基于语句作为输入时多受限于输入字数的限制,导致无法满足想要进行自由创作的需要。为此,文章基于深度学习利用LSTM神经网络实现了一种古诗自动生成系统,该系统可基于任意长度语句作为输入实现古诗自动生成;为了方便操作和查看,利用Tkinter实现了系统功能的可视化;最后通过人工评估方法论证了系统的可行性。

关键词:深度学习;古诗自动生成;LSTM;任意长度

中图分类号:TP18     文獻标识码:A文章编号:2096-4706(2021)19-0097-04

Research on Automatic Generation System of Ancient Poetry Based on

Improved Deep Learning

LYU Jing, CHU Lili, GONG Ruixue

(Liaoning University of Technology, Jinzhou  121001, China)

Abstract: In recent years, the use of deep learning technology to realize the automatic generation of ancient poetry is becoming more and more popular. Researchers often use sentences or pictures as the input of the automatic generation system of ancient poetry to complete the automatic generation of ancient poetry. It is found that the current sentence based input is limited by the number of words, which can not meet the needs of free creation. Therefore, based on deep learning, this paper realizes an automatic generation system of ancient poetry by using LSTM neural network. The system can realize the automatic generation of ancient poetry based on arbitrary length sentences input; in order to facilitate operation and viewing, Tkinter is used to realize the visualization of system functions; finally, the feasibility of the system is demonstrated by manual evaluation method.

Keywords: deep learning; automatic generation of ancient poetry; LSTM; arbitrary length

0  引  言

古诗在中国传统文化中占据举足轻重的地位。在中华文明上下五千年中,文人墨客将古诗作为记录生活、寄托情感、反映应生活状态的重要载体,那些传世著作更是对人们产生了深远的影响。

古诗创作讲究平仄押韵、格律对称,同时要求诗句连贯、主题一致,要通过简短凝练的文字表达出一定的意境,具有语言优美、概括性强且发人深省、回味悠长等特点[1]。这给普通人进行古诗创作带来了难度,而如何利用现代技术进行诗歌创作也成为一个富有挑战的课题。

深度学习(Deep Learning, DL)由机器学习发展而来,是近年来备受关注的领域。经过不断地迭代更新,深度学习已成为人工智能领域的重要分支,是人工智能的“新宠儿”[2]。深度学习其内部含有多个隐藏层的多层感知器,旨在利用神经网络模型模拟出人类大脑的学习过程,从而对海量数据样本进行规律提取、特征分析从而具有人类大脑的判断思考能力。目前,典型的深度学习模型有RNN、DBN、LSTM、BERT等,其相应的应用和人类生活息息相关,特别是在人机互答、人脸识别等语音和图像处理方面,深度学习更是发挥至关重要的作用。而利用深度学习实现古诗等文本生成也是研究者青睐的研究方向[3]。

1  研究现状

机器写诗的历史可追溯到20世纪60年代,但受限于当时的科技水平,研究者只能利用简单的程序将单词进行随机拼接形成一首完整的“诗歌”,导致生成的诗歌不具有实际的意义,甚至无法朗读。因而将这一时期的诗歌形象地称为词语沙拉(Word Salad)。如1962年《Time》发表的文章:“The Pocketa, Pocketa School”[4]。

2015年,Zhang等人[5]首次将循环神经网络(RNN)应用在古诗自动生成上,并取得了巨大进步。Zhang等人提出的RNNPG模型为研究者提供了古诗自动生成的研究方向,随后出现了众多古诗自动生成的模型和生成方式。如黄文明等人[6]利用神经网络模型模拟古代诗人写诗过程,并提出了基于序列到序列神经网络模型的古诗自动生成方法;梁健楠等人[7]根据中国古代集句诗歌体制提出了集句诗自动生成模型。也有研究者尝试将古诗自动生成和其他艺术形式相结合,不断丰富古诗自动生成的内涵。如陈佳舟等人[8]认为诗画应该混为一体,并利用神经网络实现了为画题诗的功能;卫万成等人[9]认为古诗和对联具有很多相似之处,并利用编码-解码结构实现了古诗和对联的自动生成;清华大学的YiXiaoyuan等[10]基于Encoder-Decoder框架提出了九歌人工智能诗歌写作系统,并将该系统制作成网页,成为目前比较成熟的古诗在线生成系统,值得注意的是,该系统在自动生成藏头诗时最多只允许输入4个字符。

2  系统核心功能

2.1  LSTM简介

LSTM(Long Short-Term Memory),即长短期记忆网络,由Hochreiter & Schmidhuber[11]提出。LSTM由RNN演化而来,相比于传统RNN,LSTM利用门控机制解决了RNN由于时间跨度较长而无法记忆、无法筛选数据等梯度问题[12]。LSTM结构如图1所示。

在LSTM神经网络中,信息在LSTM的细胞(cell)中传输,通过cell内的门控单元:遗忘门、输入门、输出门来进行信息过滤以筛选出最终目标信息。

输入门:it=sigmoid(WxiXt+WhiYt-1+bi)

遗忘门:ft=sigmoid(WxfXt+WhfYt-1+bf)

输出门:ot=sigmoid(WxoXt+WhoYt-1+bo)

式中,sigmoid是激活函数,W是权重,Xi是当前时刻输入,Yt-1是上个细胞的输出,b为偏置分量。由公式可以看出遗忘门负责滤除掉当前细胞不需要的信息,对当前细胞中的信息进行选择性地遗忘;输入门负责将新的输入信息加入当前细胞中,以完成当前细胞中信息的更新;输出门负责对当前细胞信息进行选择性地输出到隐节点,该隐节点的信息会被传输到下个细胞。LSTM的门控机制可以筛选出重要的信息并进行长时间记忆传输。

2.2  训练样本获取

对于古诗自动生成模型,需要大量的古诗作为模型的训练样本。相比于其他爬虫框架,PySpider由于含有Web界面,且集成了phantomjs,可以迅速爬取大量的样本。因此本文利用PySpider爬虫框架从中华古籍网、中华古籍全录等网站爬取了15万首古诗作为训练样本。对于每一首古诗,只保留其题目和诗句,将字体转换为简体,每首诗的题目和诗句组成一条数据集,将所有数据集打包成一个.txt文件得到本系统完整的训练样本。爬虫获取的训练样本如图2所示。

2.3  模型构建

創建一个Tokenizer分词器。该分词器用于统计数据集中每个字符出现的频率、删除出现次数小于15次的字符、将训练样本中的每个字符视为一个标记并将字符转换成列表。

本文利用深度学习框架TensorFlow的高级接口Keras构建三层LSTM,每层设置128个隐藏节点;丢弃值设置为0.6;将return_state设置为True,方便查看返回的最后一个状态;模型训练时为了节约内存,将unroll设置为False;利用交叉熵作为损失函数(loss)。由于数据集较大,模型使用Embedding层将样本映射成低维向量,以提高模型在训练中的速度。Embedding层的词表大小设置为数据集中不重复字符的总数大小,词嵌入维度设置为128。将数据集的词表大小设置为Dense层的维度;使用tanh作为Dense层的激活函数。由于RMSprop算法在处理数据量大的样本集时更具有优势,本文选择RMSprop算法对模型进行优化。模型的部分代码为:

model = tf.keras.Sequential([tf.keras.layers.Input((None,)),

tf.keras.layers.LSTM(128,dropout=0.6,

return_sequences=True,

return_state=True, stateful=True, unroll=False),

tf.keras.layers.LSTM(128,dropout=0.6,

return_sequences=True,

return_state=True, stateful=True, unroll=False),

tf.keras.layers.LSTM(128,dropout=0.6,

return_sequences=True,

return_state=True, stateful=True, unroll=False)])

model.add(Embedding(input_dim=sample_size,output_dim=128,

embeddings_initializer=uniform))

model.add(Dense(sample_size, activation=keras.tanh))

model.add(Activation(keras.tanh))

model.summary()

model.compile(optimizer=tf.keras.optimizers.RMSprop(),

loss=tf.keras.losses.categorical_crossentropy)

2.4  模型训练

本文利用LSTM构成的模型训练时环境配置如表1所示。

每次训练Epoch数设置为30次,每次Epoch迭代步数为1 600步,BATCH_SIZE设置为32,衰减率的大小设定位0.000 2。Epoch训练完成后,将loss值最小的模型保存为.h5文件作为本次Epoch的最优模型。模型训练耗时20.2小时。部分训练过程如图3所示。

2.5  GUI设计

由于Tkinter可移植性高、灵活性强,本文利用Tkinter设计了图形用户界面(GUI)。GUI根据LSTM构建的模型实现两个功能:“续写古诗”和“写藏头诗”。本文设计的GUI界面如图4所示。

“续写古诗”:在“输入框”中输入古诗的起始字符,点击“古诗续写”按钮,系统将输入字符作为起始诗句,自动生成一首完整古诗;

“写藏头诗”:在“输入框”中输入需要藏头的字符,点击“写藏头诗”按钮,系统将输入字符作为藏头字,自动生成一首藏头诗。

2.6  系统示例

续写古诗功能示例:在“输入框”中输入“明月”,点击“续写古诗”,自动生成古诗如图5所示。

藏头诗功能示例:在“输入框”中输入“我爱中国”,点击“写藏头诗”,自动生成古诗如图6所示。

3  模型評估

目前,针对古诗自动生成模型,学术界没有统一、公认严谨的评估方法。这也是古诗自动生成领域亟待解决的难题之一,难点在于古诗的韵律、主题和意境等主观性的情感难以用神经网络模型进行量化。

对于古诗自动生成模型,现在的评估方法分为:一类是利用METERO、ROUGE等算法进行辅助评估。但这类评估方法只是计算出了生成文本和参考文本之间相同字符占总文本字符的概率,并没有考虑词语、诗句创造的意境,更有刘等[13]研究者证明用这类评估方法对古诗自动生成模型进行评估实际毫无意义。另一类评估方法是目前大多数研究者都会采用的评估方法:人工评估。但此类方法受评估者教育程度、个人喜好等主观因素导致评估的片面性。

为此,本文输入字符设置四种长度:0—4、5—8、9—12、13—20,每种长度利用“续写古诗”和“藏头诗”功能自动生成20首古诗,共计160首古诗,并邀请24位具有研究生学历的评估者对生成古诗进行打分。部分自动生成古诗如表2所示。

设计的评估标准如表3所示,评估结果如表4所示。

从评估结果可以看出,本文设计的古诗自动生成系统在随着输入字符长度的增加平均分在递减,这是由于LSTM模型的门控机制对时间跨度较长的细胞进行信息筛选造成的,可通过加大训练Epoch次数找到值更低的loss函数或通过其他优化算法对模型进行优化实现长序列的更好生成效果。但理论上本系统可基于任意长度语句作为系统输入实现古诗自动生成。

4  结  论

古诗是中国传统文化的重要组成部分,利用现代技术实现古诗自动生成也是对传统文化的一种保护。本文简要介绍了古诗自动生成的发展历程,并利用LSTM神经网络实现了基于任意长度语句作为系统输入实现古诗自动生成。通过对比评估,该系统可基于任意长度语句完成古诗自动生成。

参考文献:

[1] 马玉波,尹志刚.试论诗歌特征与读诗的着眼点 [J].教学与管理,2007(6):71-72.

[2] IKA J,DAENA F,SVOBODA A. Deep Learning [J].Nature Methods,2019.

[3] ZHANG C,WANG Z Y,LYU J. Research on early warning of agricultural credit and guarantee risk based on deep learning [J/OL].Neural Computing and Applications,2021,33:[2021-08-03].https://doi.org/10.1007/s00521-021-06114-3.

[4] The Pocketa, Pocketa School [N],Time,1962-05-25.

[5] ZHANG X X,LAPATA M. Chinese Poetry CGeneration with Recurrent Neural Networks [C]//Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing(EMNLP).Doha:Association for Computational Linguistics,2014:670-680.

[6] 黄文明,卫万成,邓珍荣.基于序列到序列神经网络模型的古诗自动生成方法 [J].计算机应用研究,2019,36(12):3539-3543.

[7] 梁健楠,孙茂松,矣晓沅,等.基于神经网络的集句诗自动生成 [J].中文信息学报,2019,33(3):126-135.

[8] 陈佳舟,黄可妤,封颖超杰,等.基于古代绘画的古诗自动生成方法 [J].计算机辅助设计与图形学学报,2021,33(7):1038-1044.

[9] 卫万成,黄文明,王晶,等.基于多任务学习的古诗和对联自动生成 [J].中文信息学报,2019,33(11):115-124.

[10] YI X Y,LI R Y,SUNMAO S. Generating Chinese Clasical Poems with RNN Encoderdecoder [J].Computation and Language,2017.

[11] HOCHREITER S,SCHMIDHUBER J. Long Short-Term Memory [J]. Neual computation,1997,9(8):1735-1780.

[12] MESSINA R,LOURADOUR J. Segmentation-free handwritten Chinese text recognition with LSTM-RNN [C]//2015 13th International Conference on Document Analysis and Recognition (ICDAR).Tunis:IEEE, 2015:171-175.

[13] LIU C W,LOWE R,SERBAN L V,et al. How NOT To Evaluate Your Dialogue System:An Empirical Study of Unsupervised Evaluation Metrics for Dialogue Response Generation [J/OL].arXiv:1603.08023 [cs.CL].[2021-09-01].https://arxiv.org/abs/1603.08023v2.

作者简介:吕敬(1996—),男,汉族,贵州兴义人,硕士研究生在读,研究方向:自然语言处理;褚丽莉(1970—),女,汉族,辽宁锦州人,教授,博士,研究方向:现代通信网络理论与技术、数据通信与网络;龚瑞雪(1997—),女,汉族,辽宁沈阳人,硕士研究生在读,研究方向:通信技术及其应用工程。

猜你喜欢

深度学习
从合坐走向合学:浅议新学习模式的构建
面向大数据远程开放实验平台构建研究
基于自动智能分类器的图书馆乱架图书检测
搭建深度学习的三级阶梯
有体验的学习才是有意义的学习
电子商务中基于深度学习的虚假交易识别研究
利用网络技术促进学生深度学习的几大策略
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
深度学习算法应用于岩石图像处理的可行性研究