首页> 中国专利> 一种具有风格多样性的绝句生成方法及装置

一种具有风格多样性的绝句生成方法及装置

摘要

本发明提供一种具有风格多样性的绝句生成方法及装置,所述方法包括:获取待生成绝句的首句,将首句的文字序列转化成首句向量,将首句向量和表示绝句风格类型的单热向量拼接之后得到的第一向量输入到预先建立好的绝句生成模型中,得到多首具有不同风格的绝句。该方法和装置可以实现在给定同一输入时,可以生成风格不同的多首诗,不需要对诗歌风格进行标注,具有良好的多样性和适用性,同时可以降低诗歌生成成本。

著录项

  • 公开/公告号CN108563622A

    专利类型发明专利

  • 公开/公告日2018-09-21

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN201810420813.4

  • 发明设计人 孙茂松;杨成;矣晓沅;李文浩;

    申请日2018-05-04

  • 分类号G06F17/24(20060101);

  • 代理机构11002 北京路浩知识产权代理有限公司;

  • 代理人王莹;李相雨

  • 地址 100084 北京市海淀区清华园北京100084-82信箱

  • 入库时间 2023-06-19 06:38:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-04-07

    授权

    授权

  • 2018-10-23

    实质审查的生效 IPC(主分类):G06F17/24 申请日:20180504

    实质审查的生效

  • 2018-09-21

    公开

    公开

说明书

技术领域

本发明涉及机器学习以及自然语言处理技术领域,具体涉及一种具有风格多样性的绝句生成方法及装置。

背景技术

中国古典诗歌是中华传统文化的重要组成部分。在上千年的文化积淀过程中,诗人们创作了各种风格的诗歌来抒发他们的情感,如田园诗、边塞诗等等。人类诗歌创作的一个重要特征就是对同一诗歌意象可以写出风格各异的多种诗句的能力。比如针对“月”这一意象,诗人可以写出“秦时明月汉时关”这样的边塞诗,也可以写出“月明欲素愁不眠”这样的抒情诗。

大多数已有的中国古诗自动生成算法都注重于行间一致性的问题研究,一些作风格转换的工作则面临着昂贵的对诗歌风格的专家标注成本,无法很好的模拟这一能力。

发明内容

针对现有技术的不足,本发明提供一种具有风格多样性的绝句生成方法及装置。

第一方面,本发明实施例提供一种具有风格多样性的绝句生成方法,所述方法包括:

获取待生成绝句的首句;

将所述首句的文字序列转化成首句向量;

将所述首句向量和表示绝句风格类型的单热向量拼接之后得到的第一向量输入到预先建立好的绝句生成模型中,得到多首具有不同风格的绝句。

第二方面,本发明实施例提供一种具有风格多样性的绝句生成装置,所述装置包括:

获取模块,用于获取待生成绝句的首句;

向量化模块,用于将所述首句的文字序列转化成首句向量;

绝句生成模块,用于将所述首句向量和表示绝句风格类型的单热向量拼接之后得到的第一向量输入到预先建立好的绝句生成模型中,得到多首具有不同风格的绝句。

第三方面,本发明实施例提供一种电子设备,所述设备包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述具有风格多样性的绝句生成方法。

第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述具有风格多样性的绝句生成方法。

本发明实施例提供的具有风格多样性的绝句生成方法及装置,通过获取待生成绝句的首句,将首句的文字序列转化成首句向量,将首句向量和表示绝句风格类型的单热向量拼接之后得到的第一向量输入到预先建立好的绝句生成模型中,得到多首具有不同风格的绝句。该方法和装置可以实现在给定同一输入时,可以生成风格不同的多首诗,不需要对诗歌风格进行标注,具有良好的多样性和适用性,同时可以降低诗歌生成成本。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的具有风格多样性的绝句生成方法的流程图;

图2是本发明实施例提供的具有风格多样性的绝句生成装置的结构示意图;

图3是本发明实施例提供的电子设备的结构示意图。

具体实施方式

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

图1是本发明实施例提供的具有风格多样性的绝句生成方法的流程图,如图1所示,所述方法包括:

步骤10、获取待生成绝句的首句;

步骤11、将所述首句的文字序列转化成首句向量;

步骤12、将所述首句向量和表示绝句风格类型的单热向量拼接之后得到的第一向量输入到预先建立好的绝句生成模型中,得到多首具有不同风格的绝句。

具体地,服务器可以首先获取待生成绝句的首句。比如,服务器可以获取用户输入的一句话,将其作为待生成绝句的首句。然后,将首句中的文字组成文字序列,再将首句的文字序列转化成向量形式,可以将该向量记为首句向量。

比如,服务器获取到的首句的文字序列可以记为:X=(x1,x2…xT),其中,每个xi(i=1,2…T)代表首句中的一个字,首句中共包含T个字。服务器可以采用编码器将首句的文字序列转化成首句向量。

然后,服务器可以将首句向量与表示绝句风格类型的单热向量进行拼接,可以将拼接之后得到的向量记为第一向量。其中,单热向量可以记为:one_hot(k),单热向量是一个第k维为1且其他维全是0的k维向量。服务器可以预设有k种绝句风格类型,则one_hot(k)可以表示第k种绝句风格类型的向量。

服务器可以将第一向量输入到预先建立好的绝句生成模型中,可以得到多首具有不同风格的绝句。具体地,服务器可以依次枚举风格向量one_hot(k)拼接到首句向量上,并使用柱搜索技术从训练好的解码器解码生成与首句相对应的下句,然后将生成的下句作为上句,继续产生新的下句,直到得到四句诗句组成一首完整的绝句。

本发明实施例提供的具有风格多样性的绝句生成方法,通过获取待生成绝句的首句,将首句的文字序列转化成首句向量,将首句向量和表示绝句风格类型的单热向量拼接之后得到的第一向量输入到预先建立好的绝句生成模型中,得到多首具有不同风格的绝句。该方法可以实现在给定同一输入时,不需要对诗歌风格进行标注,可以生成风格不同的多首诗,降低了诗歌生成成本,同时具有良好的多样性和适用性,生成的诗的质量相对于已有方法也有一定的提升。

可选的,在上述实施例的基础上,所述方法还包括所述绝句生成模型的建立过程,所述建立过程包括:

从上下句句对数据集中,获取连续句句对;其中,所述上下句句对数据集是根据古诗诗库中的绝句构建的;

将所述连续句句对中的上句的文字序列转化成上句向量;

将所述上句向量和所述单热向量进行拼接,得到第二向量;

将所述第二向量、所述连续句句对中的下句的文字序列以及所述连续句句对的风格类型输入到带有注意力机制的长短期记忆网络模型中进行学习,得到所述绝句生成模型。

具体地,上述实施例中所述的绝句生成模型的建立过程具体如下。

首先,服务器可以从古诗诗库中获取所有的绝句,将每首绝句中的每个连续句组成一个上下句句对,利用所有的上下句句对构建上下句句对数据集,作为绝句生成模型的训练样本。每首绝句都有一个对应的风格类型,属于同一首绝句的所有连续句句对的风格类型与绝句的风格类型相同。服务器可以据此,对上下句句对数据集中的每个连续句句对的风格类型进行标注。

服务器可以从上下句句对数据集中获取连续句句对,将连续句句对中的上句的文字序列转化成向量形式,可以将该向量记为上句向量。

然后,将得到的上句向量与表示绝句风格类型的单热向量进行拼接,可以将拼接之后得到的向量记为第二向量。

服务器可以获取连续句句对的风格类型,然后将第二向量、连续聚聚对中的下句的文字序列以及连续句句对的风格类型输入到带有注意力机制的长短期记忆网络(以下简称为LSTM)模型中进行学习,通过学习,不断优化模型参数,最终建立绝句生成模型。

本发明实施例提供的具有风格多样性的绝句生成方法,通过从上下句句对数据集中,获取连续句句对,将连续句句对中的上句的文字序列转化成上句向量,将上句向量和单热向量进行拼接,将拼接之后得到的第二向量、连续句句对中的下句的文字序列以及连续句句对的风格类型输入到带有注意力机制的长短期记忆网络模型中进行学习,得到绝句生成模型,这使得所述方法更加科学。

可选地,在上述实施例的基础上,所述将所述第二向量所述连续句句对中的下句的文字序列以及所述连续句句对的风格类型输入到带有注意力机制的长短期记忆网络模型中进行学习,得到所述绝句生成模型,包括:

将所述第二向量中的上句向量和所述连续句句对中的下句的文字序列输入到带有注意力机制的长短期记忆网络模型中,训练所述绝句生成模型的预测句,使得所述预测句的每个字取所述下句中对应位置的字时,对应的概率最大;

将所述第二向量中的单热向量和所述连续句句对的风格类型输入到带有注意力机制的长短期记忆网络模型中,训练所述单热向量与风格类型之间的相关性。

具体地,在利用训练样本进行学习的过程中,上句向量可以记为:hT,第二向量可以记为:下句字序列可以记为:Y=(y1,y2…yT),其中,每个yi(i=1,2…T)代表下句中的一个字,下句中共包含T个字。

服务器可以将第二向量和下句字序列Y=(y1,y2…yT)输入到带有注意力机制的LSTM模型进行训练,输出预测句。服务器可以按照如下公式,依次计算预测句中的每个字的对数似然:

其中,p(yi|y1y2…yi-1,X)是给定上句和已预测的前i-1个下句的字时,预测的第i个字的概率分布,g(yi|si)是带有softmax归一化的线性映射函数,Si=LSTMdecoder(Si-1,[e(yi-1),ai]),表示解码器中LSTM的第i个隐状态。其中,S1=hT,[]代表拼接操作,ai=attention(Si-1,h1:T),表示注意力机制学习得到的上下文向量。通过不断学习过程,使得预测句中的每个字取连续句句对中的下句的对应位置的字时,对应的概率最大。

服务器还可以将第二向量中的单热向量和连续句句对的风格类型输入到带有注意力机制的长短期记忆网络模型中,训练单热向量与风格类型之间的相关性。具体地,服务器可以构建额外的用于加强表示绝句风格的向量与解码生成间的依赖性的正则化训练目标:Loverall=L+Lreg。Lreg是额外的用于加强风格向量与解码生成间的依赖性的正则化训练目标:

X[k]代表向量X的第k维,W是参数矩阵,exp ect(i;k,X)表示在上句为X、解码器初始状态拼接第k个风格向量时,在第i个位置的期望解码向量,具体定义为:

其中,V是所有字的集合,是注意力机制学习得到的上下文向量。服务器可以使用梯度下降算法优化Loverall,学习模型中的所有参数。

本发明实施例提供的具有风格多样性的绝句生成方法,通过将第二向量中的上句向量和连续句句对中的下句的文字序列输入到带有注意力机制的长短期记忆网络模型中,训练绝句生成模型的预测句,使得预测句的每个字取所述下句中对应位置的字时,对应的概率最大;将第二向量中的单热向量和连续句句对的风格类型输入到带有注意力机制的长短期记忆网络模型中,训练单热向量与风格类型之间的相关性,这使得所述方法更加科学。

可选的,在上述实施例的基础上,所述将所述首句的文字序列转化成首句向量,包括:

采用双向的长短期记忆网络,将所述首句的文字序列转化成所述首句向量。

具体地,服务器可以采用双向的长短期记忆网络(LSTM),将首句的字序列X=(x1,x2…xT)转化成向量表示。具体方式如下:

其中,是正向和反向LSTM的第i个隐状态,e(xi)是字xi的向量表示。服务器可以将正反向的LSTM隐状态拼接起来,得到双向LSTM的隐状态:服务器可以将最后一个隐状态hT作为首句的字序列的向量表示,即将hT作为首句向量。

本发明实施例提供的具有风格多样性的绝句生成方法,通过采用双向的长短期记忆网络,将首句的文字序列转化成首句向量,使得所述方法更加科学。

图2是本发明实施例提供的具有风格多样性的绝句生成装置的结构示意图,如图2所示,所述装置包括:获取模块20、向量化模块21和绝句生成模块22,其中:

获取模块20用于获取待生成绝句的首句,向量化模块21用于将所述首句的文字序列转化成首句向量,绝句生成模块22用于将所述首句向量和表示绝句风格类型的单热向量拼接之后得到的第一向量输入到预先建立好的绝句生成模型中,得到多首具有不同风格的绝句。

具体地,本发明实施例提供的具有风格多样性的绝句生成装置可以包括:获取模块20、向量化模块21和绝句生成模块22。

获取模块20可以获取待生成绝句的首句。比如,获取模块20可以获取用户输入的一句话,将其作为待生成绝句的首句。向量化模块21可以将首句中的文字组成文字序列,再将首句的文字序列转化成向量形式,可以将该向量记为首句向量。

比如,获取模块20获取到的首句的文字序列可以记为:X=(x1,x2…xT),其中,每个xi(i=1,2…T)代表首句中的一个字,首句中共包含T个字。向量化模块21可以采用编码器将首句的文字序列转化成首句向量。

绝句生成模块22可以将首句向量与表示绝句风格类型的单热向量进行拼接,可以将拼接之后得到的向量记为第一向量。其中,单热向量可以记为:one_hot(k),单热向量是一个第k维为1且其他维全是0的k维向量。绝句生成模块22可以预设有k种绝句风格类型,则one_hot(k)可以表示第k种绝句风格类型的向量。

绝句生成模块22可以将第一向量输入到预先建立好的绝句生成模型中,得到多首具有不同风格的绝句。具体地,绝句生成模块22可以依次枚举风格向量one_hot(k)拼接到首句向量上,并使用柱搜索技术从训练好的解码器解码生成与首句相对应的下句,然后将生成的下句作为上句,继续产生新的下句,直到得到四句诗句组成一首完整的绝句。

本发明实施例提供的具有风格多样性的绝句生成装置,其功能具体参照上述方法实施例,此处不再赘述。

本发明实施例提供的具有风格多样性的绝句生成装置,通过获取待生成绝句的首句,将首句的文字序列转化成首句向量,将首句向量和表示绝句风格类型的单热向量拼接之后得到的第一向量输入到预先建立好的绝句生成模型中,得到多首具有不同风格的绝句。该装置可以实现在给定同一输入时,不需要对诗歌风格进行标注,可以生成风格不同的多首诗,降低了诗歌生成成本,同时具有良好的多样性和适用性,生成的诗的质量相对于已有方法也有一定的提升。

可选的,在上述实施例的基础上,所述装置包括:获取模块、向量化模块、绝句生成模块和模型建立模块,其中:

所述模型建立模块包括:获取子模块、向量化子模块、拼接子模块和建模子模块,获取子模块用于从上下句句对数据集中,获取连续句句对;其中,所述上下句句对数据集是根据古诗诗库中的绝句构建的;向量化子模块用于将所述连续句句对中的上句的文字序列转化成上句向量;拼接子模块用于将所述上句向量和所述单热向量进行拼接,得到第二向量;建模子模块用于将所述第二向量、所述连续句句对中的下句的文字序列以及所述连续句句对的风格类型输入到带有注意力机制的长短期记忆网络模型中进行学习,得到所述绝句生成模型。

具体地,本发明实施例提供的具有风格多样性的绝句生成装置包括:获取模块、向量化模块、绝句生成模块和模型建立模块。其中,所述获取模块、所述向量化模块和所述绝句生成模块,已在上述实施例中详细描述,此处不再赘述。模型建立模块可以包括:获取子模块、向量化子模块、拼接子模块和建模子模块。

获取子模块可以从古诗诗库中获取所有的绝句,将每首绝句中的每个连续句组成一个上下句句对,利用所有的上下句句对构建上下句句对数据集,作为绝句生成模型的训练样本。每首绝句都有一个对应的风格类型,属于同一首绝句的所有连续句句对的风格类型与绝句的风格类型相同。服务器可以据此,对上下句句对数据集中的每个连续句句对的风格类型进行标注。

向量化子模块可以从上下句句对数据集中获取连续句句对,将连续句句对中的上句的文字序列转化成向量形式,可以将该向量记为上句向量。

拼接子模块可以将得到的上句向量与表示绝句风格类型的单热向量进行拼接,可以将拼接之后得到的向量记为第二向量。建模子模块可以获取连续句句对的风格类型,然后将第二向量、连续聚聚对中的下句的文字序列以及连续句句对的风格类型输入到带有注意力机制的长短期记忆网络(以下简称为LSTM)模型中进行学习,通过学习,不断优化模型参数,最终建立绝句生成模型。

本发明实施例提供的具有风格多样性的绝句生成装置,通过从上下句句对数据集中,获取连续句句对,将连续句句对中的上句的文字序列转化成上句向量,将上句向量和单热向量进行拼接,将拼接之后得到的第二向量、连续句句对中的下句的文字序列以及连续句句对的风格类型输入到带有注意力机制的长短期记忆网络模型中进行学习,得到绝句生成模型,这使得所述装置更加科学。

可选地,在上述实施例的基础上,所述建模子模块具体用于:

将所述第二向量中的上句向量和所述连续句句对的下句的文字序列输入到带有注意力机制的长短期记忆网络模型中,训练所述绝句生成模型的预测句,使得所述预测句的每个字取所述下句中对应位置的字时,对应的概率最大;

将所述第二向量中的单热向量和所述连续句句对的风格类型输入到带有注意力机制的长短期记忆网络模型中,训练所述单热向量与风格类型之间的相关性。

具体地,建模子模块在利用训练样本进行学习的过程中,上句向量可以记为:hT,第二向量可以记为:下句字序列可以记为:Y=(y1,y2…yT),其中,每个yi(i=1,2…T)代表下句中的一个字,下句中共包含T个字。

建模子模块将第二向量和下句字序列Y=(y1,y2…yT)输入到带有注意力机制的LSTM模型进行训练,输出预测句。服务器可以按照如下公式,依次计算预测句中的每个字的对数似然:

其中,p(yi|y1y2…yi-1,X)是给定上句和已预测的前i-1个下句的字时,预测的第i个字的概率分布,g(yi|si)是带有soffmax归一化的线性映射函数,Si=LSTMdecoder(Si-1,[e(yi-1),ai]),表示解码器中LSTM的第i个隐状态。其中,S1=hT,[]代表拼接操作,ai=attention(Si-1,h1:T),表示注意力机制学习得到的上下文向量。。通过不断学习过程,使得预测句中的每个字取连续句句对中的下句的对应位置的字时,对应的概率最大。

建模子模块还可以将第二向量中的单热向量和连续句句对的风格类型输入到带有注意力机制的长短期记忆网络模型中,训练单热向量与风格类型之间的相关性。具体地,建模子模块可以构建额外的用于加强表示绝句风格的向量与解码生成间的依赖性的正则化训练目标:Loverall=L+Lreg。Lreg是额外的用于加强风格向量与解码生成间的依赖性的正则化训练目标:

X[k]代表向量X的第k维,W是参数矩阵,expect(i;k,X)表示在上句为X、解码器初始状态拼接第k个风格向量时,在第i个位置的期望解码向量,具体定义为:

其中,V是所有字的集合,是注意力机制学习得到的上下文向量。服务器可以使用梯度下降算法优化Loverall,学习模型中的所有参数。

本发明实施例提供的具有风格多样性的绝句生成装置,通过将第二向量中的上句向量和连续句句对中的下句的文字序列输入到带有注意力机制的长短期记忆网络模型中,训练绝句生成模型的预测句,使得预测句的每个字取所述下句中对应位置的字时,对应的概率最大;将第二向量中的单热向量和连续句句对的风格类型输入到带有注意力机制的长短期记忆网络模型中,训练单热向量与风格类型之间的相关性,这使得所述装置更加科学。

可选地,在上述实施例的基础上,所述向量化模块具体用于:

采用双向的长短期记忆网络,将所述首句的文字序列转化成所述首句向量。

具体地,上述实施例中所述的向量化模块可以采用双向的LSTM网络,将首句的字序列X=(x1,x2…xT)转化成向量表示。具体方式如下:

其中,是正向和反向LSTM的第i个隐状态,e(xi)是字xi的向量表示。向量化模块可以将正反向的LSTM隐状态拼接起来,得到双向LSTM的隐状态:向量化模块可以将最后一个隐状态hT作为首句的字序列的向量表示,即将hT作为首句向量。

本发明实施例提供的具有风格多样性的绝句生成装置,通过采用双向的长短期记忆网络,将首句的文字序列转化成首句向量,使得所述装置更加科学。

图3为本发明实施例提供的电子设备的结构示意图,如图3所示,所述设备包括:处理器(processor)31、存储器(memory)32和总线33,其中:

所述处理器31和所述存储器32通过所述总线33完成相互间的通信;所述处理器31用于调用所述存储器32中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:获取待生成绝句的首句;将所述首句的文字序列转化成首句向量;将所述首句向量和表示绝句风格类型的单热向量拼接之后得到的第一向量输入到预先建立好的绝句生成模型中,得到多首具有不同风格的绝句。

本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取待生成绝句的首句;将所述首句的文字序列转化成首句向量;将所述首句向量和表示绝句风格类型的单热向量拼接之后得到的第一向量输入到预先建立好的绝句生成模型中,得到多首具有不同风格的绝句。

本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取待生成绝句的首句;将所述首句的文字序列转化成首句向量;将所述首句向量和表示绝句风格类型的单热向量拼接之后得到的第一向量输入到预先建立好的绝句生成模型中,得到多首具有不同风格的绝句。

以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号