CN114118024A - 一种条件文本生成方法及生成*** - Google Patents
一种条件文本生成方法及生成*** Download PDFInfo
- Publication number
- CN114118024A CN114118024A CN202111474679.4A CN202111474679A CN114118024A CN 114118024 A CN114118024 A CN 114118024A CN 202111474679 A CN202111474679 A CN 202111474679A CN 114118024 A CN114118024 A CN 114118024A
- Authority
- CN
- China
- Prior art keywords
- text
- key
- value
- condition information
- loss
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种条件文本生成方法,包括采集文本数据;数据预处理;构建编码器、解码器;将条件信息和文本数据分别通过编码器编码,得到条件特征、文本特征;将条件特征和文本特征进行特征融合,得到融合后的特征,记为融合特征;将所述融合特征作为解码器的输入,得到解码器的输出结果;计算损失;基于解码器的输出结果和损失,对网络模型进行训练,直到满足训练条件或达到最大训练次数,输出训练后的网络模型;向训练后的网络模型中输入条件信息和提示文本,生成文本。本发明要解决的技术问题之一是现有条件文本生成技术会在模型训练的同时生成结果,导致效率低下、细粒度不高的问题,实现更高效、流畅的生成条件文本的目的。
Description
技术领域
本发明涉及自然语言处理领域,具体涉及一种条件文本生成方法及生成***。
背景技术
自然语言处理是近年来的热门技术领域,自然语言生成任务一般采用NNLM(Neural Network Language Models,神经网络语言模型),常见的有基于ARLM(Auto-regressive Decoding,自回归解码)的GPT-2模型。由于模型依靠概率生成,导致生成的随机性较强,内容无法控制,不符合特定需求。
现有技术中为解决上述问题的技术手段之一,是依托于条件信息,如关键词、情感、风格等,在生成文本时添加一个属性判别器:首先训练一个生成器和一个判别器,生成器p(g)生成文本,判别器判决属性类别p(c|g),然后得到p(g|c)。回传梯度,更新语言模型内部状态,使得实际预测更接近想要属性,最后获得的新输出的概率分布,采样生成一个新的词。但是,这种现有技术虽然在一定程度上克服了生成文本随机性过强的问题,但其工作原理是在模型训练的同时生成结果,导致效率十分低下,且不能在更细粒度上控制文本生成。
发明内容
本发明提供一种条件文本生成方法及生成***,解决的技术问题之一是现有条件文本生成技术会在模型训练的同时生成结果,导致效率低下、细粒度不高的问题,实现更高效、流畅的生成条件文本的目的。
本发明通过下述技术方案实现:
一种条件文本生成方法,包括:
S1、采集文本数据;数据预处理,将文本数据转化为适合训练的数据集;
S2、构建编码器、解码器;
S3、将条件信息和文本数据分别通过编码器编码,得到条件特征、文本特征;将条件特征和文本特征进行特征融合,得到融合后的特征,记为融合特征;
S4、将所述融合特征作为解码器的输入,得到解码器的输出结果;
S5、计算损失;
S6、基于解码器的输出结果和损失,对网络模型进行训练,直到满足训练条件或达到最大训练次数,输出训练后的网络模型;
S7、向训练后的网络模型中输入条件信息和提示文本,生成文本。
针对现有的条件文本生成技术会在模型训练的同时生成结果,导致效率低下和细粒度不高等问题,本发明首先提出一种条件文本生成方法,本方法首先是采集文本数据并进行预处理,进而将文本数据转化为适合训练的数据集为后续训练过程做准备。之后构建编码器、解码器,再将条件信息通过编码器编码、将编码器的输出作为条件特征;同理将预处理后的文本数据通过编码器编码,将编码器的输出作为文本特征;然后,将条件特征和文本特征进行特征融合;再将融合后的特征作为解码器的输入,用以指导文本生成。之后计算损失函数,由解码器的输出结果和损失函数对网络模型进行训练,以完成训练后的网络模型为基础,向其中输入所需的条件信息和提示文本,即可完成文本生成。
特别说明的是,虽然特征融合属于机器学习方面的现有手段,但是在条件文本生成领域内融合条件特征和文本特征的方式属于本申请核心发明点之一,申请人为此付出了大量创造性劳动,该特征融合方式与现有技术相比具有显著效果:通过将条件信息特征和源文本特征相结合的方式,采用特征融合的手段实现条件特征和文本特征的融合,相较于常规的向量相加或向量拼接的特征融合方式而言,克服了其不能从局部兼顾条件信息特征和文本中每一个词的融合,又因为文本特征的离散性,容易导致融合后的特征不能表达原始特征的意义的缺陷;而本方法中通过将条件特征和文本特征进行特征融合的技术手段,基于查询向量从局部进行把握,能够从局部把握条件信息特征与文本中每一个词特征的融合,能够将条件信息特征融入源文本的每一个词特征中,进而有效的生成条件文本、在更细粒度上控制文本生成、显著提升文本生成的效果。此外,本方法是先训练模型,待模型训练完成后再进行使用,以此克服了现有技术中通过属性判别器生成文本时训练和生成同步进行所导致的效率低下的问题。
进一步的,步骤S1中,通过爬虫采集网上公开的文本数据,并存储为json格式;所采集的文本数据包括内容和主题。其中存储为json格式是为了便于后续训练使用;而同时采集文本的内容和主题,相较于仅采集文本内容的方式而言,能够得到更加合理的训练模型,提高后续生成文本的细粒度。
进一步的,步骤S1中,所述数据预处理包括:
S101、噪声清除:将爬取的数据利用正则去掉无用符号、多余空白、数字、人名和地名;
S102、归一化:替换特殊符号、替换稀有词汇;
S103、关键词提取:对采集的文本数据进行关键词提取,筛选出包含指定关键词的文本作为数据集;
S104、分词:利用分词工具对数据集进行分词,将分词后的词语转化为词典中对应的位置编号。
本方案的数据预处理过程至少包括依次进行的噪声清除、归一化、关键词提取、分词四个步骤,其中四个步骤的顺序关系不可颠倒或交错,才能够充分保证数据集与模型训练的匹配度。
进一步的,步骤S2中,利用采集的文本数据训练GPT-2模型,将训练好的模型记为模型M,以模型M作为编码器和解码器。本方案将现有的GPT-2模型作为预训练语言模型,GPT-2有着超大的规模,它是一个在海量数据集上训练的基于transformer的巨大模型。本方案将训练好后的GPT-2模型同时作为本申请待训练网络模型的编码器和解码器使用,相较于常规编解码方式而言能够显著提升生成文本的效果。
进一步的,步骤S3包括:
S301、将条件信息输入模型M,得到条件特征fc;
S302、将包含所述条件信息的文本数据输入模型M,得到文本特征fp;
S303、将fc和fp进行特征融合,得到融合特征fcp。
其中fc即是条件信息输入模型M后得到的输出,同理fp即是文本数据输入模型M后得到的输出。
进一步的,步骤S303包括:
S3031、确定条件信息的个数n,各条件信息的条件特征依次记为fc1、fc2…fcn;其中n取正整数;
S3032、将各条件特征的键向量keyc1、keyc2…keycn、值向量valuec1、valuec2…valuecn分别依次连接到文本特征fp的键向量key、值向量value之前,并保持文本特征fp的查询向量query不变,得到连接后的键向量keylast、值向量valuelast:
keylast=[keyc1;keyc2…keycn;key];
valuelast=[valuec1;valuec2…valuecn;value];
S3033、通过如下公式计算输出值scroe:
式中,q代表查询向量query,kT代表keylast的转置,v代表valuelast,dk代表keylast的维度;
S3034、将scroe输入前馈神经网络,得到融合特征fcp。
本方案对特征融合过程进行进一步限定,其中为了满足有多个条件信息的工况,首先确定条件信息的个数n,并将每个条件信息所对应的条件特征分别记为fc1、fc2…fcn;然后将各条件特征的key和value向量分别连接到文本特征fp的key和value向量之前,并保持查询向量query不变,依然来自fp。比如,对应只有一个条件信息时,fc的key为[1,2,3],fp的key为[4,5,6],那么通过本方法连接后的keylast为[1,2,3,4,5,6];valuelast的连接方法同理。
通过本方法的连接后,可以得到连接后的键向量keylast、值向量valuelas,然后将其代入scroe的计算公式中,该公式中v等于valuelast,kT为keylast的转置,q代表查询向量query、依然采用文本特征fp中的query。最后将通过该公式输出的结果作为前馈神经网络的输入,就能够得到本申请中最终所需的融合特征fcp,确保实现本申请从局部把握条件信息特征与文本中每一个词特征的融合、将条件信息特征融入源文本的每一个词特征中、有效的生成条件文本、在更细粒度上控制文本生成的效果。
进一步的,步骤S5中,计算损失的方法包括:
S501、计算条件信息与文本数据的互信息损失Lpoint:
Lpoint=(ex-1)-1;
式中,a表示文本数据,c表示条件信息;x为文本数据和条件信息之间的互信息计算结果;p(a)表示文本数据中每个词出现概率的累积;p(c)表示条件信息与文本数据中每个词出现概率的累积;p(a,c)表示文本数据中每个词与条件信息的概率累积;e为自然常数;
S502、将条件信息设置为空集,计算无条件内容损失Lnull:
作为本申请的重要发明点之一,本方案还对条件文本生成过程中网络模型的损失函数计算方式进行改进,通过结合互信息损失和无条件内容损失的方式来确定损失函数。其中,互信息损失是基于互信息概念来计算条件信息和文本数据之间的关系,其在本申请中的计算目的是为了让原始文本的隐变量与条件信息的隐变量融合后,生成的文本尽可能的包含条件的信息、让生成的文本与所设置的条件更接近;无条件内容损失是指不包含条件信息时的损失函数,其在本申请中的计算目的是尽可能减少特征融合过程对原始隐变量的影响,让隐变量在经过特征融合后仍然可以生成流畅的文本。而最终损失Loss的计算公式中,argmin为数学符号,表示其后括号内的目标函数取最小值时的变量值;决定互信息损失是否参与训练,决定无条件损失是否参与训练。
本方案创新性的采用了互信息损失与无条件内容损失相结合的办法,不仅可以提高生成文本的流畅度,还可以保证生成文本与条件的关联度,以此实现对文本流畅度和文本内容进行更好的控制。
一种条件文本生成***,包括:
数据采集模块,用于通过爬虫采集文本数据并存储为json格式;
预处理模块,用于对文本数据进行预处理,将文本数据转化为适合训练的数据集;
模型训练模块,用于构建条件文本生成模型,并输出训练后的网络模型;
文本生成模块,通过输入的提示文本和条件信息,根据训练后的网络模型预测下一词概率,然后经过softmax归一化,采用top-k和top-p结合输出下一个词,直至完成文本生成;
其中,所述模型训练模块包括:
预训练语言模型单元,用于构建编码器和解码器;
编码器,用于将条件信息和文本数据分别作为输入,得到条件特征、文本特征;
特征融合单元,用于将条件特征和文本特征进行特征融合,得到融合特征;
损失计算单元,用于计算模型训练过程中的损失;
解码器,用于将融合特征作为输入,得到输出结果,以指导文本生成。
进一步的,所述特征融合单元包括:
前置子单元,用于确定条件信息的个数n,将各条件信息的条件特征依次记为fc1、fc2…fcn;其中n取正整数;
连接子单元,用于将各条件特征的键向量keyc1、keyc2…keycn、值向量valuec1、valuec2…valuecn分别依次连接到文本特征fp的键向量key、值向量value之前,并保持文本特征fp的查询向量query不变,得到连接后的键向量keylast、值向量valuelast:
keylast=[keyc1;keyc2…keycn;key];
valuelast=[valuec1;valuec2…valuecn;value];
第二计算子单元,用于将scroe输入前馈神经网络,得到融合特征fcp。
进一步的,所述损失计算单元包括:
互信息损失子单元,用于通过如下公式计算条件信息与文本数据的互信息损失Lpoint:
Lpoint=(ex-1)-1;
式中,a表示文本数据,c表示条件信息;x为文本数据和条件信息之间的互信息计算结果;p(a)表示文本数据中每个词出现概率的累积;p(c)表示条件信息与文本数据中每个词出现概率的累积;p(a,c)表示文本数据中每个词与条件信息的概率累积;
无条件内容损失子单元,用于将条件信息设置为空集,并通过如下公式计算无条件内容损失Lnull:
结合子单元,用于通过如下公式结合互信息损失和无条件内容损失,得到最终损失Loss:
本发明与现有技术相比,具有如下的优点和有益效果:
1、本发明一种条件文本生成方法及生成***,通过将条件信息特征和源文本特征相结合的方式,采用特征融合的手段实现条件特征和文本特征的融合,相较于常规的向量相加或向量拼接的特征融合方式而言,克服了其不能从局部兼顾条件信息特征和文本中每一个词的融合,又因为文本特征的离散性,容易导致融合后的特征不能表达原始特征的意义的缺陷。
2、本发明一种条件文本生成方法及生成***,能够从局部把握条件信息特征与文本中每一个词特征的融合,能够将条件信息特征融入源文本的每一个词特征中,进而有效的生成条件文本、在更细粒度上控制文本生成、显著提升文本生成的效果。
3、本发明一种条件文本生成方法及生成***,先训练模型,待模型训练完成后再进行使用,克服了现有技术中通过属性判别器生成文本时训练和生成同步进行所导致的效率低下的问题。
4、本发明一种条件文本生成方法及生成***,将训练好后的GPT-2模型同时作为本申请待训练网络模型的编码器和解码器使用,相较于常规编解码方式而言能够显著提升生成文本的效果。
5、本发明一种条件文本生成方法及生成***,采用了互信息损失与无条件内容损失相结合的方法,不仅可以提高生成文本的流畅度,还可以保证生成文本与条件的关联度,以此实现对文本流畅度和文本内容更好的控制效果。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明具体实施例的流程示意图;
图2为本发明具体实施例的***示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。在本申请的描述中,需要理解的是,术语“前”、“后”、“左”、“右”、“上”、“下”、“竖直”、“水平”、“高”、“低”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请保护范围的限制。
实施例1:
如图1所示的一种条件文本生成方法,主要步骤如下:
(一)数据采集:通过爬虫机制爬取小学生作文162432篇,并将其存储为json格式。
(二)数据预处理:将数据转化为适合训练的数据集。主要包括噪声清除、归一化、关键词提取、分词。详细步骤如下:
1)将爬取的数据利用正则去掉无用符号、多余空白、数字、人名、地名,并进行特殊符号替换、稀有词汇替换。
2)利用jieba提取对所有文章进行关键词提取,筛选出关键词包含“妈妈”的作文23120篇作为数据集。
3)利用分词工具分别对数据集进行分词,最后将分词后的词语转化为词典中对应的位置编号。
(三)模型训练:用于构建可控文本生成模型,其主要步骤如下:
1)利用爬取的162432篇作文训练GPT2模型(记训练好的模型为M),将其作为编码器和解码器。
2)以关键词“妈妈”作为条件信息,将关键词“妈妈”输入M、得到其条件特征fc;然后将包含关键词“妈妈”的作文输入M、得到其文本特征fp。
3)将特征fc和fp利用编码器进行特征融合:
(1)将特征fc和fp经过自注意力机制,将fc的keyc和valuec分别连接到fp的key和value之前,query不变;若有多个条件信息,则将其key和value分别连接到p的key和value前。连接结果如下所示:keylast=[keyc;key];valuelast=[valuec;value]。
(2)连接过后的keylast,valuelast值经过自注意力机制进行计算,计算公式如下所示:
式中,q代表查询向量query,kT代表keylast的转置,v代表valuelast,dk代表keylast的维度。
将上述公式计算输出的结果scroe作为前馈神经网络的输入,以最后得到的输出作为fc和fp融合后的特征fcp。
4)将特征fcp作为M的输入,用于指导生成文本。
5)计算损失,损失采用两损失结合的方法,包含互信息损失、无条件内容损失。分别如下:
(1)互信息损失Lpoint。采用互信息计算文本和条件信息的关系,然后将其映射为大于0,且单调的函数。具体公式如下。
Lpoint=(ex-1)-1
式中,a表示文本数据,c表示条件信息;x为文本数据和条件信息之间的互信息计算结果;p(a)表示文本数据中每个词出现概率的累积;p(c)表示条件信息与文本数据中每个词出现概率的累积;p(a,c)表示文本数据中每个词与条件信息的概率累积;
(3)通过如下公式将以上两个损失结合训练。
6)对网络进行训练,直到满足训练条件或者最大训练次数完成。
7)训练完成,输出训练模型。
(四)文本生成:输入提示文本和条件信息生成文本,利用训练保存的模型进行预测下一词概率,然后经过softmax归一化,采用top-k和top-p结合输出下一个词。
本实施例中提示词给定为“下午”,条件信息如上所述为“妈妈”,生成字数限定100字。
生成样本如下:
样本1:
下午,我正在看电视,突然,妈妈从厨房里走出来,对我说:“儿子,妈妈要出去一下,你在家看书哦。”我说:“妈妈,我看完电视再看一会儿行吗?”妈妈说:“你先去看会儿书吧!”说完,便走了。
样本2:
下午,妈妈在厨房做饭,我在书房写作业,忽然,一阵声音从厨房传来,我跑过去一看,原来是妈妈在炒菜。
妈妈把菜端上来,我一看,妈妈的手上沾满了油,妈妈说:“你这个小馋猫,我给你炒了一盘,你快尝尝吧!”我高兴地说:“好的。”
样本3:
下午,我和妈妈一起去公园散步。
走到半路上,我发现了一个卖花的小摊,摊主是一位老奶奶,她身穿一件灰色的衣服,拄着拐杖,手里提着一个大袋子,里面装满了各种各样的花,老奶奶的摊位上摆着一盆盆鲜花。
通过上述3个样本可以看出,本实施例不仅能够有效的生成条件文本,生成的条件文本还具有较高的流畅度,因此能够在细粒度上控制文本生成,使得条件文本生成的效果具有明显改善。
实施例2:
一种条件文本生成***,如图2所示,包括:
数据采集模块,用于通过爬虫采集文本数据并存储为json格式;
预处理模块,用于对文本数据进行预处理,将文本数据转化为适合训练的数据集;
模型训练模块,用于构建条件文本生成模型,并输出训练后的网络模型;
文本生成模块,通过输入的提示文本和条件信息,根据训练后的网络模型预测下一词概率,然后经过softmax归一化,采用top-k和top-p结合输出下一个词,直至完成文本生成;
其中,所述模型训练模块包括:
预训练语言模型单元,用于构建编码器和解码器;
编码器,用于将条件信息和文本数据分别作为输入,得到条件特征、文本特征;
特征融合单元,用于将条件特征和文本特征进行特征融合,得到融合特征;
损失计算单元,用于计算模型训练过程中的损失;
解码器,用于将融合特征作为输入,得到输出结果,以指导文本生成。
其中,所述特征融合单元包括:
前置子单元,用于确定条件信息的个数n,将各条件信息的条件特征依次记为fc1、fc2…fcn;其中n取正整数;
连接子单元,用于将各条件特征的键向量keyc1、keyc2…keycn、值向量valuec1、valuec2…valuecn分别依次连接到文本特征fp的键向量key、值向量value之前,并保持文本特征fp的查询向量query不变,得到连接后的键向量keylast、值向量valuelast:
keylast=[keyc1;keyc2…keycn;key];
valuelast=[valuec1;valuec2…valuecn;value];
第二计算子单元,用于将scroe输入前馈神经网络,得到融合特征fcp。
其中,所述损失计算单元包括:
互信息损失子单元,用于通过如下公式计算条件信息与文本数据的互信息损失Lpoint:
Lpoint=(ex-1)-1;
式中,a表示文本数据,c表示条件信息;x为文本数据和条件信息之间的互信息计算结果;p(a)表示文本数据中每个词出现概率的累积;p(c)表示条件信息与文本数据中每个词出现概率的累积;p(a,c)表示文本数据中每个词与条件信息的概率累积;
无条件内容损失子单元,用于将条件信息设置为空集,并通过如下公式计算无条件内容损失Lnull:
结合子单元,用于通过如下公式结合互信息损失和无条件内容损失,得到最终损失Loss:
本实施例对通过本***所生成的条件文本,与通过几种现有的文本生成模型所生成的文本的效果进行比较,比较结果如下表所示:
模型 | 主题相关性(%) |
GPT-2 | 25.8 |
PPLM | 50.7 |
CTRL | 87.6 |
本实施例 | 91.4 |
可以看出,经过本实施例所训练出的模型,相较于现有的GPT-2、PPLM、CTRL等模型而言,能够显著提高生成文本和条件的相关性。
实施例3:
一种条件文本生成装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如实施例1中记载的条件文本生成方法的步骤。
其中,所述处理器可以是中央处理器(CPU,Central Processing Unit),还可以是其他通用处理器,例如数字信号处理器(digital signal processor)、专用集成电路(Application Specific Integrated Circuit)、现成可编程门阵列(Fieldprogrammablegate array)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的数据,实现发明中信息查询装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等。此外,存储器可以包括高速随机存取存储器、还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡,安全数字卡,闪存卡、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
实施例4:
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如实施例1中记载的条件文本生成方法的步骤。
此外,如实施例3中的条件文本生成装置如果以软件功能单元的形式实现、并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序可存储于一计算机可读存介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码、对象代码形式、可执行文件或某些中间形式等。所述计算机可读取介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存储器、点载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
此外,计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行***、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用。
Claims (10)
1.一种条件文本生成方法,其特征在于,包括:
S1、采集文本数据;数据预处理,将文本数据转化为适合训练的数据集;
S2、构建编码器、解码器;
S3、将条件信息和文本数据分别通过编码器编码,得到条件特征、文本特征;将条件特征和文本特征进行特征融合,得到融合后的特征,记为融合特征;
S4、将所述融合特征作为解码器的输入,得到解码器的输出结果;
S5、计算损失;
S6、基于解码器的输出结果和损失,对网络模型进行训练,直到满足训练条件或达到最大训练次数,输出训练后的网络模型;
S7、向训练后的网络模型中输入条件信息和提示文本,生成文本。
2.根据权利要求1所述的一种条件文本生成方法,其特征在于,步骤S1中,通过爬虫采集网上公开的文本数据,并存储为json格式;所采集的文本数据包括内容和主题。
3.根据权利要求1所述的一种条件文本生成方法,其特征在于,步骤S1中,所述数据预处理包括:
S101、噪声清除:将爬取的数据利用正则去掉无用符号、多余空白、数字、人名和地名;
S102、归一化:替换特殊符号、替换稀有词汇;
S103、关键词提取:对采集的文本数据进行关键词提取,筛选出包含指定关键词的文本作为数据集;
S104、分词:利用分词工具对数据集进行分词,将分词后的词语转化为词典中对应的位置编号。
4.根据权利要求1所述的一种条件文本生成方法,其特征在于,步骤S2中,利用采集的文本数据训练GPT-2模型,将训练好的模型记为模型M,以模型M作为编码器和解码器。
5.根据权利要求4所述的一种条件文本生成方法,其特征在于,步骤S3包括:
S301、将条件信息输入模型M,得到条件特征fc;
S302、将包含所述条件信息的文本数据输入模型M,得到文本特征fp;
S303、将fc和fp进行特征融合,得到融合特征fcp。
6.根据权利要求5所述的一种条件文本生成方法,其特征在于,步骤S303包括:
S3031、确定条件信息的个数n,各条件信息的条件特征依次记为fc1、fc2…fcn;其中n取正整数;
S3032、将各条件特征的键向量keyc1、keyc2…keycn、值向量valuec1、valuec2…valuecn分别依次连接到文本特征fp的键向量key、值向量value之前,并保持文本特征fp的查询向量query不变,得到连接后的键向量keylast、值向量valuelast:
keylast=[keyc1;keyc2…keycn;key];
valuelast=[valuec1;valuec2…valuecn;value];
S3033、通过如下公式计算输出值scroe:
式中,q代表查询向量query,kT代表keylast的转置,v代表valuelast,dk代表keylast的维度;
S3034、将scroe输入前馈神经网络,得到融合特征fcp。
7.根据权利要求1所述的一种条件文本生成方法,其特征在于,步骤S5中,计算损失的方法包括:
S501、计算条件信息与文本数据的互信息损失Lpoint:
Lpoint=(ex-1)-1;
式中,a表示文本数据,c表示条件信息;x为文本数据和条件信息之间的互信息计算结果;p(a)表示文本数据中每个词出现概率的累积;p(c)表示条件信息与文本数据中每个词出现概率的累积;p(a,c)表示文本数据中每个词与条件信息的概率累积;
S502、将条件信息设置为空集,计算无条件内容损失Lnull:
8.一种条件文本生成***,其特征在于,包括:
数据采集模块,用于通过爬虫采集文本数据并存储为json格式;
预处理模块,用于对文本数据进行预处理,将文本数据转化为适合训练的数据集;
模型训练模块,用于构建条件文本生成模型,并输出训练后的网络模型;
文本生成模块,通过输入的提示文本和条件信息,根据训练后的网络模型预测下一词概率,然后经过softmax归一化,采用top-k和top-p结合输出下一个词,直至完成文本生成;
其中,所述模型训练模块包括:
预训练语言模型单元,用于构建编码器和解码器;
编码器,用于将条件信息和文本数据分别作为输入,得到条件特征、文本特征;
特征融合单元,用于将条件特征和文本特征进行特征融合,得到融合特征;
损失计算单元,用于计算模型训练过程中的损失;
解码器,用于将融合特征作为输入,得到输出结果,以指导文本生成。
9.根据权利要求8所述的一种条件文本生成***,其特征在于,所述特征融合单元包括:
前置子单元,用于确定条件信息的个数n,将各条件信息的条件特征依次记为fc1、fc2…fcn;其中n取正整数;
连接子单元,用于将各条件特征的键向量keyc1、keyc2…keycn、值向量valuec1、valuec2…valuecn分别依次连接到文本特征fp的键向量key、值向量value之前,并保持文本特征fp的查询向量query不变,得到连接后的键向量keylast、值向量valuelast:
keylast=[keyc1;keyc2…keycn;key];
valuelast=[valuec1;valuec2…valuecn;value];
第二计算子单元,用于将scroe输入前馈神经网络,得到融合特征fcp。
10.根据权利要求8所述的一种条件文本生成***,其特征在于,所述损失计算单元包括:
互信息损失子单元,用于通过如下公式计算条件信息与文本数据的互信息损失Lpoint:
Lpoint=(ex-1)-1;
式中,a表示文本数据,c表示条件信息;x为文本数据和条件信息之间的互信息计算结果;p(a)表示文本数据中每个词出现概率的累积;p(c)表示条件信息与文本数据中每个词出现概率的累积;p(a,c)表示文本数据中每个词与条件信息的概率累积;
无条件内容损失子单元,用于将条件信息设置为空集,并通过如下公式计算无条件内容损失Lnull:
结合子单元,用于通过如下公式结合互信息损失和无条件内容损失,得到最终损失Loss:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111474679.4A CN114118024B (zh) | 2021-12-06 | 2021-12-06 | 一种条件文本生成方法及生成*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111474679.4A CN114118024B (zh) | 2021-12-06 | 2021-12-06 | 一种条件文本生成方法及生成*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114118024A true CN114118024A (zh) | 2022-03-01 |
CN114118024B CN114118024B (zh) | 2022-06-21 |
Family
ID=80366638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111474679.4A Active CN114118024B (zh) | 2021-12-06 | 2021-12-06 | 一种条件文本生成方法及生成*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114118024B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334497A (zh) * | 2018-02-06 | 2018-07-27 | 北京航空航天大学 | 自动生成文本的方法和装置 |
CN109344391A (zh) * | 2018-08-23 | 2019-02-15 | 昆明理工大学 | 基于神经网络的多特征融合中文新闻文本摘要生成方法 |
CN110458216A (zh) * | 2019-07-31 | 2019-11-15 | 中山大学 | 基于条件生成对抗网络的图像风格迁移方法 |
CN112231582A (zh) * | 2020-11-10 | 2021-01-15 | 南京大学 | 一种基于变分自编码数据融合的网站推荐方法和设备 |
CN112417092A (zh) * | 2020-11-11 | 2021-02-26 | 南京邮电大学 | 基于深度学习的智能化文本自动生成***及其实现方法 |
CN112417134A (zh) * | 2020-10-30 | 2021-02-26 | 同济大学 | 基于语音文本深度融合特征的摘要自动生成***及方法 |
CN112765345A (zh) * | 2021-01-22 | 2021-05-07 | 重庆邮电大学 | 一种融合预训练模型的文本摘要自动生成方法及*** |
CN113554549A (zh) * | 2021-07-27 | 2021-10-26 | 深圳思谋信息科技有限公司 | 文本图像的生成方法、装置、计算机设备和存储介质 |
CN113609284A (zh) * | 2021-08-02 | 2021-11-05 | 河南大学 | 一种融合多元语义的文本摘要自动生成方法及装置 |
-
2021
- 2021-12-06 CN CN202111474679.4A patent/CN114118024B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334497A (zh) * | 2018-02-06 | 2018-07-27 | 北京航空航天大学 | 自动生成文本的方法和装置 |
CN109344391A (zh) * | 2018-08-23 | 2019-02-15 | 昆明理工大学 | 基于神经网络的多特征融合中文新闻文本摘要生成方法 |
CN110458216A (zh) * | 2019-07-31 | 2019-11-15 | 中山大学 | 基于条件生成对抗网络的图像风格迁移方法 |
CN112417134A (zh) * | 2020-10-30 | 2021-02-26 | 同济大学 | 基于语音文本深度融合特征的摘要自动生成***及方法 |
CN112231582A (zh) * | 2020-11-10 | 2021-01-15 | 南京大学 | 一种基于变分自编码数据融合的网站推荐方法和设备 |
CN112417092A (zh) * | 2020-11-11 | 2021-02-26 | 南京邮电大学 | 基于深度学习的智能化文本自动生成***及其实现方法 |
CN112765345A (zh) * | 2021-01-22 | 2021-05-07 | 重庆邮电大学 | 一种融合预训练模型的文本摘要自动生成方法及*** |
CN113554549A (zh) * | 2021-07-27 | 2021-10-26 | 深圳思谋信息科技有限公司 | 文本图像的生成方法、装置、计算机设备和存储介质 |
CN113609284A (zh) * | 2021-08-02 | 2021-11-05 | 河南大学 | 一种融合多元语义的文本摘要自动生成方法及装置 |
Non-Patent Citations (2)
Title |
---|
SHUAI ZHAO 等: "A Topical Keywords Fusion Based on Transformer For Text Summarization", 《2020 13TH INTERNATIONAL CONFERENCE ON INTELLIGENT COMPUTATION TECHNOLOGY AND AUTOMATION (ICICTA)》, 13 September 2021 (2021-09-13), pages 294 - 297 * |
钱胜杰: "基于深度学习的条件式文本生成的研究和应用", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 May 2021 (2021-05-15), pages 138 - 1665 * |
Also Published As
Publication number | Publication date |
---|---|
CN114118024B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582767B (zh) | 对话***处理方法、装置、设备及可读存储介质 | |
CN110427617B (zh) | 推送信息的生成方法及装置 | |
Gu et al. | Dialogwae: Multimodal response generation with conditional wasserstein auto-encoder | |
WO2021104102A1 (zh) | 语音识别纠错方法、相关设备及可读存储介质 | |
CN109977212B (zh) | 对话机器人的回复内容生成方法和终端设备 | |
CN110008409A (zh) | 基于自注意力机制的序列推荐方法、装置及设备 | |
CN109146610A (zh) | 一种智能保险推荐方法、装置及智能保险机器人设备 | |
US20230244938A1 (en) | Using Chains of Thought to Prompt Machine-Learned Models Pre-Trained on Diversified Objectives | |
CN110246488B (zh) | 半优化CycleGAN模型的语音转换方法及装置 | |
CN110209774A (zh) | 处理会话信息的方法、装置及终端设备 | |
CN108899013A (zh) | 语音搜索方法、装置和语音识别*** | |
CN113934887B (zh) | 一种基于语义解耦的无提议时序语言定位方法 | |
CN109582952A (zh) | 诗歌生成方法、装置、计算机设备和介质 | |
CN110174942A (zh) | 眼动合成方法及装置 | |
CN112767917A (zh) | 语音识别方法、装置及存储介质 | |
Li et al. | Expressive Speech Driven Talking Avatar Synthesis with DBLSTM Using Limited Amount of Emotional Bimodal Data. | |
CN112463989A (zh) | 一种基于知识图谱的信息获取方法及*** | |
Zhao et al. | Multi-task learning with graph attention networks for multi-domain task-oriented dialogue systems | |
WO2023235346A1 (en) | Prompting machine-learned models using chains of thought | |
CN116051688A (zh) | 过渡动画生成方法及装置、计算机可读存储介质、终端 | |
Lu et al. | Co-speech gesture synthesis using discrete gesture token learning | |
Huang et al. | Fine-grained talking face generation with video reinterpretation | |
Yan et al. | Perflow: Piecewise rectified flow as universal plug-and-play accelerator | |
CN114118024B (zh) | 一种条件文本生成方法及生成*** | |
CN117216223A (zh) | 对话文本的生成方法和装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |