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:T
式中,q代表查询向量query,k 代表keylast的转置,v代表valuelast,dk代表keylast的维度;
S3034、将scroe输入前馈神经网络,得到融合特征fcp。
7.根据权利要求1所述的一种条件文本生成方法,其特征在于,步骤S5中,计算损失的方法包括:
S501、计算条件信息与文本数据的互信息损失Lpoint:x ‑1
Lpoint=(e‑1) ;
式中,a表示文本数据,c表示条件信息;x为文本数据和条件信息之间的互信息计算结果;p(a)表示文本数据中每个词出现概率的累积;p(c)表示条件信息与文本数据中每个词出现概率的累积;p(a,c)表示文本数据中每个词与条件信息的概率累积;
S502、将条件信息设置为空集,计算无条件内容损失Lnull:式中,c表示条件信息;xi表示当前生成的词;{x1,x2…xi‑1}表示生成xi需要的提示文本;
表示xi的后验概率;k表示生成文本的最大长度;
S503、通过如下公式计算最终损失Loss:式中,当所述互信息损失参与训练时, 否则当所述无条件内容损失参与训练时, 否则
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: 式T
中,q代表查询向量query,k代表keylast的转置,v代表valuelast,dk代表keylast的维度;
第二计算子单元,用于将scroe输入前馈神经网络,得到融合特征fcp。
10.根据权利要求8所述的一种条件文本生成系统,其特征在于,所述损失计算单元包括:
互信息损失子单元,用于通过如下公式计算条件信息与文本数据的互信息损失Lpoint:x ‑1
Lpoint=(e‑1) ;
式中,a表示文本数据,c表示条件信息;x为文本数据和条件信息之间的互信息计算结果;p(a)表示文本数据中每个词出现概率的累积;p(c)表示条件信息与文本数据中每个词出现概率的累积;p(a,c)表示文本数据中每个词与条件信息的概率累积;
无条件内容损失子单元,用于将条件信息设置为空集,并通过如下公式计算无条件内容损失Lnull:
式中,c表示条件信息;xi表示当前生成的词;{x1,x2…xi‑1}表示生成xi需要的提示文本;
表示xi的后验概率;k表示生成文本的最大长度;
结合子单元,用于通过如下公式结合互信息损失和无条件内容损失,得到最终损失Loss:
式中,当所述互信息损失参与训练时, 否则当所述无条件内容损失参与训练时, 否则