文本生成方法、装置、设备和存储介质与流程

专利2022-05-09  74


本发明涉及信息处理技术领域,具体涉及一种文本生成方法、装置、设备和存储介质。



背景技术:

文本生成技术广泛的应用于机器翻译、文本摘要和对话生成等任务中,是指将一篇文档生成与其相关的另一篇文档。而多语言文本生成技术是指将源文档生成与其相关的不同语言的文档。

当前的多语言文本生成技术普遍采用一种“生成-翻译”的两阶段方法,其中,第一阶段将源文档生成与其相关的另一篇文档,而第二阶段是将生成后的文档翻译成不同目标语言的结果。然而这种二阶段的方法通常会面临较为严重的误差传递问题,其中第一阶段生成的错误结果往往会对第二阶段翻译过程造成较为严重的影响。

因此,如何提高生成的文本的准确性,提高生成的文本的质量,是本领域技术人员亟待解决的技术问题。



技术实现要素:

本发明提供一种文本生成方法、装置、设备和存储介质,以解决现有技术中生成的文本准确性较低、质量高较低的技术问题。

本发明解决上述技术问题的技术方案如下:

一种文本生成方法,包括:

对源文档进行词序列划分,并将得到的词序列进行词向量处理,得到所述词序列对应的词矩阵;

利用编码器对所述词矩阵进行编码,得到输入词序列编码表示;

利用当前语言的解码器,在注意力机制下,根据编码器的隐状态、各解码器第n-1层中第i时刻之前的历史隐状态,对所述输入词序列编码进行解码,得到与当前语言对应的输出词序列编码表示;

将所述输出词序列编码表示输入当前语言的编码器的逻辑回归层进行线性变换,得到变换结果;

根据所述变换结果,得到与当前语言对应的目标文本。

进一步地,上述所述的文本生成方法中,根据编码器的隐状态、各解码器第n-1层中第i时刻之前的历史隐状态,对所述输入词序列编码进行解码,得到与当前语言对应的输出词序列编码表示,包括:

将所述编码器的隐状态、所述各解码器的历史隐状态和所述输入词序列编码分别代入预设的输出词序列编码计算式中计算,得到与当前语言对应的输出词序列编码表示;

所述输出词序列编码计算式如下:

为第l个解码器的输出词序列编码表示,l∈{1,2,...l},l为不同语言的种类,dl为第l个解码器,为第i时刻当前语言的解码器的输入词序列编码,为第l个解码器第n-1层中第i时刻之前的历史隐状态,he为编码器的隐状态。

进一步地,上述所述的文本生成方法中,第l个解码器第n-1层中第i时刻之前的历史隐状态的获取过程包括:

对输出词序列编码进行矩阵变换,得到输出向量;

对第i时刻当前语言的解码器的输入词序列编码进行矩阵变换,得到键向量和值向量;

确定所述键向量在所有语言上分布的第一权重和所述值向量在所有语言上分布的第二权重;

对所述第一权重和和所述第二权重进行累加和,得到键向量加权表征和值向量加权表征;

根据键向量加权表征、值向量加权表征和所述输出向量,输出第l个解码器第n-1层中第i时刻之前的历史隐状态。

进一步地,上述所述的文本生成方法中,将所述输出词序列编码表示输入当前语言的编码器的逻辑回归层进行线性变换,得到变换结果,包括:

将所述输出词序列编码表示输入所述解码器的逻辑回归层进行线性变换,输出i时刻所有词表中的概率分布,作为所述变换结果。

进一步地,上述所述的文本生成方法中,根据所述变换结果,得到与当前语言对应的目标文本,包括:

将最大概率对应的词汇作为i时刻的词汇;

基于所有时刻的词汇,生成所述与当前语言对应的目标文本。

本发明还提供一种文本生成装置,包括:

预处理模块,用于对源文档进行词序列划分,并将得到的词序列进行词向量处理,得到所述词序列对应的词矩阵;

编码模块,用于利用编码器对所述词矩阵进行编码,得到输入词序列编码表示;

解码模块,用于利用当前语言的解码器,在注意力机制下,根据编码器的隐状态、各解码器第n-1层中第i时刻之前的历史隐状态,对所述输入词序列编码进行解码,得到与当前语言对应的输出词序列编码表示;

变换模块,用于将所述输出词序列编码表示输入当前语言的编码器的逻辑回归层进行线性变换,得到变换结果;

文本生成模块,用于根据所述变换结果,得到与当前语言对应的目标文本。

进一步地,上述所述的文本生成装置中,所述解码模块,具体用于:

将所述编码器的隐状态、所述各解码器的历史隐状态和所述输入词序列编码分别代入预设的输出词序列编码计算式中计算,得到与当前语言对应的输出词序列编码表示;

所述输出词序列编码计算式如下:

为第l个解码器的输出词序列编码表示,dl为第l个解码器,为第i时刻当前语言的解码器的输入词序列编码,为第l个解码器第n-1层中第i时刻之前的历史隐状态,he为编码器的隐状态。

进一步地,上述所述的文本生成装置中,所述解码模块,还用于:

对输出词序列编码进行矩阵变换,得到输出向量;

对第i时刻当前语言的解码器的输入词序列编码进行矩阵变换,得到键向量和值向量;

确定所述键向量在所有语言上分布的第一权重和所述值向量在所有语言上分布的第二权重;

对所述第一权重和和所述第二权重进行累加和,得到键向量加权表征和值向量加权表征;

根据键向量加权表征、值向量加权表征和所述输出向量,输出第l个解码器第n-1层中第i时刻之前的历史隐状态。

本发明还提供一种文本生成设备,包括:处理器和存储器;

所述处理器用于执行所述存储器中存储的文本生成程序,以实现上述任一项所述的文本生成方法。

本发明还提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被执行时实现上述任一项所述的文本生成方法。

本发明的有益效果是:

对源文档进行词序列划分,并将得到的词序列进行词向量处理,得到所述词序列对应的词矩阵;利用编码器对所述词矩阵进行编码,得到输入词序列编码表示;利用当前语言的解码器,在注意力机制下,根据编码器的隐状态、各解码器第层中第时刻之前的历史隐状态,对所述输入词序列编码进行解码,得到与当前语言对应的输出词序列编码表示;将所述输出词序列编码表示输入当前语言的编码器的逻辑回归层进行线性变换,得到变换结果;根据所述变换结果,得到与当前语言对应的目标文本,实现了在目标文本生成过程中,不仅需要依赖源文档信息,还需要依赖其他语言的编码器生成的历史信息,从而有效地避免误差累积的问题,提升了生成文本的准确性、质量。

附图说明

图1为本发明的文本生成方法实施例的流程图;

图2为本发明的文本生成装置实施例的结构示意图;

图3为本发明实施例提供的文本生成设备的结构示意图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

图1为本发明的文本生成方法实施例的流程图,如图1所示,本实施例的文本生成方法可以包括如下步骤:

100、对源文档进行词序列划分,并将得到的词序列进行词向量处理,得到所述词序列对应的词矩阵;

在一个具体实现过程中,为了降低集外词对生成性能的影响,可以使用字节对编码(bytepairencoder,bpe)方法将源文档进行亚词切分,这样,编码器和解码器网络的输入单元均为亚词序列。

在得到源文档的词序列后,可以对源文档的词序列进行词向量处理,得到所述词序列对应的词矩阵。

具体地,可以定义x=[x1,x2,...,xn]表示源文档的词序列,x=[v1,v2,...,vn]表示词序列对应的词矩阵。其中,vn表示第n个词序列的向量。

101、利用编码器对所述词矩阵进行编码,得到输入词序列编码表示;

在一个具体实现过程中,可以定义fenc()为编码器计算单元,每个词经过编码器的编码表示可以由以下计算式(1)计算得到:

其中,表示第m个词序列的编码表示,vm表示第m个词序列的向量。经编码器编码后,可以得到编码器最顶层的编码表示hn

102、利用当前语言的解码器,在注意力机制下,根据编码器的隐状态、各解码器第n-1层中第i时刻之前的历史隐状态,对所述输入词序列编码进行解码,得到与当前语言对应的输出词序列编码表示;

在一个具体实现过程中,可以将所述编码器的隐状态、所述各解码器的历史隐状态和所述输入词序列编码分别代入预设的输出词序列编码计算式中计算,得到与当前语言对应的输出词序列编码表示。

所述输出词序列编码计算式如下:

其中,为第l个解码器的输出词序列编码表示,dl为第l个解码器,每个解码器对应一种语言,为第i时刻当前语言的解码器的输入词序列编码,为第l个解码器第n-1层中第i时刻之前的历史隐状态,he为编码器的隐状态。

在一个具体实现过程中,第l个解码器第n-1层中第i时刻之前的历史隐状态的获取过程包括:

(1)、对输出词序列编码进行矩阵变换,得到输出向量

(2)对第i时刻当前语言的解码器的输入词序列编码进行矩阵变换,得到键向量和值向量vil

其中,表示第一矩阵,表示第二矩阵

(2)确定键向量在所有语言上分布的第一权重和值向量vil在所有语言上分布的第二权重其中,

(3)对第一权重和第二权重进行累加和,得到键向量加权表征和值向量加权表征

(4)根据键向量加权表征值向量加权表征和输出向量输出第l个解码器第n-1层中第i时刻之前的历史隐状态。

103、将所述输出词序列编码表示输入当前语言的编码器的逻辑回归层进行线性变换,得到变换结果;

在一个具体实现过程中,可以将所述输出词序列编码表示输入所述解码器的逻辑回归层进行线性变换,输出i时刻所有词表中的概率分布,作为所述变换结果。

输出词序列编码表示经过线性变换得到变换后的输出词序列编码如下:

其中,为解码器的softmax层的输入表示。

经线性变换得到的通过softmax来输出每个时刻i在所有词表中的概率分布。

其中,w和b为模型参数,w维度与词维度相同。

104、根据所述变换结果,得到与当前语言对应的目标文本。

在一个具体实现过程中,可以将最大概率对应的词汇作为i时刻的词汇,并基于所有时刻的词汇,生成所述与当前语言对应的目标文本。

本实施例的文本生成方法,对源文档进行词序列划分,并将得到的词序列进行词向量处理,得到所述词序列对应的词矩阵;利用编码器对所述词矩阵进行编码,得到输入词序列编码表示;利用当前语言的解码器,在注意力机制下,根据编码器的隐状态、各解码器第n-1层中第i时刻之前的历史隐状态,对所述输入词序列编码进行解码,得到与当前语言对应的输出词序列编码表示;将所述输出词序列编码表示输入当前语言的编码器的逻辑回归层进行线性变换,得到变换结果;根据所述变换结果,得到与当前语言对应的目标文本,实现了在目标文本生成过程中,不仅需要依赖源文档信息,还需要依赖其他语言的编码器生成的历史信息,从而有效地避免误差累积的问题,提升了生成文本的准确性、质量。

需要说明的是,本发明实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本发明实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成的方法。

图2为本发明的文本生成装置实施例的结构示意图,如图2所示,本实施例的文本生成装置可以包括预处理模块20、编码模块21、解码模块22、变换模块23和文本生成模块24。

预处理模块20,用于对源文档进行词序列划分,并将得到的词序列进行词向量处理,得到所述词序列对应的词矩阵;

编码模块21,用于利用编码器对所述词矩阵进行编码,得到输入词序列编码表示;

解码模块22,用于利用当前语言的解码器,在注意力机制下,根据编码器的隐状态、各解码器第n-1层中第i时刻之前的历史隐状态,对所述输入词序列编码进行解码,得到与当前语言对应的输出词序列编码表示;

在一个具体实现过程中,可以将所述编码器的隐状态、所述各解码器的历史隐状态和所述输入词序列编码分别代入预设的输出词序列编码计算式中计算,得到与当前语言对应的输出词序列编码表示;

所述输出词序列编码计算式如下:

为第l个解码器的输出词序列编码表示,dl为第l个解码器,为第i时刻当前语言的解码器的输入词序列编码,为第l个解码器第n-1层中第i时刻之前的历史隐状态,he为编码器的隐状态。

在一个具体实现过程中,第l个解码器第n-1层中第i时刻之前的历史隐状态的获取过程包括:

(1)、对输出词序列编码进行矩阵变换,得到输出向量

(2)对第i时刻当前语言的解码器的输入词序列编码进行矩阵变换,得到键向量和值向量vil

其中,

(2)确定键向量在所有语言上分布的第一权重和值向量vil在所有语言上分布的第二权重其中,

(3)对第一权重和第二权重进行累加和,得到键向量加权表征和值向量加权表征

(4)根据键向量加权表征值向量加权表征和输出向量输出第l个解码器第n-1层中第i时刻之前的历史隐状态。

变换模块23,用于将所述输出词序列编码表示输入当前语言的编码器的逻辑回归层进行线性变换,得到变换结果;

具体地,可以将所述输出词序列编码表示输入所述解码器的逻辑回归层进行线性变换,输出i时刻所有词表中的概率分布,作为所述变换结果。

文本生成模块24,用于根据所述变换结果,得到与当前语言对应的目标文本。

具体地,可以将最大概率对应的词汇作为i时刻的词汇;基于所有时刻的词汇,生成所述与当前语言对应的目标文本。

上述实施例的装置用于实现前述实施例中相应的方法,其具体实现方案可以参见前述实施例记载的方法及方法实施例中的相关说明,并且具有相应的方法实施例的有益效果,在此不再赘述。

图3为本发明实施例提供的文本生成设备的结构示意图,如图3所示,本实施例的通行设备可以包括:处理器1010和存储器1020。本领域技术人员可知的,该设备还可以包括输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

本发明还提供一种存储介质,其存储有一个或者多个程序,所述一个或者多个程序可被执行时实现上述实施例的文本生成方法。

本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。

以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。


技术特征:

1.一种文本生成方法,其特征在于,包括:

对源文档进行词序列划分,并将得到的词序列进行词向量处理,得到所述词序列对应的词矩阵;

利用编码器对所述词矩阵进行编码,得到输入词序列编码表示;

利用当前语言的解码器,在注意力机制下,根据编码器的隐状态、各解码器第n-1层中第i时刻之前的历史隐状态,对所述输入词序列编码进行解码,得到与当前语言对应的输出词序列编码表示;

将所述输出词序列编码表示输入当前语言的编码器的逻辑回归层进行线性变换,得到变换结果;

根据所述变换结果,得到与当前语言对应的目标文本。

2.根据权利要求1所述的文本生成方法,其特征在于,根据编码器的隐状态、各解码器第n-1层中第i时刻之前的历史隐状态,对所述输入词序列编码进行解码,得到与当前语言对应的输出词序列编码表示,包括:

将所述编码器的隐状态、所述各解码器的历史隐状态和所述输入词序列编码分别代入预设的输出词序列编码计算式中计算,得到与当前语言对应的输出词序列编码表示;

所述输出词序列编码计算式如下:

为第l个解码器的输出词序列编码表示,l∈{1,2,...l},l为不同语言的种类,dl为第l个解码器,为第i时刻当前语言的解码器的输入词序列编码,为第l个解码器第n-1层中第i时刻之前的历史隐状态,he为编码器的隐状态。

3.根据权利要求2所述的文本生成方法,其特征在于,第l个解码器第n-1层中第i时刻之前的历史隐状态的获取过程包括:

对输出词序列编码进行矩阵变换,得到输出向量;

对第i时刻当前语言的解码器的输入词序列编码进行矩阵变换,得到键向量和值向量;

确定所述键向量在所有语言上分布的第一权重和所述值向量在所有语言上分布的第二权重;

对所述第一权重和和所述第二权重进行累加和,得到键向量加权表征和值向量加权表征;

根据键向量加权表征、值向量加权表征和所述输出向量,输出第l个解码器第n-1层中第i时刻之前的历史隐状态。

4.根据权利要求1所述的文本生成方法,其特征在于,将所述输出词序列编码表示输入当前语言的编码器的逻辑回归层进行线性变换,得到变换结果,包括:

将所述输出词序列编码表示输入所述解码器的逻辑回归层进行线性变换,输出i时刻所有词表中的概率分布,作为所述变换结果。

5.根据权利要求4所述的文本生成方法,其特征在于,根据所述变换结果,得到与当前语言对应的目标文本,包括:

将最大概率对应的词汇作为i时刻的词汇;

基于所有时刻的词汇,生成所述与当前语言对应的目标文本。

6.一种文本生成装置,其特征在于,包括:

预处理模块,用于对源文档进行词序列划分,并将得到的词序列进行词向量处理,得到所述词序列对应的词矩阵;

编码模块,用于利用编码器对所述词矩阵进行编码,得到输入词序列编码表示;

解码模块,用于利用当前语言的解码器,在注意力机制下,根据编码器的隐状态、各解码器第n-1层中第i时刻之前的历史隐状态,对所述输入词序列编码进行解码,得到与当前语言对应的输出词序列编码表示;

变换模块,用于将所述输出词序列编码表示输入当前语言的编码器的逻辑回归层进行线性变换,得到变换结果;

文本生成模块,用于根据所述变换结果,得到与当前语言对应的目标文本。

7.根据权利要求6所述的文本生成装置,其特征在于,所述解码模块,具体用于:

将所述编码器的隐状态、所述各解码器的历史隐状态和所述输入词序列编码分别代入预设的输出词序列编码计算式中计算,得到与当前语言对应的输出词序列编码表示;

所述输出词序列编码计算式如下:

为第l个解码器的输出词序列编码表示,dl为第l个解码器,为第i时刻当前语言的解码器的输入词序列编码,为第l个解码器第n-1层中第i时刻之前的历史隐状态,he为编码器的隐状态。

8.根据权利要求7所述的文本生成装置,其特征在于,所述解码模块,还用于:

对输出词序列编码进行矩阵变换,得到输出向量;

对第i时刻当前语言的解码器的输入词序列编码进行矩阵变换,得到键向量和值向量;

确定所述键向量在所有语言上分布的第一权重和所述值向量在所有语言上分布的第二权重;

对所述第一权重和和所述第二权重进行累加和,得到键向量加权表征和值向量加权表征;

根据键向量加权表征、值向量加权表征和所述输出向量,输出第l个解码器第n-1层中第i时刻之前的历史隐状态。

9.一种文本生成设备,其特征在于,包括:处理器和存储器;

所述处理器用于执行所述存储器中存储的文本生成程序,以实现权利要求1-5任一项所述的文本生成方法。

10.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被执行时实现权利要求1-5任一项所述的文本生成方法。

技术总结
本发明涉及一种文本生成方法、装置、设备和存储介质,方法包括对源文档进行词序列划分,进一步得到词序列对应的词矩阵;利用编码器对词矩阵进行编码,得到输入词序列编码表示;利用当前语言的解码器,在注意力机制下,根据编码器的隐状态、各解码器第n‑1层中第i时刻之前的历史隐状态,对输入词序列编码进行解码,得到与当前语言对应的输出词序列编码表示;将输出词序列编码表示输入当前语言的编码器的逻辑回归层进行线性变换,根据变换结果,得到与当前语言对应的目标文本。实现了在目标文本生成过程中,不仅需要依赖源文档信息,还需要依赖其他语言的编码器生成的历史信息,从而有效地避免误差累积的问题,提升了生成文本的准确性、质量。

技术研发人员:王亦宁;刘升平;梁家恩
受保护的技术使用者:云知声智能科技股份有限公司;厦门云知芯智能科技有限公司
技术研发日:2021.06.02
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-7865.html

最新回复(0)