一种文本数据生成方法、装置、设备及可读存储介质与流程

文档序号:18030955发布日期:2019-06-28 22:39阅读:182来源:国知局
一种文本数据生成方法、装置、设备及可读存储介质与流程

本申请涉及自然语言处理技术领域,更具体地说,涉及一种文本数据生成方法、装置、设备及可读存储介质。



背景技术:

人工智能的不断突破,使得自然语言处理技术也得到了突飞猛进的进步,包括以前无法想象的机器写作、机器作诗等,比如,某实验室开发的机器人可以模仿某个人发文,某公司的人工智能项目在学习了上千本浪漫小说后写出后现代诗歌。

深度学习的方法在很多领域取得了非常卓越的成果,这得益于算法的不断改进、计算机能力的不断提升,以及大量高质量的标注数据。数据是深度学习的基础,如果没有大量的数据,很难训练出鲁棒性较好的模型。然而,在某些领域并没有大量的高质量数据,因此,亟需一种能够自动生成文本数据的方案。



技术实现要素:

有鉴于此,本申请提供了一种文本数据生成方法、装置、设备及可读存储介质,用以自动生成高质量的文本数据,以解决某些领域没有大量高质量数据的问题,其技术方案如下:

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

获取目标词;

基于所述目标词和预先建立的数据生成模型,获得多个生成词,其中,所述多个生成词由所述数据生成模型基于输入词逐个生成,第一个生成词基于作为第一个输入词的所述目标词生成,其它生成词中的任一生成词基于作为输入词的前一生成词生成,所述数据生成模型能够获取一个句子中的任一词与句子中其它各个词的依赖关系,用于生成与输入词的位置关系和语关系最紧密的词;

将所述目标词和所述多个生成词组成句子,作为基于所述目标词生成的一条文本数据。

可选的,建立所述数据生成模型的过程包括:

利用训练语句对初始的数据生成模型进行预训练,其中,进行预训练时,数据生成模型基于所述训练语句中多个词分别对应的、包含语义信息和位置信息的词向量进行训练,输出基于所述训练语句生成的一个语句;

利用训练词对预训练后的数据生成模型进一步进行训练,进一步训练得到的数据生成模型作为最终的数据生成模型,其中,进一步进行训练时,数据生成模型基于单个训练词对应的词向量进行训练,输出基于所述训练词生成的词,输出的词作为下一训练词输入数据生成模型,直至获得一条完整语句。

可选的,所述利用训练语句对初始的数据生成模型进行预训练,包括:

对所述训练语句进行预处理,获得预处理语句,其中,所述预处理包括分词处理和去停用词处理;

将所述预处理语句输入所述初始的数据生成模型的词向量确定模块,获得所述预处理语句中各个词对应的、包含语义信息和位置信息的词向量;

将所述预处理语句各个词对应的词向量并行输入所述初始的数据生成模型的注意力模块,获得所述预处理语句中每个词对应的、包含该词和所述预处理语句中其它各个词的语义关系的词向量;

将所述每个词对应的、包含该词和所述预处理语句中其他各个词的语义关系的词向量输入所述初始的数据生成模型的词确定模块,分别获得与所述预处理语句中每个词的位置关系和语义关系最紧密的词,与所述预处理语句中每个词的位置关系和语义关系最紧密的词组成生成语句;

基于所述生成语句和预设的目标函数,对所述初始的数据生成模型的参数进行更新。

可选的,通过所述词向量确定模块确定所述预处理语句中任一词对应的、包含语义信息和位置信息的词向量,包括:

通过所述词向量确定模块确定该词对应的、包含该词的语义信息的语义向量,以及,该词对应的、包含该词在所述预处理语句中所处位置信息的位置向量,并将该词对应的语义向量与该词对应的位置向量相加,获得该词对应的、包含语义信息和位置信息的词向量。

可选的,所述利用训练词对预训练后的数据生成模型进一步进行训练,包括:

获取一训练词作为当前输入词,并将所述预训练后的数据生成模型作为当前数据生成模型;

将当前输入词输入当前数据生成模型,获得当前输入词对应的当前生成词;

对当前生成词进行评估,获得当前生成词对应的评估结果,并基于当前生成词对应的评估结果更新当前数据生成模型的参数;

将当前生成词作为当前输入词,执行所述将当前输入词输入当前数据生成模型,直至所有生成词组成一个完整的句子。

可选的,所述对当前生成词进行评估,获得当前生成词对应的评估结果,并基于当前生成词对应的评估结果更新当前数据生成模型的参数,包括:

将当前数据生成模型作为强化学习的代理,将当前生成词作为强化学习的动作,采用强化学习的策略梯度算法对当前生成词进行评估,获得当前生成词对应的评估结果;

将当前生成词对应的评估结果作为强化学习的奖赏,基于所述奖赏更新当前数据生成模型的参数。

可选的,所述对当前生成词进行评估,获得当前生成词对应的评估结果,包括:

从至少两个评估维度对当前生成词进行评估,获得当前生成词对应的评估结果;其中,至少一个评估维度为当前已生成的所有词,至少一个评估维度为基于当前已生成的所有词预测的句子的完整度。

可选的,所述文本数据生成方法还包括:

若所述文本数据为非口语化语句,则确定所述文本数据中每个词的属性信息;

基于所述文本数据中每个词的属性信息,将所述文本数据转换为口语化的文本数据。

可选的,所述确定所述文本数据中每个词的属性信息,包括:

将所述文本数据输入预先建立的拟口语化模型,获得所述拟口语化模型输出的、所述文本数据中每个词的属性信息,其中,一个词的属性信息用于指示该词的词性和/或该词是否为命名实体。

可选的,所述基于所述文本数据中每个词的属性信息,将所述文本数据转换为口语化的文本数据,包括:

基于所述文本数据中每个词的属性信息,对所述文本数据中的部分词进行修改、和/或替换、和/或删除,和/或,在指定属性信息的词后添加语气词。

一种文本数据生成装置,包括:获取模块和数据生成模块;

所述获取模块,用于获取目标词;

所述文本数据生成模块,用于基于所述目标词和预先建立的数据生成模型,获得多个生成词,将所述目标词和所述多个生成词组成句子,作为基于所述目标词生成的一条文本数据;

其中,所述多个生成词由所述数据生成模型基于输入词逐个生成,第一个生成词基于作为第一个输入词的所述目标词生成,其它生成词中的任一生成词基于作为输入词的前一生成词生成,所述数据生成模型能够获取一个句子中的任一词与句子中其它各个词的依赖关系,用于生成与输入词的位置关系和语关系最紧密的词。

一种文本数据生成设备,包括:存储器和处理器;

所述存储器,用于存储程序;

所述处理器,用于执行所述程序,实现所述文本数据生成方法的各个步骤。

一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现所述文本数据生成方法的各个步骤。

从上述的技术方案可以看出,本申请提供的文本数据生成方法,在获取到目标词后,可基于目标词和利用预先建立的数据生成模型自动生成文本数据,并且,由于数据生成模型能够获取一个句子中的任一个词与句子中其它各个词的依赖关系,因此,基于该数据生成模型能够生成与输入词的位置关系和语义关系最紧密的词,进而可获得具有逻辑性和连贯性的高质量文本数据,即本申请提供的文本数据生成方法能够自动生成高质量的文本数据。

附图说明

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

图1为本申请实施例提供的对基于rnn的文本生成模型进行训练的示意图;

图2为本申请实施例提供的文本数据生成方法的流程示意图;

图3为本申请实施例提供的建立数据生成模型的流程示意图;

图4为本申请实施例提供的对数据生成模型进行预训练的流程示意图;

图5为本申请实施例提供的确定一语句中各个词对应的、包含语义信息和位置信息的词向量的示意图;

图6为本申请实施例提供的数据生成模型的一拓扑结构及对数据生成模型进行预训练的示意图;

图7为本申请实施例提供的词之间关联关系的一示例的示意图;

图8为本申请实施例提供的利用训练词对预训练后的数据生成模型进一步进行训练的流程示意图;

图9为本申请实施例提供的强化学习的示意图;

图10为本申请实施例提供的mcro模型基于当前已生成词对未来可能生成的词进行模拟的示意图;

图11为本申请实施例提供的对预训练后的数据生成模型进一步进行训练的示意图;

图12为本申请实施例提供的拟口语化模型的一拓扑结构的示意图;

图13为本申请实施例提供的文本数据生成装置的结构示意图;

图14为本申请实施例提供的文本数据生成设备的结构示意图。

具体实施方式

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

为了能够自动生成高质量的文本数据,本案发明人进行了深入研究:

起初的思路是:使用错位预测法生成文本数据,具体的,首先训练一数据生成模型,然后利用该数据生成模型生成文本数据,由于一条文本数据(即一句话)是由多个词按照顺序组成的,因此,其相当于一个序列,而循环神经网络rnn非常擅长处理序列问题,基于此,文本数据生成模型可以rnn为基础结构。在训练将文本数据生成模型时,将一条文本数据作为输入序列输入文本数据生成模型,具体地,将一条文本数据中每个词按照顺序输入,每输入一个词,就会得到一个对应的输出,这个输出就是该条文本数据中该词的后向相邻词,生成文本数据的过程就是每个字不断输入文本数据生成模型,然后将输出作为下一次的输入,不断循环递归。如图1所示,数据生成模型的输入为“todayyoudothingspeoplewillnotdo,tomorrowyouwilldothingspeoplecannotdo.”,输入单词“today”对应的输出是单词“you”,输入单词“you”对应的输出为单词“do”,按照这种方法不断的进行迭代训练,最后训练出文本数据生成模型。

本案发明人经过研究发现:上述的数据生成方法虽然能够自动生成文本数据,但是存在一些问题,主要问题包括两个:

其一,语言的长距离依赖现象导致生成的文本数据不合逻辑。

所谓的“语言的长距离依赖现象”指的是有的词需要一个较大范围的上下文环境才能确定其语义,而基于rnn的文本数据生成模型很难将较大范围的上下文信息或者较长距离的上下文信息利用起来,这导致基于rnn的文本数据生成模型会生成一些不合逻辑的文本。比如,文本数据“山上有很多杜鹃,春天到了的时候,会漫山遍野的开放,非常美丽。”和文本数据“山上有很多杜鹃,春天到了的时候,会漫山遍野的啼鸣,非常婉转。”中均存在“杜鹃”,“杜鹃”在第一条文本数据中指的是一种花,在第二条文本数据中指的是一种鸟。由于基于rnn的文本数据生成模型很难将较长距离的上下文信息利用起来,因此,可能会生成“山上有很多杜鹃,漫山啼鸣,非常漂亮”这样不符合逻辑的文本数据。

其二,生成的文本数据不通顺。

基于rnn的数据生成模型循环生成词,最后将输出的所有词进行组合,获得最终的文本数据,使用这种方法生成文本数据会存在偏差爆炸的现象,即生成数据的过程会“一步错,步步错”。在生成数据的过程中,上一步得到的输出作为下一步的输入,可以理解的,这种情况下一旦出现一个小的偏差,将会导致随着序列长度的不断增加,偏差越来越大,那么,最终生成的文本数据就有很大的失真度,最明显的体现就是文本数据不通顺。

鉴于上述问题,本案发明人进行了进一步深入研究,最终提出了一种效果较好的文本数据生成方法。接下来通过下述实施例对本申请提供的文本数据生成方法进行介绍。

本申请提供的文本数据生成方法,可以应用于终端,也可以应用于服务器,适用于具有较少训练文本数据或者难以获取训练文本数据,需要生成文本数据的场景,请参阅图2,示出了本申请实施例提供的文本数据生成方法的流程示意图,该方法可以包括:

步骤s201:获取目标词。

具体地,目标词可以为基于指定应用场景获取的词,比如,可从与指定应用场景对应的词库中随机获取一个词作为目标词。

步骤s202:将目标词输入预先建立的数据生成模型,获得多个生成词。

其中,多个生成词由数据生成模型基于输入词逐个生成,第一个生成词基于作为第一个输入词的目标词生成,其它生成词中的任一生成词基于作为输入词的前一生成词生成,数据生成模型能够获取一个句子中的任一词与句子中其它各个词的依赖关系,用于生成与输入词的位置关系和语义关系最紧密的词。

具体地,将目标词输入数据生成模型,数据生成模型生成与目标词的位置关系和语义关系最紧密的词作为第一个生成词,接着,将第一个生成词作为输入词输入数据生成模型,数据生成模型基于第一个生成词输出第二个生成词,将第二个生成词作为输入词输入数据生成模型,数据生成模型输出第三个生成词,以此类推,获得所有的生成词。例如,目标词为“山上”,将其输入数据生成模型,获得第一个生成词“有很多”,“有很多”作为输入词输入数据生成模型,获得第二个生成词“杜鹃”,以此类推获得后续生成词,最终获得由目标词和所有生成词组成的一个句子。

由前述内容可知,由于基于rnn的数据生成模型往往只重视与距离较近的词的联系,而忽略了与距离较远的词的联系,即对长文本的挖掘深度不够,导致其生成的文本数据可能不合乎逻辑。为了能够生成合乎逻辑的文本数据,本实施例预先构建了能够对长文本进行深度挖掘的数据生成模型,该数据生成模型不但能够挖掘与指定词的距离较近的词与指定词的联系,还能挖掘与指定词的距离较远的词与指定词的联系,从而生成与指定词的位置关系和语义关系最紧密的词,进而生成合乎逻辑的高质量的文本数据。

步骤s203:将目标词和多个生成词组成句子,作为基于目标词生成的一条文本数据。

从上述的技术方案可以看出,本申请提供的文本数据生成方法,在获取到目标词后,可基于目标词,利用预先建立的数据生成模型自动生成文本数据,并且,由于本申请实施例中的数据生成模型能够获取一个句子中的任一个词与句子中其它各个词的依赖关系,因此,基于该数据生成模型能够生成与输入词的位置关系和语义关系最紧密的词,进而可获得具有逻辑性和连贯性的高质量文本数据,即本申请提供的文本数据生成方法能够自动生成高质量的文本数据。

在本申请的另一实施例中,对上述步骤s102提及的数据生成模型的建立过程进行介绍。

请参阅图3,示出了建立数据生成模型的流程示意图,可以包括:

步骤s301:利用训练语句对初始的数据生成模型进行预训练。

具体地,初始的数据生成模型指的是预先搭建好的、尚未进行训练的数据生成模型。在进行预训练时,数据生成模型基于训练语句中多个词分别对应的、包含语义信息和位置信息的词向量进行训练,输出基于训练语句生成的一个语句。

步骤s302:利用训练词对预训练后的数据生成模型进一步进行训练,进一步训练得到的数据生成模型作为最终的数据生成模型。

进一步进行训练时,数据生成模型基于单个训练词对应的词向量进行训练,输出基于训练词生成的词,输出的词作为下一训练词输入数据生成模型,直至获得一条完整语句。

以下对数据生成模型的预训练过程进行介绍。

请参阅图4,示出了对数据生成模型进行预训练的流程示意图,可以包括:

步骤s401:对训练语句进行预处理,获得预处理语句。

具体地,对训练语句进行预处理的过程包括:首先,对训练语句进行分词处理,获得分词结果;然后,将分词结果中的停用词去除,获得预处理语句。示例性的,训练语句为“山上有很多杜鹃,春天到了的时候,会漫山遍野的开放,非常美丽”,对其进行预处理后为“山上有很多杜鹃春天到了的时候会漫山遍野的开放非常美丽”。

步骤s402:将预处理语句输入初始的数据生成模型的词向量确定模块,获得预处理语句中各个词对应的、包含语义信息和位置信息的词向量。

具体的,通过词向量确定模块确定预处理语句中各个词对应的、包含语义信息和位置信息的词向量的过程可以包括:对于预处理语句中的任一个词:确定该词对应的、包含该词的语义信息的语义向量,以及,该词对应的、包含该词在所述预处理语句中所处位置信息的位置向量,将该词对应的语义向量与该词对应的位置向量相加,获得该词对应的、包含语义信息和位置信息的词向量;以得到预处理语句中各个词对应的、包含语义信息和位置信息的词向量。可选的,可利用wordembedding模型确定预处理语句中各个词对应的、包含语义信息语义向量。

对于位置向量的确定,可选的,可对预处理语句中的每个词的位置进行编号,然后针对每个编号确定一向量,具体的,可利用下式确定预处理语句中各个词对应的位置向量:

上式表示位置为loc的词映射为维度为dim的位置向量,loc位置的位置向量的第j个元素可表示为le(loc,j)j=0,1,2…,(dim-1),dim为位置向量的维度,之所以这样表示,是因为在文本数据中,词的绝对位置很重要,词的相对位置也很重要,根据三角函数的差角公式,假设存在固定偏移向量l,le(loc+l)可以用le(loc)线性表示。

示例性的,如图5所示,一英文语句为“donotgiveupanddonotgivein”,基于上式(1)可确定该英文语句中第一个单词“do”对应的位置向量为le(1,0)=sin1,即上述中的loc=1,i=0,第二个单词“not”对应的位置向量为le(1,1)=cos1,以此类推,可获得各个单词对应的位置向量。

在获得预处理句子中各个词对应的语义向量和各个词对应的位置向量后,将各个词对应的语义向量和各个词对应的位置向量相加,便可得到预处理句子中各个词最终对应的词向量,该词向量既包含了词的语义信息,又包含了词的位置信息。需要说明的是,一个词对应的语义向量的维度与该词对应的位置向量的维度相同,

如图5所示,英文语句为“donotgiveupanddonotgivein”中,“do”对应的语义向量表示为edo,“do”对应的位置向量表示为e1,则将do”对应的语义向量edo与“do”对应的位置向量e1相加,便得到do”对应的包含语义信息和位置信息的词向量,其它单词类似。需要说明的是,图5中的e[on]表示一个语句的开始向量,e[s]表示一个语句的结束向量。

假设“donotgiveupanddonotgivein”中每个单词对应的语义向量为100维的向量:

则在每个词对应的语义向量上加上对应的位置向量后得到:

可以理解的是,由于一个语句中的各个词对应的词向量中包含了位置信息,因此,通过词向量可以分辨出语句中不同位置的词。

步骤s403:将预处理语句各个词对应的词向量并行输入初始的数据生成模型的注意力模块,获得预处理语句中每个词对应的、包含该词和预处理语句中其它各个词的语义关系的词向量。

其中,对于预处理语句中的任一个词,数据生成模型的注意力模块用于基于该词对应的词向量和预处理语句中其它各个词对应的词向量,确定该词与预处理语句中其它各个词的关系权重(一个词与另一个词的关系权重越大,表明该词与另一个词的关系越紧密),进而基于该词与预处理语句中其它各个词的关系权重获得该词对应的、包含该词和预处理语句中其它各个词的语义关系的词向量。

需要说明的是,数据生成模型的注意力模块确定一个句子中每个词与句子中其他各个词的关系权利的目的是,学习句子内部词的依赖关系,捕获句子的内部结构,以提高数据生成模型的语义理解能力。需要说明的是,本实施例中注意力模块能够无视词之间的距离直接计算依赖关系,能够学习一个句子的内部结构。

另外,本实施例将预处理语句的各个词并行输入文本输入模型,即,将预处理语句各个词对应的词向量并行输入数据生成模型的注意力模块,能够大大提高模型的训练效率。

请参阅图6,示出了数据生成模型的一拓扑结构及对数据生成模型进行预训练的示意图,数据生成模型的输入数据由n个词组成,分别表示为w1、w2、…、wn,n个词输入词向量确定模块,词向量确定模块将w1、w2、…、wn映射为包含语义信息和位置信息的词向量,分别表示为e1、e2、…、en,进一步,将上述e1、e2、…、en并行输入多个注意力模块(一个注意力模块对应一个词),注意力模块即为图6中的multi-intra-attention层(multi-intra-attention可用mia表示),multi-intra-attention层可以由多个(比如10个)内部注意力层intra-attention(intra-attention可用ia表示)堆叠而成,使用多个intra-attention可以全方位提取文本特征。对于任一multi-intra-attention层而言,其输入除了对应词对应的词向量外,还包括输入语句中其他各个词对应的词向量,用于获取对应词与句子中其他各个词的语义关系。具体的,multi-intra-attention和intra-attention的计算公式如下:

mia(q,k,v)=contact(ia0,...,iap)wo(2)

上式中,ia0,...,iap分别表示p个intra-attention层的输出结果,wo为输出层参数,用于对intra-attention层的输出调整进行调整,w表示当前位置输入的单词,ks和vs表示输入语句,m表示句子的长度。

步骤s404:将每个词对应的、包含该词和预处理语句中其他各个词的语义关系的词向量输入初始的数据生成模型的词确定模块,分别获得与预处理语句中每个词的位置关系和语义关系最紧密的词,与预处理语句中每个词的位置关系和语义关系最紧密的词组成生成语句。

需要说明的是,在预训练过程中,为了使网络收敛,可以对multi-intra-attention层的输出进行正则化,文本数据模型还包括正则化模块,如图6所示,正则化模块可以为norm层,norm层是一种横向的规范化,它综合考虑一层所有维度的输入,计算该层的平均输入值和输入方差,然后用同一个规范化操作来转换各个维度的输入。文本数据模型还可以包括残差网络、linear层和softmax层(即,上述的词确定模块可以包括norm层、残差网络、linear层和softmax层),softmax层将前面网络输出的结果转化为词{y1,y2,…,yn},其中,y1是w1对应的生成词,y2是w2对应的生成词,….yn是wn对应的生成词,y1~yn组合即得到生成语句。

步骤s405:基于生成语句和预设的目标函数,对数据生成模型的参数进行更新。

可选的,可基于组成生成语句的生成词{y1,y2,…,yn}和log似然似然函数更新数据生成模型的参数,log似然似然函数为:

l=logp(y1,y2,...,yn)(4)

上述预训练过程,一方面对词的位置信息进行编码,在词向量中融入位置信息,另一方面,通过注意力模块基于输入词对应的词向量和输入词所在句子中的其它词对应的词向量确定该输入词与其他各个词的语义关系,这两方面使得数据生成模型能够确定输入词的真正含义,还能解决词与词间距离过长导致的关联度下降的问题。如图7所示,对于语句“山上有很多杜鹃春天到了的时候会漫山遍野的开放非常漂亮”,通过位置编码和注意力机制可获知和“杜鹃”关系权重比较大(或者关系比较紧密)的词,通过这些词可以确定“杜鹃”的真正含义。

本实施例通过对数据生成模型进行预训练,能够显著提高数据生成模型的语义理解能力,进而能够提高数据生成模型生成的文本数据的质量,并且,对数据生成模型进行预训练可以使数据生成模型定性地学习到不同特征,进而提高模型的泛化能力。

以下对利用单个训练词对预训练后的数据生成模型进一步进行训练的过程进行介绍。

需要说明的是,文本数据不同于图像数据,文本数据分词后,各词对应的词向量之间是不连续的,无法使用链式求导法直接对数据生成模型进行参数更新,这样的模型在生成文本数据的过程中,可能出现偏差爆炸现象。为了避免出现偏差爆炸现象,本申请提出如下思想:对数据生成模型生成的词进行评估,用评估结果指导数据生成模型的参数更新,即相当于对数据生成过程进行监督,防止一步错步步错的现象。

请参阅图8,示出了利用训练词对预训练后的数据生成模型进一步进行训练的流程示意图,可以包括:

步骤s801:获取一训练词作为当前输入词,并将预训练后的数据生成模型作为当前数据生成模型。

具体地,可以随机获取一个训练词作为进一步训练的当前输入词,将上述预训练后的数据生成模型作为当前数据生成模型。

步骤s802:将当前输入词输入当前数据生成模型,获得当前输入词对应的当前生成词。

步骤s803:对当前生成词进行评估,获得当前生成词对应的评估结果,并基于当前生成词对应的评估结果更新当前数据生成模型的参数。

在一种可能的实现方式中,可将强化学习的思想引入数据生成模型的训练。如图9所示,强化学习主要包括代理(agent)和环境(environment)两部分,代理(agent)每做出一个动作(action)就会对环境有一个状态(state)影响,此时环境(environment)还会给agent返回奖赏(reward),这个奖赏(reward)将会指导代理(agent)接下来的动作。

本申请实施例中,将可以将数据生成模型看作上述强化学习的代理(agent),将生成词看作强化学习的动作(action),使用强化学习的策略梯度(policygradient)指导数据生成模型的参数更新,具体的,首先采用强化学习的策略梯度(policygradient)算法对当前生成词进行评估,获得当前生成词对应的评估结果,然后将当前生成词对应的评估结果作为强化学习的奖赏(reward),基于奖赏(reward)更新当前数据生成模型的参数。

本实施例可基于数据生成模型和强化学习的策略梯度(policygradient)设计如下目标函数:

式中,θ为数据生成模型的参数,s0为初始状态值,rt为强化学习中的奖赏(reward),z={z1,z2,...,zm}为生成的句子,zi代表句子中的词。e[rt|s0,θ]指的是通过更新参数θ得到在初始状态s0下产生期望最大的奖赏(reward)。(zi|s0)指的是生成器在s0下产生的单词zi,r(s0,zi)是强化学习的action-reward函数。r(s0,zi)是引导数据生成模型更新参数的关键函数,通过这个函数,根据数据生成模型生成的每一个词都得到一个奖赏(reward),然后反馈给数据生成模型。action-reward函数如下所示:

r(s0,zi)=p(z1)p(z2|z1)...p(zm|z1,...zm-1)(6)

优选的,在对数据生成模型输出的每个生成词进行评估时,除了对当前已生成的词进行评估外,还可基于当前已生成的所有词预测未来可能生成的句子,对预测的句子的完整度进行评估,综合上述两方面的评估结果,获得更加全面、客观的评估结果。

在一种可能的实现方式中,可将蒙特卡罗预测(montecarloroll-out,mcro)模型结合到action-reward中,不但对当前已生成词进行评估,还基于当前已生成词对未来可能生成的词进行模拟以获得预测的句子,对预测的句子的完整度进行评估,请参阅图10,示出了mcro模型基于当前已生成词对未来可能生成的词进行模拟的示意图,图中黑色球代表已生成词,虚线部分代表模拟过程(基于已生成词在词库中挑选词进行模拟)。

在执行完步骤s803后,将通过步骤s802获得当前生成词作为当前输入词,然后转入步骤s802,直至所有生成词组成一个完整的句子。

请参阅图11,示出了对预训练得到的文本生成模型进一步进行训练的示意图,训练时,随机输入一个词w1,数据生成模型基于该词输出一生成词y1,然后使用强化学习的策略梯度(policygradient)算法对生成词y1进行评估,评估结果(reward)反馈给数据生成模型,指导数据生成模型的参数更新,生成词y1作为下一个输入词w2输入数据生成模型,按照这种策略一步步生成完整的一句话。

本实施例中,文本数据生成模型在输出生成词时,强化学习的policygradient策略会监督输出结果,通过更新参数来使文本数据生成模型输出好的结果。

步骤s804:将当前生成词作为当前输入词,执行将当前输入词输入当前数据生成模型,直至所有生成词组成一个完整的句子。

经过上述的两个训练过程便可得到最终的文本生成模型,在使用文本生成模型生成文本数据时,输入一个词,文本生成模型会基于该词生成一句话。如下表所示,为使用本实施例训练得到的文本生成模型生成的特定领域的问答数据,这些句子的逻辑性和连贯性比较不错,可以用来训练问答系统的模型。

表1数据生成模型生成文本数据表

考虑到上述文本生成模型生成的文本数据可能为非口语化的文本数据,而在某些领域下,可能有获取口语化的文本数据的需求,比如,智能客服、聊天机器人等领域,有鉴于此,本实施例提供的文本数据生成方法还可以包括:若文本数据生成模型生成的文本数据为非口语化的文本数据,则确定该非口语化的文本数据中每个词的属性信息;基于非口语化的文本数据中每个词的属性信息,将非口语化的文本数据转换为口语化的文本数据。

在一种可能的实现方式中,可将文本数据生成模型生成的文本数据输入预先建立的拟口语化模型,通过拟口语化模型确定文本数据生成模型生成的文本数据是否为口语化文本数据,如果是口语化文本数据,则直接将该口语化文本数据输出,如果为非口语化文本数据,则输出非口语化文本数据中各个词的属性信息。其中,一个词的属性信息用于指示该词的词性和/或该词是否为命名实体

在一种可能的实现方式中,一个词的属性信息可以通过一个结构化标签表征,通过一个句子中各个词的结构化标签可获知该句子中各个词的词性,以及该句子中为命名实体的词。

请参阅图12,示出了预先建立的拟口语化模型的一结构示意图,其可以包括:字级别的特征提取模块1201、词级别的划分处理模块1202和属性信息确定模块1203。

其中,字级别的特征提取模块1201用于对输入的文本数据中的每个字提取特征。如图12所示,文本数据由字c1、c2…cr组成,将文本数据的各个子字输入至拟口语化模型的字级别的特征提取模块1201,字级别的特征提取模块1201分别从各个字提取特征,接着,将字级别的特征提取模块1201提取的各个字的特征输入词级别的划分处理模块1202,词级别的划分处理模块1202基于各个字的特征进行分词处理,分词处理结果输入属性信息确定模块1203,属性信息确定模块1203用于基于分词结果确定文本数据中每个词的属性信息,在一种可能的实现方式中,字级别的特征提取模块1201、词级别的划分处理模块1202均可以为卷积神经网络cnn,属性信息确定模块1203可以为长短期记忆网络(longshort-termmemory,lstm),如图12所示,对于lstm网络而言,在i时刻,隐藏层hi+1是由上一步的标签yi、i-1时刻隐层状态hi和输入的词共同计算得到的,按照这种方式不断迭代,最终输出结果。

需要说明的是,拟口语化模型不但能识别出文本数据中每个词的词性,还能识别出文本数据中具有特定意义的实体,例如人名、地名、组织机构名、日期时间、专有名词等。下表示出了将文本数据输入拟口语化模型,获得的结构化标签:

表2文本数据中各个词的结构化标签

需要说明的是,上表中每个词的结构化标签中,“/”和“#”之间为词性,“#”之后为命名实体标识。

在获得非口语化的文本数据中各个词的属性(比如结构化标签)后,可基于各个词的属性(比如结构化标签)将非口语化的文本数据转换为口语化的文本化数据。具体的,可基于文本数据中每个词的属性(比如结构化标签),对非口语化文本数据中的部分词进行修改、和/或替换、和/或删除;和/或,在指定属性信息的词后添加语气词。需要说明的是,在对非口语化文本数据进行转换时,非口语化文本数据中的命名实体不能改动,因为改动后会改变句子的主题含义。下表示出了基于非口语化的文本数据中每个词的属性(比如结构化标签)对非口语化的文本数据进行转换,得到的口语化的文本数据:

表3带标签的非口语化文本数据和转换得到的口语化的文本数据

以上表中的非口语化的文本数据“空军/n#b-ni航空/n#i-ni大学/n#e-ni日常/b#o规范/v#o有/v#o哪些/r#o”为例:通过各词的结构化标签可知,词“空军”、“航空、“大学”均为命名实体,不能对其进行改动,为了使句子口语化,可在词“大学”后添加“的”,将词“规范”后的“有”、“哪些”删除。

本发明实施例提供的文本数据方法,可基于智能客服、聊天机器人等领域对于口语化文本数据的需求,通过上述的数据生成模型和拟口语化模型生成高质量的口语化文本数据。

本申请实施例还提供了一种文本数据生成装置,下面对本申请实施例提供的文本数据生成装置进行描述,下文描述的文本数据生成装置与上文描述的文本数据生成方法可相互对应参照。

请参阅图13,示出了本申请实施例提供的一种文本数据生成装置的结构示意图,如图13所示,该装置可以包括:获取模块1301和文本数据生成模块1302。

获取模块1301,用于获取目标词。

文本数据生成模块1302,用于基于所述目标词和预先建立的数据生成模型,获得多个生成词,将所述目标词和所述多个生成词组成句子,作为基于所述目标词生成的一条文本数据。

其中,所述多个生成词由所述数据生成模型基于输入词逐个生成,第一个生成词基于作为第一个输入词的所述目标词生成,其它生成词中的任一生成词基于作为输入词的前一生成词生成,所述数据生成模型能够获取一个句子中的任一词与句子中其它各个词的依赖关系,用于生成与输入词的位置关系和语关系最紧密的词。

本申请提供的文本数据生成装置,在获取到目标词后,可基于目标词,利用预先建立的数据生成模型自动生成文本数据,并且,由于本申请实施例中的数据生成模型能够获取一个句子中的任一个词与句子中其它各个词的依赖关系,因此,基于该数据生成模型能够生成与输入词的位置关系和语义关系最紧密的词,进而可获得具有逻辑性和连贯性的高质量文本数据,即本申请提供的文本数据生成装置能够自动生成高质量的文本数据。

在一种可能的实现方式中,上述实施例提供的文本生成装置还可以包括:用于建立数据生成模型的数据生成模型构建模块。

数据生成模型构建模块可以包括:第一训练模块和第二训练模块。

所述第一训练模块,用于利用训练语句对初始的数据生成模型进行预训练,其中,进行预训练时,数据生成模型基于所述训练语句中多个词分别对应的、包含语义信息和位置信息的词向量进行训练,输出基于所述训练语句生成的一个语句。

所述第二训练模块,用于利用训练词对预训练后的数据生成模型进一步进行训练,进一步训练得到的数据生成模型作为最终的数据生成模型,其中,进一步进行训练时,数据生成模型基于单个训练词对应的词向量进行训练,输出基于所述训练词生成的词,输出的词作为下一训练词输入数据生成模型,直至获得一条完整语句。

在一种可能的实现方式中,所述第一训练模块在利用训练语句对初始的数据生成模型进行预训练时,具体用于对所述训练语句进行预处理,获得预处理语句,其中,所述预处理包括分词处理和去停用词处理;将所述预处理语句输入所述初始的数据生成模型的词向量确定模块,获得所述预处理语句中各个词对应的、包含语义信息和位置信息的词向量;将所述预处理语句各个词对应的词向量并行输入所述初始的数据生成模型的注意力模块,获得所述预处理语句中每个词对应的、包含该词和所述预处理语句中其它各个词的语义关系的词向量;将所述每个词对应的、包含该词和所述预处理语句中其他各个词的语义关系的词向量输入所述初始的数据生成模型的词确定模块,分别获得与所述预处理语句中每个词的位置关系和语义关系最紧密的词,与所述预处理语句中每个词的位置关系和语义关系最紧密的词组成生成语句;基于所述生成语句和预设的目标函数,对所述初始的数据生成模型的参数进行更新。

在一种可能的实现方式中,数据生成模型的词向量确定模块在确定任一词对应的词向量时,具体用于确定该词对应的、包含该词的语义信息的语义向量,以及,该词对应的、包含该词在所述预处理语句中所处位置信息的位置向量,并将该词对应的语义向量与该词对应的位置向量相加,获得该词对应的、包含语义信息和位置信息的词向量。

在一种可能的实现方式中,所述第二训练模块,具体用于获取一训练词作为当前输入词,并将所述预训练后的数据生成模型作为当前数据生成模型将当前输入词输入当前数据生成模型,获得当前输入词对应的当前生成词;对当前生成词进行评估,获得当前生成词对应的评估结果,并基于当前生成词对应的评估结果更新当前数据生成模型的参数;将当前生成词作为当前输入词,执行所述将当前输入词输入当前数据生成模型,直至所有生成词组成一个完整的句子。

在一种可能的实现方式中,所述第二训练模块在对当前生成词进行评估,获得当前生成词对应的评估结果,并基于当前生成词对应的评估结果更新当前数据生成模型的参数时,具体用于将当前数据生成模型作为强化学习的代理,将当前生成词作为强化学习的动作,采用强化学习的策略梯度算法对当前生成词进行评估,获得当前生成词对应的评估结果;将当前生成词对应的评估结果作为强化学习的奖赏,基于所述奖赏更新当前数据生成模型的参数。

在一种可能的实现方式中,所述第二训练模块在对当前生成词进行评估时,具体用于从至少两个评估维度对当前生成词进行评估,获得当前生成词对应的评估结果;其中,至少一个评估维度为当前已生成的所有词,至少一个评估维度为基于当前已生成的所有词预测的句子的完整度。

在一种可能的实现方式中,上述实施例提供的文本生成装置还包括:属性信息确定模块和口语化模块。

所述属性信息确定模块,用于当所述文本数据为非口语化语句时,确定所述文本数据中每个词的属性信息。

所述口语化模块,用于基于所述文本数据中每个词的属性信息,将所述文本数据转换为口语化的文本数据。

在一种可能的实现方式中,所述属性信息确定模块,具体用于将所述文本输入预先建立的拟口语化模型,获得所述拟口语化模型输出的、所述文本数据中每个词的属性信息,其中,一个词的属性信息用于指示该词的词性和/或该词是否为命名实体。

在一种可能的实现方式中,所述口语化模块,具体用于基于所述文本数据中每个词的属性信息,对所述文本数据中的部分词进行修改、和/或替换、和/或删除,和/或,在指定属性信息的词后添加语气词。

本申请实施例还提供了一种文本数据生成设备,请参阅图14,示出了该文本数据生成设备的结构示意图,该设备可以包括:至少一个处理器1401,至少一个通信接口1402,至少一个存储器1403和至少一个通信总线1404;

在本申请实施例中,处理器1401、通信接口1402、存储器1403、通信总线1404的数量为至少一个,且处理器1401、通信接口1402、存储器1403通过通信总线1004完成相互间的通信;

处理器1401可能是一个中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;

存储器1403可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;

其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:

获取目标词;

基于所述目标词和预先建立的数据生成模型,获得多个生成词,其中,所述多个生成词由所述数据生成模型基于输入词逐个生成,第一个生成词基于作为第一个输入词的所述目标词生成,其它生成词中的任一生成词基于作为输入词的前一生成词生成,所述数据生成模型能够获取一个句子中的任一词与句子中其它各个词的依赖关系,用于生成与输入词的位置关系和语关系最紧密的词;

将所述目标词和所述多个生成词组成句子,作为基于所述目标词生成的一条文本数据。

可选的,所述程序的细化功能和扩展功能可参照上文描述。

本申请实施例还提供一种可读存储介质,该可读存储介质可存储有适于处理器执行的程序,所述程序用于:

获取目标词;

基于所述目标词和预先建立的数据生成模型,获得多个生成词,其中,所述多个生成词由所述数据生成模型基于输入词逐个生成,第一个生成词基于作为第一个输入词的所述目标词生成,其它生成词中的任一生成词基于作为输入词的前一生成词生成,所述数据生成模型能够获取一个句子中的任一词与句子中其它各个词的依赖关系,用于生成与输入词的位置关系和语关系最紧密的词;

将所述目标词和所述多个生成词组成句子,作为基于所述目标词生成的一条文本数据。

可选的,所述程序的细化功能和扩展功能可参照上文描述。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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