一种迭代润色的诗歌自动生成方法、存储介质及终端技术领域

[0001] 本发明涉及自然语言处理技术领域,具体涉及一种迭代润色的诗歌自动生成方法、存储介质及终端。

背景技术

[0002] 近年来人工智能与文学艺术的结合日趋紧密,AI自动绘画、自动作曲、作诗等方向都成为研究热点。

[0003] 随着深度学习的发展,研究人员通过使用深度学习的方法,建立自动诗歌的生成模型并加以应用,开发了人工智能诗歌协作系统等软件;然而,这累软件通常只能学习到古诗中常见的意象,而很难触类旁通,因此不能取得比较好的结果。

[0004] 工作记忆( working memory) 是指个体在执行认知任务中,对信息暂时储存与操作的能力;2018年Yi等人提出的基于工作记忆模型的中国诗歌生成方法,通过工作记忆的形式,极大的提高了生成诗歌的上下文关联性,进而使得生成诗歌的质量和连贯性有效提高。

[0005] 然而,该方法虽然能够提高生成诗歌的质量和连贯性,但是在连贯性的表现上并没有特别出色,为此我们将解决这个问题。

发明内容

[0006] 有鉴于此,有必要针对的问题,提供一种迭代润色的诗歌自动生成方法、存储介质及终端,能够提高诗歌的连贯性。

[0007] 本发明提供了一种迭代润色的诗歌自动生成方法,包括以下步骤:

S10,获取诗歌训练集;

S20,对诗歌训练集进行预处理,得到训练样本集;

S30,通过训练样本集对诗歌生成模型进行训练;

S40,将用户提供的表示用户意图的关键词作为诗歌生成模型的输入,训练好的诗歌生成模型输出生成的草诗;

S50,将草诗以及关键词作为诗歌生成模型的输入进行诗歌润色,并通过迭代,生成最终诗歌并输出。

[0008] 可选地,所述步骤S50,将草诗以及关键词作为诗歌生成模型的输入进行诗歌润色,并通过迭代,生成最终诗歌并输出,包括:

S501,初始化诗歌生成模型的参数;

S502,将草诗以及关键词作为诗歌生成模型的输入,诗歌生成模型输出润色后的诗歌;

S503,判断是否达到最大迭代次数,如是,则将润色后的诗歌作为最终结果输出,否则,执行步骤S504;

S504,判断是否达到寻优精度,如达到,则将润色后的诗歌作为最终结果输出,结束迭代;否则,当前迭代次数+1后,执行步骤S502。

[0009] 可选地,所述步骤S503中,判断是否达到寻优精度的过程为:

S5031,对诗歌生成模型两次输出的诗歌,进行诗歌向量的余弦相似度计算,得到两次诗歌之间的余弦相似度值;

S5032,判断余弦相似度值是否大于余弦相似度预设值,如是,则表示达到寻优精度,否则表示未达到寻优精度。

[0010] 可选地,所述步骤S502,将草诗以及关键词作为诗歌生成模型的输入,诗歌生成模型输出润色后的诗歌;具体包括:

S502-1,对部分关键词进行替换,得到替换后的关键词;

S502-2,将草诗以及替换后的关键词作为诗歌生成模型的输入,诗歌生成模型输出润色后的诗歌。

[0011] 可选地,S20,对诗歌训练集进行预处理,得到训练样本集;具体包括:

S201,通过词嵌入将诗歌训练集中的每个原始诗歌映射到向量空间,得到每个原始诗歌对应的诗歌词向量;

S202,将诗歌训练集中的每个原始诗歌进行分词处理;分词后,原始诗歌中的每一句诗被分割为多个词语;

S203,通过TextRank公式计算每个词语的分值大小,提取得分最高的词语作为每句诗的关键词;

S204,每个原始诗歌对应的关键词和诗歌词向量构成预处理后的训练样本集。

[0012] 可选地,所述步骤S30,通过训练样本集对诗歌生成模型进行训练中,具体包括:

S301,所述的诗歌生成模型包括:双向GRU编码器和GRU解码器;

S302,将训练样本集中的关键词和诗歌词向量输入到双向GRU编码器编码后得到隐藏状态的向量表示;

S303,将隐藏状态的向量表示输入到GRU解码器中进行解码后,得到训练样本的输出诗歌。

[0013] 可选地,所述双向GRU编码器包括:采用正向学习的正向GRU-L及采用反向学习的反向GRU-R;

所述步骤S30,通过训练样本集对诗歌生成模型进行训练,还包括:

S304,采用Adam优化函数设置优化参数来训练反向GRU-R。

[0014] 可选地,所述优化参数包括:学习率,所述学习率为0.02。

[0015] 本发明还提供了一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上所述的一种迭代润色的诗歌自动生成方法方法。

[0016] 本发明还提供了终端,包括:处理器,适于实现各指令;以及

存储介质,适于存储多条指令,所述指令适于由处理器加载并执行如上所述的一种迭代润色的诗歌自动生成方法。

[0017] 本申请提供的技术方案的优点在于:

1、本发明中,模拟了诗人创作诗歌的过程,在诗歌生成模型生成一首诗歌之后,对诗歌进行了迭代润色,使得最终生成的诗歌在连贯性的表现上更好,实用性极强。

[0018] 2、本发明中,使用Adam优化函数指导优化,使用标准交叉熵对参数调优,使得预测生成的字符与原数据相同,使得训练好的诗歌生成模型具有更高的预测精度。

附图说明

[0019] 图1是本发明实施例提供的一种迭代润色的诗歌自动生成方法的一个实施例的流程示意图;

图2是本发明实施例提供的一种迭代润色的诗歌自动生成方法中步骤S20的流程示意图;

图3是本发明实施例提供的一种迭代润色的诗歌自动生成方法中步骤S30的流程示意图;

图4是本发明实施例提供的一种迭代润色的诗歌自动生成方法中步骤S50的流程示意图。

具体实施方式

[0020] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

[0021] 实施例一

参阅图1,一种迭代润色的诗歌自动生成方法,包括以下步骤:

S10,获取诗歌训练集;

S20,对诗歌训练集进行预处理,得到训练样本集;

S30,通过训练样本集对诗歌生成模型进行训练;

S40,将用户提供的表示用户意图的关键词作为诗歌生成模型的输入,训练好的诗歌生成模型输出生成的草诗;

S50,将草诗以及关键词作为诗歌生成模型的输入进行诗歌润色,并通过迭代,生成最终诗歌并输出。

[0022] 需要说明的是,所述诗歌生成模型可采用工作记忆模型。

[0023] 需要说明的是,本实施例诗歌训练集中的诗歌可选为2000首;

所述的诗歌为一种诗歌体裁,可包括:五言绝句、七言绝句、五言律诗、七言律诗、或各种词牌等。

[0024] 需要说明的是,参阅图2,所述步骤S20,对诗歌训练集进行预处理,得到训练样本集;具体包括:

S201,通过词嵌入将诗歌训练集中的每个原始诗歌映射到向量空间,得到每个原始诗歌对应的诗歌词向量;

S202,将诗歌训练集中的每个原始诗歌进行分词处理;分词后,原始诗歌中的每一句诗被分割为多个词语;

S203,通过TextRank公式计算每个词语的分值大小,提取得分最高的词语作为每句诗的关键词;

S204,每个原始诗歌对应的关键词和诗歌词向量构成预处理后的训练样本集。

[0025] 需要说明的是,对诗歌训练集进行预处理包括两个方面:

第一,将诗歌通过词嵌入的方法,得到每个原始诗歌对应的诗歌词向量;

本实施例中,所述通过词嵌入将诗歌训练集中的每个原始诗歌映射到向量空间的具体方法,采用word2vec方法进行词嵌入,得到诗歌的向量表示,本实施例中,其中,一句诗歌用一个多维向量来表示。

[0026] word2vec(wordtovector)模型是用来产生词向量(wordembedding)的浅层神经网络模型,被广泛地应用于自然语言处理领域和机器学习领域;word2vec模型可以利用词典和大量训练数据来高效训练出,并且被使用来将文本分词转换成词向量表示形式,从而将文本内容处理转化为向量空间中的向量运算,并利用向量空间上的相似度来反映出文本内容在文本语义上的相似度。

[0027] 第二,将诗歌通过分词处理,提取出诗歌的关键词;

本实施例中,采用Jieba分词工具对诗歌数据集分词,分词之后每一句诗将会被分割成若干个词语,之后用TextRank公式计算每个词的分值大小,将得分最高的词作为每句诗的关键词,所以每一首诗可提取出多个关键词。

[0028] 通过上述两个过程得到的关键词和诗歌词向量,构成预处理后的训练样本集。

[0029] 需要说明的是,参阅图3,所述步骤S30,通过训练样本集对诗歌生成模型进行训练中,具体包括:

S301,所述的诗歌生成模型包括:双向GRU编码器和GRU解码器;

S302,将训练样本集中的关键词和诗歌词向量输入到双向GRU编码器编码后得到隐藏状态的向量表示;

S303,将隐藏状态的向量表示输入到GRU解码器中进行解码后,得到训练样本的输出诗歌。

[0030] 需要说明的是,GRU(Gated Recurrent Unit)是LSTM的一种变体,它对LSTM做了很多简化;LSTM神经网络模型包含有三个门:输入门,遗忘门和输出门,遗忘门用于决定保留多少个上一时刻的单元状态到当前时刻的单元状态;输入门用于决定保留多少个当前时刻的输入到当前时刻的单元状态;输出门用于决定当前时刻的单元状态有多少输出;GRU神经网络作为LSTM的简化版,相比于LSTM来说只有两个门:更新门和重置门;更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息被带入的越多;重置门用于控制忽略前一时刻的状态信息的程度,重置门越小说明忽略的信息越多。

[0031] GRU神经网络的参数比LSTM减少了1/3,不容易产生过拟合,而且收敛时间短,迭代次数少,在保持LSTM效果的同时,使得模型的结构更加简单。

[0032] 本实施例中,所述双向GRU编码器包括:采用正向学习的正向GRU-L及采用反向学习的反向GRU-R;

由于循环神经网络模型具有遗忘性,一般来说,最后一个状态所包含的信息是有损的,而且序列越靠前信息损失得越严重。对于包含有许多序列建模任务而言,获取未来以及过去的背景信息对提高模型的准确率来说是有意义的。所以,如果同时训练两个GRU神经网络,一个采用正向学习,一个采用反向学习,将正向和反向的最后一个状态对应的向量连接后得到的向量作为最后的结果,则该模型便能同时利用过去和未来的所有信息,获得较好的训练效果。

[0033] 需要说明是,所述步骤S30,通过训练样本集对诗歌生成模型进行训练,还包括:S304,采用Adam优化函数设置优化参数来训练反向GRU-R。

[0034] 具体地,所述优化参数包括:学习率,所述学习率为0.02。

[0035] 本实施例中,使用Adam优化函数指导优化,优化过程可使用预测的字符分布与实际的字符分布的误差,也就是标准交叉熵对参数调优,目标是让预测生成的字符与原数据相同;通过大量数据来达到训练使预测输出的诗句与原本的诗句相同。

[0036] 训练时,所述GRU-L的输入可为:训练样本集中的关键词和上一句诗歌词向量,GRU-R的输入可为:下一句诗歌词向量和关键词,前后向分别运行GRU-L、GRU-R,分别得到隐藏层当前的隐状态H-L和H-R。

[0037] 以上是对本发明提供的一种迭代润色的诗歌自动生成方法的一个实施例进行的说明,以下将对本发明提供的一种迭代润色的诗歌自动生成方法的另一个实施例进行说明。

[0038] 实施例二

实施例一中,与用户交互,通过用户提供的表示用户意图的关键词,关键词输入到训练好的诗歌生成模型中,训练好的诗歌生成模型会根据训练的结果生成一首诗歌,这首生成的诗歌也就是草诗,后续会对其进行润色。

[0039] 本实施例中,为提高诗歌的连贯性,对草诗润色的具体过程进行说明。

[0040] 参阅图4,在实施例一的基础上,一种迭代润色的诗歌自动生成方法,所述步骤S50,将草诗以及关键词作为诗歌生成模型的输入进行诗歌润色,并通过迭代,生成最终诗歌并输出,包括:

S501,初始化诗歌生成模型的参数;

S502,将草诗以及关键词作为诗歌生成模型的输入,诗歌生成模型输出润色后的诗歌;

S503,判断是否达到最大迭代次数,如是,则将润色后的诗歌作为最终结果输出,否则,执行步骤S504;

S504,判断是否达到寻优精度,如达到,则将润色后的诗歌作为最终结果输出,结束迭代;否则,当前迭代次数+1后,执行步骤S502。

[0041] 需要说明的是,诗歌润色过程与草诗生成过程类似,不同的是将上一次生成的整首诗歌的最终向量表示、连同作为用户意图的关键信息一起输入到训练好的诗歌生成模型,它是每次润色的初始状态,以便在每次润色过程中尽量符合作者的初始意图;润色的过程中,对于诗句中得分比较低的词语进行替换,以寻找更好的词语表达。

[0042] 通过上述过程实现了对人类创作诗歌的模拟,当两代诗歌向量表示的余弦相似性比较大或是润色次数达到一定的值(迭代次数)时停止,输出生成的诗歌。

[0043] 需要说明的是,所述步骤S503中,判断是否达到寻优精度的过程为:

S5031,对诗歌生成模型两次输出的诗歌,进行诗歌向量的余弦相似度计算,得到两次诗歌之间的余弦相似度值;

S5032,判断余弦相似度值是否大于余弦相似度预设值,如是,则表示达到寻优精度,否则表示未达到寻优精度。

[0044] 需要说明的是,所述步骤S502,将草诗以及关键词作为诗歌生成模型的输入,诗歌生成模型输出润色后的诗歌;具体包括:

S502-1,对部分关键词进行替换,得到替换后的关键词;

S502-2,将草诗以及替换后的关键词作为诗歌生成模型的输入,诗歌生成模型输出润色后的诗歌。

[0045] 本实施例中,为提高诗歌的连贯性和整体性,更好的表示用户意图,在润色过程中,也可与用户进行交互,对部分关键词进行替换。

[0046] 以下通过一个具体的实施例对诗歌的润色效果进行说明。

[0047] 输入关键词:“枯树 酒醉”;输出的草诗为:

                 不言哀草年年少,

                 只逐东风醉酒开。

[0048]       今日重来都是客,

                 断肠千里哭声哀。

[0049] 经过迭代润色后,输出的诗歌为:

                 莫言衰草年年少,

                 只逐东风醉酒开。

[0050]      今日来者都是客,

                 断肠千里哭声哀。

[0051] 以上是对本发明提供的一种迭代润色的诗歌自动生成方法的第二个实施例进行的说明。

[0052] 此外,本发明还提供了一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上所述的一种迭代润色的诗歌自动生成方法。

[0053] 所述计算机可读存储介质,可包括:U盘、移动硬盘、只读存储器(ROM,Read -OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

[0054] 本发明还提供了一种终端,所述终端可包括:

处理器,适于实现各指令;以及

存储设备,适于存储多条指令,所述指令适于由处理器加载并执行如上述的一种迭代润色的诗歌自动生成方法。

[0055] 所述终端可以是各种终端设备,例如:台式电脑、手提电脑等,具体可以通过软件和/或硬件来实现。

[0056] 综上,本申请中,模拟了诗人创作诗歌的过程,在诗歌生成模型生成一首诗歌之后,对诗歌进行了迭代润色,使得最终生成的诗歌在连贯性的表现上更好。

[0057] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。