文本快速生成方法、计算机可读存储介质、电子设备

文档序号:24552099发布日期:2021-04-06 12:04阅读:69来源:国知局
文本快速生成方法、计算机可读存储介质、电子设备

本发明涉及自然语言生成技术领域,尤其涉及一种文本快速生成方法、一种计算机可读存储介质和一种电子设备。



背景技术:

自然语言生成技术是自然语言处理领域的一个重要分支,专指从机器可读数据生成自然语言文本的技术。表格到文本生成是自然语言生成领域的一个重要研究方向,在一些应用中经常会用到,例如搜索引擎和问答系统,可以帮助人们更好地理解表,特别是那些使用复杂数据的表格,如天气数据和医疗数据等。

表格数据不同于文本或图像这种只有单一维度序列或者维度之间无相关性的序列,它由属性和内容两部分构成,属性之间、内容之间、属性和内容之间都存在相关性。目前已有的生成方法并未能全面考虑表格数据的相关性。由于文本词汇量大,目标词汇表的规格大小有限,常常仅将多次出现的词汇进行统计,而无法包含出现次数非常少的词汇,所以在生成文本的过程中,会将这些词用未知词符号代替,但这些词在文本中或许非常重要,比如罕见的人名、地名等等,从而导致了生成文本并不准确。



技术实现要素:

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的在于提出一种文本快速生成方法,能够在保证文本生成正确的同时,提高文本生成速度。

本发明的第二个目的在于提出一种计算机可读存储介质。

本发明的第三个目的在于提出一种电子设备。

为达上述目的,本发明第一方面实施例提出了一种文本快速生成方法,该方法包括:获取表格数据;对所述表格数据中的内容进行分词后再进行词向量化处理,以获得表格属性层的词向量化序列和表格内容层的词向量化序列;分别对所述表格属性层的词向量化序列和所述表格内容层的词向量化序列进行编码,并结合注意力机制进行解码,以获得目标词id(identitydocument,身份标识号)序列;对所述目标词id序列进行文本转换,并进行关联词替换和未知词拷贝,以生成作为输出文本的最终单词序列。

本发明实施例的文本快速生成方法是将表格数据作为原始数据,并将其转为文本数据,首先获取表格数据,然后对表格数据中的内容进行分词,并在分词后进行词向量化处理,以获得表格属性层的词向量化序列和表格内容层的词向量化序列,再对表格属性层的词向量化序列和表格内容层的词向量化序列进行编码,结合注意力机制进行解码,以获得目标词id序列,最后对目标词id序列进行文本转换,并进行关联词替换和未知词拷贝,以生成作为输出文本的最终单词序列。由此,该文本快速生成方法能够在保证文本生成正确的同时,提高文本生成速度。

在本发明的一些示例中,对所述表格数据中的内容进行分词,以将表格中的每个词表示为词本身、对应的属性、每个词在其属性下出现正向和逆向的位置。

在本发明的一些示例中,分别对所述表格属性层的词向量化序列和所述表格内容层的词向量化序列进行编码,包括:以属性为主、内容为辅的方式,基于属性门的lstm对所述表格属性层的词向量化序列进行编码,以获得属性编码结果;以内容为主、属性为辅的方式,基于内容门的lstm对所述表格内容层的词向量化序列进行编码,以获得内容编码结果。

在本发明的一些示例中,所述解码过程包括:利用lstm-rnn,将编码后获得的属性编码结果和内容编码结果作为解码层的输入,再利用注意力机制,将每一步解码获得的隐藏状态与相应的编码结果关联,以获得当前解码状态与编码中各词的相关性;将当前解码状态与编码中各词的相关性进行加权变换,以获得属性层解码结果和内容层解码结果;将所述属性层解码结果和所述内容层解码结果进行加权变换,以获得对应目标词汇的概率,并根据所述概率的大小选择输出的词id,直到遇到结束id为止,以构成所述目标词id序列。

在本发明的一些示例中,对所述目标词id序列进行文本转换,包括:根据目标词汇表对所述目标词id序列进行逆向转换,以生成中间文本,其中,所述中间文本中的词类型包括表示出现在表格中的由属性和位置构成的词、表示未出现在表格中的由词本身和0构成的词、未知词。

在本发明的一些示例中,所述关联词替换包括:将所述中间文本中的由词本身和0构成的词替换为词本身,并从表格中寻找对应属性和位置的词,以替换所述中间文本中的由属性和位置信息构成的词。

在本发明的一些示例中,所述未知词拷贝包括:根据解码过程中基于注意力机制获得的权重将所述中间文本中的未知词替换成表格中的词。

在本发明的一些示例中,在获取所述表格数据之前,还进行模型训练,其中,根据输入的参考表格和参考文本进行模型训练时,对所述参考表格的内容进行分词,以将所述参考表格中的每个词表示为词本身、对应的属性、每个词在其属性下出现正向和逆向的位置;对所述参考文本进行处理,以将所述参考文本中出现在所述参考表格中的词替换成该词对应的属性和位置,并所述参考文本中未出现在所述参考表格中的词增加后缀0,以便形成新的参考文本;将所述新的参考文本作为编解码模型训练过程中的目标参考文本;统计所述参考表格中出现次数大于第一预设次数的属性的词以获得属性词汇表,并统计所述参考表格中出现次数大于第二预设次数的内容的词以获得内容词汇表,以及统计所述目标参考文本中出现次数大于第三预设次数的词以获得目标词汇表;分别对所述属性词汇表、所述内容词汇表和所述目标词汇表进行词向量化处理。

为达上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有文本快速生成程序,该文本快速生成程序被处理器执行时实现如上述实施例中所述的文本快速生成方法。

根据本发明实施例的计算机可读存储介质,处理器执行存储在该存储介质上的文本快速生成程序,能够在保证文本生成正确的同时,提高文本生成速度。

为达上述目的,本发明第三方面实施例提出了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的文本快速生成程序,所述处理器执行所述文本快速生成程序时,实现如上述实施例中所述的文本快速生成方法。

根据本发明实施例的电子设备,处理器执行存储在存储器上的文本快速生成程序,能够在保证文本生成正确的同时,提高文本生成速度。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

图1是本发明一个实施例的文本快速生成方法的流程图;

图2是本发明一个具体实施例的文本快速生成方法中编码的流程图;

图3是本发明一个具体实施例的文本快速生成方法中解码的流程图;

图4是本发明一个实施例的文本快速生成前模型训练的流程图;

图5是本发明一个具体实施例的文本快速生成方法中解码示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

下面参考附图描述本发明实施例的文本快速生成方法、计算机可读存储介质、电子设备。

图1是本发明一个实施例的文本快速生成方法的流程图。

如图1所示,文本快速生成方法包括以下步骤:

s10,获取表格数据。

具体地,在该实施例中,是将表格中的数据转为文本形式,即表格数据是原始数据,可以理解的是,表格数据中包括有表格属性和对应的内容。

在本发明的一些示例中,在进行步骤s10,获取表格数据之前,还进行模型训练,其中,如图4所示,根据输入的参考表格和参考文本进行模型训练时,包括以下步骤:

s100,对参考表格的内容进行分词,以将参考表格中的每个词表示为词本身、对应的属性、每个词在其属性下出现正向和逆向的位置。

s200,对参考文本进行处理,以将参考文本中出现在参考表格中的词替换成该词对应的属性和位置,并参考文本中未出现在参考表格中的词增加后缀0,以便形成新的参考文本。

s300,将新的参考文本作为编解码模型训练过程中的目标参考文本。

s400,统计参考表格中出现次数大于第一预设次数的属性的词以获得属性词汇表,并统计参考表格中出现次数大于第二预设次数的内容的词以获得内容词汇表,以及统计目标参考文本中出现次数大于第三预设次数的词以获得目标词汇表。

s500,分别对属性词汇表、内容词汇表和目标词汇表进行词向量化处理。

需要说明的是,本实施例中需要先对表格数据进行数据预处理,该数据预处理主要分为训练阶段和生成阶段,训练阶段是对表格和文本数据完成分词处理、文本关联、词汇表统计和词向量化过程,生成阶段是对表格数据进行分词处理和词向量化。

在本发明的一些实施例中,对表格数据中的内容进行分词,以将表格中的每个词表示为词本身、对应的属性、每个词在其属性下出现正向和逆向的位置。

具体地,分词处理是将表格内容中的每个词标识为四部分,即词本身、对应的属性、在该属性下出现正向和逆向的位置。需要说明的是,因为一个属性可能对应的多个内容,即“姓名”这个属性可以对应“张三”,也可以对应“李四”,所以可以通过正向位置和逆向位置进一步确定该属性所对应的词是哪一个。更具体地,正向位置是指从左到右计算每个词出现的位置,可以用阿拉伯数字进行表示,如最左端的词为“1”,从左往右依次用“1”,“2”,“3”…表示;可以理解的,逆向位置则是指从右到左计算每个词出现的位置,同样可以用阿拉伯数字进行表示。通过正向和逆向位置联合可以唯一确定一个词所在的位置,进一步地提高文本转换的准确度。举例而言,当表格中的词为“张三”时,则其对应的属性可以为“姓名”,而该属性下出现正向和逆向的位置可以表示为(1,1),那么表格内容中的“张三”这个词则可以表示为(张三,姓名,1,1)。

文本关联是针对训练数据进行的,对原始参考文本进行处理,将参考文本中出现在表格内容中的词替换成该词对应的属性和位置信息,如将“张三”替换成“姓名_1”,可选地,未出现在表格内容中的词则加入后缀0,如“是_0”,从而形成新的参考文本,作为编解码模型训练过程中的目标参考文本。这样可以减少噪音数据,例如一些罕见词,使模型训练更加快速。

词汇表统计是对训练数据的词汇进行统计,在该实施例中,主要有三个词汇表,分别为属性词汇表,内容词汇表和目标词汇表。属性词汇表统计的是表格中出现的属性,内容词汇表统计的是表格内容中出现的词,目标词汇表统计的是目标参考文本中出现的词。按照出现次数排序后,选择最常见的n个词,作为词汇表。词汇表中还包含三种特殊词,分别是开始词<sos>、结束词<eos>和未出现在词汇表中的词<unk>。

在词汇表统计完之后,则通过词向量化将词汇表转化为向量的表现形式。具体地,在训练阶段需要先构造词汇id表,即根据词汇表大小为词汇表中的词生成对应唯一的整型id,再将词汇id表映射到固定维度的实数向量中,即得到了词汇表的词向量,然后表格和目标参考文本中的词根据相关词汇id表全部转化为词向量作为编解码模型的输入。生成阶段只需要对表格中的词进行词向量转化。

s20,对表格数据中的内容进行分词后再进行词向量化处理,以获得表格属性层的词向量化序列和表格内容层的词向量化序列。

具体地,可以通过上述描述的方法获取表格属性层和表格内容层的词向量化序列。

s30,分别对表格属性层的词向量化序列和表格内容层的词向量化序列进行编码,并结合注意力机制进行解码,以获得目标词id序列。

在获取到表格属性层和表格内容层的词向量化序列之后,则可以分别对所获得的词向量化序列进行编码,同时结合注意力机制进行解码以得到目标词id序列。

在本发明的一些示例中,如图2所示,步骤s30,分别对表格属性层的词向量化序列和表格内容层的词向量化序列进行编码包括:

s301,以属性为主、内容为辅的方式,基于属性门的lstm对表格属性层的词向量化序列进行编码,以获得属性编码结果。s302,以内容为主、属性为辅的方式,基于内容门的lstm对表格内容层的词向量化序列进行编码,以获得内容编码结果。

具体地,表格属性层和表格内容层编码都使用基于lstm(longshort-termmemory,长短期记忆网络)的控制门,分别对表格中的属性层和内容层进行编码,属性层编码辅助加入内容信息,内容层编码辅助加入属性层信息,编码后的结果包括每个词对应的隐藏状态。

在该实施例中,如图3所示,解码过程包括:

s1,利用lstm-rnn(recurrentneuralnetwork,循环神经网络),将编码后获得的属性编码结果和内容编码结果作为解码层的输入,再利用注意力机制,将每一步解码获得的隐藏状态与相应的编码结果关联,以获得当前解码状态与编码中各词的相关性。s2,将当前解码状态与编码中各词的相关性进行加权变换,以获得属性层解码结果和内容层解码结果。s3,将属性层解码结果和内容层解码结果进行加权变换,以获得对应目标词汇的概率,并根据概率的大小选择输出的词id,直到遇到结束id为止,以构成目标词id序列。

具体地,属性层和内容层解码都使用lstm和注意力机制,首先将编码最后获得的状态作为解码层初始输入,开始词<sos>对应id作为解码初始词,然后使用lstm获取每一步的解码状态,并使用注意力机制计算获得的解码状态与对应层编码的所有隐藏状态的关联程度作为权重,结合两层解码逐个从词汇表id中选择权重最大的词id,直到遇到结束词<eos>。

s40,对目标词id序列进行文本转换,并进行关联词替换和未知词拷贝,以生成作为输出文本的最终单词序列。

具体地,在获取到目标词id序列之后,则将目标词id进行文本转换,然后可以通过关联词替换和未知词拷贝的方式,从而生成作为输出文本的最终单词序列。

在本发明的一些示例中,对目标词id序列进行文本转换,包括:根据目标词汇表对目标词id序列进行逆向转换,以生成中间文本,其中,中间文本中的词类型包括表示出现在表格中的由属性和位置构成的词、表示未出现在表格中的由词本身和0构成的词、未知词。

具体地,中间文本是将解码后生成的词id序列根据目标词汇表逆向转换而成的文本。中间文本中的词类型主要分为三种,一种是属性层和位置信息构成的,比如“姓名_1”,代表出现在表格中的词,另一类是词本身和0构成的,比如“是_0”,表示未在表格中出现的词,还有一类就是未知词,用<unk>表示。

在该实施例中,关联词替换包括:将中间文本中的由词本身和0构成的词替换为词本身,并从表格中寻找对应属性和位置的词,以替换中间文本中的由属性和位置信息构成的词。

具体地,关联词替换是替换中间文本的前两种词,一种是后缀为0的词,直接去掉后缀即可,如“是_0”替换成“是”,另一种是从表格中选取,寻找到对应属性和位置的词进行替换,如“姓名_1”替换成属性为“姓名”的第一个词“张三”。

在该实施例中,未知词拷贝包括:根据解码过程中基于注意力机制获得的权重将中间文本中的未知词替换成表格中的词。

具体地,未知词拷贝是利用拷贝机制,将未知词<unk>替换成表格中的词,主要根据在解码中注意力机制获得的权重来选取,权重越大,说明该词关系最紧密,则将关系最紧密的词作为替换与其对应的未知词<unk>。在经过上述实施例处理之后,则可以将文本转换后得到的词序列进行输出,从而得到最终文本。

以下以一个具体实施例方式对本发明的文本快速生成方法进行陈述。

具体地,本实施例选取2015年9月从英文维基百科中摘取的人物传记数据集wikibio,共有728321篇文章和对应表格数据,数据集选用文章第一句作为参考文本,平均每句有26.1个单词,其中9.5个单词出现在表格中,平均每个表格有53.1个单词和19.7个属性。该数据集划分成训练集(80%)、测试集(10%)、验证集(10%)。

在该实施例中,首先,输入原始数据,训练阶段的原始数据包括表格和文本,生成阶段的原始数据只有表格。然后将表格的内容进行分词,再表示为四部分;处理训练集中的参考文本,按照文本关联方法获得处理后的新文本,作为目标参考文本;统计wikibio数据集的训练集表格中属性出现的次数和内容单词出现的次数,挑选表格中出现次数大于100的15093个内容单词和出现次数大于10的属性,分别作为内容词汇表和属性词汇表,统计目标参考文本中的单词出现次数,挑选出现频率最高(如:20000次)的单词作为目标词汇表,则词汇表完成词向量化。

为了方便说明,表1展示了其中一条数据的表格处理、参考文本和目标参考文本。

表1表格处理、参考文本和目标参考文本举例

在完成表格属性层和内容层的词向量化序列之后,则对表格属性层和内容层的词向量化序列分别进行编码,再结合注意力机制进行解码得到目标词id序列,具体解码过程可以参见图5。

具体地,编码层由属性编码层和内容编码层构成。属性编码层主要负责属性之间的联系,以属性为主,内容为辅,通过基于属性门的lstm来实现,获得相应的编码结果。内容编码层主要负责内容之间的联系,以内容为主,属性为辅,通过基于内容门的lstm来实现,获得相应的编码结果。属性编码层和内容编码层的编码结果都包含每一步获得的编码状态,和最终获得的编码结果。

进一步地,解码层和注意力层也由两层构成,分别是属性层和内容层,这两层关系紧密。解码层是利用lstm-rnn,将编码后获得的编码结果作为解码层的输入,每一步都有两个隐藏状态,分别与属性和内容相关。再利用注意力机制,将每一步获得的隐藏状态与各自的编码结果关联,获得当前解码状态与编码中各词的相关性,经过加权变换,得到属性层和内容层的解码结果。将解码的两个结果进行加权变换得到对应目标词汇的概率,根据概率大小选择输出的词id,直到遇到结束id为止,构成了词id序列。

在获得词id序列之后,则利用文本转换将词id序列通过目标词汇表转换为目标单词序列,再通过关联词替换和未知词拷贝,生成最终的单词序列,再将最终的单词序列进行输出。

综上,通过上述实施例中的文本快速生成方法能够在保证文本生成正确的同时,提高文本生成速度。

进一步地,本发明提出了一种计算机可读存储介质,该存储介质上存储有与文本快速生成方法对应的文本快速生成程序,该文本快速生成程序被处理器执行时实现如上述实施例中的文本快速生成方法。

根据本发明实施例的计算机可读存储介质,处理器执行存储在该存储介质上的文本快速生成程序,能够在保证文本生成正确的同时,提高文本生成速度。

进一步地,本发明提出了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的文本快速生成程序,处理器执行文本快速生成程序时,实现如上述实施例中的文本快速生成方法。

根据本发明实施例的电子设备,处理器执行存储在存储器上的文本快速生成程序,能够在保证文本生成正确的同时,提高文本生成速度。

需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1