自动生成文本的方法和装置制造方法及图纸

技术编号:18553564 阅读:29 留言:0更新日期:2018-07-28 10:43
本发明专利技术公开了一种自动生成文本的方法,包括以下步骤:数据获取;数据预处理;模型构建;损失定义;模型预训练;模型对抗训练模型验证。本发明专利技术结合循环神经网络和变分自编码器,以及加上对抗网络训练模式,使得生成的文本既避免了随着长度变长,文本质量变差的问题,也避免文本生成单一的问题。该方法应用了在自然语言处理领域常用的循环神经网络作为基础,在上面融合了变分自编码器,能够更好地学习到文本的分布。后期的效果提升,使用了生成对抗网络的思想,运用卷积神经网络作为判别器,使用了强化学习来进行训练,在全局上对模型进行训练,达到更好的效果。本发明专利技术还公开了一种自动生成文本的装置。

【技术实现步骤摘要】
自动生成文本的方法和装置
本专利技术涉及计算机自然语言处理
,特别是涉及一种自动生成文本的方法和装置。
技术介绍
文本自动生成是自然语言处理领域的一个重要研究方向,实现文本自动生成也是人工智能走向成熟的一个重要标志。我们期待未来有一天计算机能够像人类一样会写作,能够撰写出高质量的自然语言文本。对于文本生成的应用,在生活中十分广泛,首先可以分成监督式和无监督式的文本生成。对于监督的文本生成,例如机器翻译、智能问答系统、对话系统以及文本摘要。对于无监督的文本生成,通过学习到数据的原本分布,然后可以生成与原本数据类似的样本,例如诗歌创作、音乐创作等。利用文本生成,我们可以实现更加智能和自然的人机交互,我们也可以通过文本自动生成系统替代编辑实现新闻的自动撰写与发布。开始,使用循环神经网络语言模型来进行文本生成,使用的是最大似然估计来进行训练的,生成的文本会有一个问题,就是在文本生成的过程中,句子长度越长,句子质量越差。后面就有使用强化学习和对抗网络来进行文本生成的问题,解决了这个问题,虽然改进之后,可以生成质量比较高的文本,但是生成的文本比较单一。有鉴于此,有必要针对文本生成单一的问题,研发一种新的文本生成的方法。
技术实现思路
基于此,有必要针对传统技术存在的问题,提供一种自动生成文本的方法和装置,该方法应用了在自然语言处理领域常用的循环神经网络作为基础,在上面融合了变分自编码器,能够更好地学习到文本的分布。后期的效果提升,使用了生成对抗网络的思想,运用卷积神经网络作为判别器,使用了强化学习来进行训练,在全局上对模型进行训练,达到更好的效果。第一方面,本专利技术实施例提供了一种自动生成文本的方法,所述方法包括:对获取的文本数据集基于构建模型的应用阶段进行划分;根据训练目标信息构造出带潜变量的生成对抗网络模型,并对所述生成对抗网络模型中的损失函数进行定义;对所述生成对抗网络模型进行预训练;使用预训练好的参数进行模型初始化,并对所述生成对抗网络模型进行对抗训练;通过对所述生成对抗网络模型进行对抗训练后获取训练完成的生成器中的大数据样本,计算生成的所述大数据样本与测试集之间的bleu分数。在其中一个实施例中,还包括:调用多个自然语言文本数据集,将多个所述自然语言文本数据集定义为所述文本数据集,以及将多个所述自然语言文本数据集中的文本通过预处理转化为训练带潜变量的生成对抗网络的所需要的形式。在其中一个实施例中,还包括:对原始的文本进行分词;对所有词进行统计,按照词频由高到低进行排序,建立词表;对所有句子的长度进行统计,选择一个合适的句子的最大长度L1,以实现预设部分的文本信息到达预设完整度;对输入的数据进行长度调整,对于长度大于L1的句子,进行截取为长度L1,于长度小于最大长度的句子,进行填充符的填充操作,其中,所述填充符为预先设定,在整个文本处理过程中,每句句首和句尾都添加有开始符和结束符,若长度小于预设最大长度,则在所述结束符前填充所述填充符;对所有的句子进行随机打乱,然后按照9:1划分成训练集和测试集,其中,所述训练集为参与训练的样本,所述测试集用于作为模型的评测数据集;根据所述词表,将训练数据中的所有的词替换成数字形式;其中,所述词表中设置有一个预设词表大小v1,所有数字大于v1的词,通过unk符号来进行替代,所述unk符号为预设符号,用于替换超过词表大小的词。在其中一个实施例中,所述对获取的文本数据集基于构建模型的应用阶段进行划分,包括:对获取的所述文本数据集基于构建所述模型的应用阶段划分为训练数据集与验证数据集,其中,所述训练数据集用于构建所述模型的训练阶段,所述验证数据集用于构建所述模型的验证阶段。在其中一个实施例中,所述根据训练目标信息构造出带潜变量的生成对抗网络模型,包括:将输入的数据经过一层线性映射的神经网络,将每个词对应的数字ID转化为词向量表示形式;将获取到的所述词向量的形式,通过一个循环神经网络的处理,提取句子中词之间的语义特征,其中,所述循环神经网络为长短时记忆网络,且所述长短时记忆网络为双层的所述循环神经网络,且使用残差连接;将所述循环神经网络输出的特征信息,经过一个变分自编码器结构,通过上个时刻的特征学习到潜变量的先验分布,通过当下时刻的特征以及当前的输入,学习到潜变量的后验分布的近似,其中,所述先验分布和后验分布均假设服从高斯分布,通过神经网络学习方式获取的高斯分布的均值和方差;从所述后验分布中进行采样,通过采样得到的潜变量对应的向量预测下个时刻的目标输出。在其中一个实施例中,对所述生成对抗网络模型中的损失函数进行定义,包括:定义判别器的所述损失函数,其中,所述判别器用于判断输入的文本是属于生成器生成的文本还是原始的文本,作为所述判别器的输入,所述生成器生成的文本和所述原始的文本被赋予不同的标签,在预训练和对抗训练过程中的所述判别器的所述损失函数的形式相同;定义生成器的预训练过程中的所述损失函数,其中,所述生成器是由循环神经网络和变分自编码器构成,所述循环神经网络获取句子中词之间的语意关系,通过所述变分自编码器进行预测目标输出;定义所述生成器在对抗训练过程中的所述损失函数,其中,在对抗训练的过程中,所述生成器用于生成真实的样本用于迷惑判别器,所述判别器区分时错误率与所述生成器训练效果成正比。。在其中一个实施例中,所述对生成对抗网络模型进行预训练,包括:初始化各个层网络的参数,且向所述生成对抗网络模型持续输入训练样本,根据所述损失函数计算出整个网络的损失值;通过反向传播算法计算出各个层网络的所述参数的梯度,通过随机梯度下降算法对各个层网络的所述参数进行优化。在其中一个实施例中,还包括:对所述生成器和所述判别器进行预训练;其中,所述生成器的预训练,包括:使用均值为0,方差为0.02的高斯分布,对模型的参数进行随机初始化;通过对数据进行随机打乱,每次输入的数据是多句话,进行批次训练;按照预先定义的所述损失函数,使用随机梯度下降法通过获取的梯度对各层参数进行优化,以实现一轮网络参数的训练;以及所述判别器的预训练,包括:使用预训练好的判别器,生成和训练数据量相同的文本,且将其与训练数据进行混合和随机打乱,且作为判别器的输入,按照预先定义所述损失函数,使用随机梯度下降法通过获取的梯度对各层参数进行优化,以实现一轮网络参数的训练。在其中一个实施例中,对所述生成对抗网络模型进行对抗训练,包括:通过预训练好的所述生成器和判别器的参数初始化生成器和判别器;通过所述生成器生成文本数据,且使用所述判别器进行打分,最后通过策略梯度对模型进行训练,当所述判别器正确轨迹进行打分时,针对每个动作都进行打分,对于长度未达到预设完整度的句子,使用MonteCarlo搜索对句子进行补全,然后输入到所述判别器得到对应的分数;按照预先定义的所述损失函数,使用随机梯度下降法通过获取的梯度对各层参数进行优化,以实现一轮网络参数的训练;所述生成器训练完毕后,通过训练好的所述生成器的生成样本,作为所述判别器的输入进行训练所述判别器;持续进行迭代训练操作直至所述生成器收敛。第二方面,本专利技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的自动生成文本的本文档来自技高网...

【技术保护点】
1.一种自动生成文本的方法,其特征在于,所述方法包括:对获取的文本数据集基于构建模型的应用阶段进行划分;根据训练目标信息构造出带潜变量的生成对抗网络模型,并对所述生成对抗网络模型中的损失函数进行定义;对所述生成对抗网络模型进行预训练;使用预训练好的参数进行模型初始化,并对所述生成对抗网络模型进行对抗训练;通过对所述生成对抗网络模型进行对抗训练后获取训练完成的生成器中的大数据样本,计算生成的所述大数据样本与测试集之间的bleu分数。

【技术特征摘要】
1.一种自动生成文本的方法,其特征在于,所述方法包括:对获取的文本数据集基于构建模型的应用阶段进行划分;根据训练目标信息构造出带潜变量的生成对抗网络模型,并对所述生成对抗网络模型中的损失函数进行定义;对所述生成对抗网络模型进行预训练;使用预训练好的参数进行模型初始化,并对所述生成对抗网络模型进行对抗训练;通过对所述生成对抗网络模型进行对抗训练后获取训练完成的生成器中的大数据样本,计算生成的所述大数据样本与测试集之间的bleu分数。2.根据权利要求1所述的方法,其特征在于,还包括:调用多个自然语言文本数据集,将多个所述自然语言文本数据集定义为所述文本数据集,以及将多个所述自然语言文本数据集中的文本通过预处理转化为训练带潜变量的生成对抗网络的所需要的形式。3.根据权利要求1或2所述的方法,其特征在于,还包括:对原始的文本进行分词;对所有词进行统计,按照词频由高到低进行排序,建立词表;对所有句子的长度进行统计,选择一个合适的句子的最大长度L1,以实现预设部分的文本信息到达预设完整度;对输入的数据进行长度调整,对于长度大于L1的句子,进行截取为长度L1,对于长度小于最大长度的句子,进行填充符的填充操作,其中,所述填充符为预先设定,在整个文本处理过程中,每句句首和句尾都添加有开始符和结束符,若长度小于预设最大长度,则在所述结束符前填充所述填充符;对所有的句子进行随机打乱,然后按照9:1划分成训练集和测试集,其中,所述训练集为参与训练的样本,所述测试集用于作为模型的评测数据集;根据所述词表,将训练数据中的所有的词替换成数字形式;其中,所述词表中设置有一个预设词表大小v1,所有数字大于v1的词,通过unk符号来进行替代,所述unk符号为预设符号,用于替换超过词表大小的词。4.根据权利要求1所述的方法,其特征在于,所述对获取的文本数据集基于构建模型的应用阶段进行划分,包括:对获取的所述文本数据集基于构建所述模型的应用阶段划分为训练数据集与验证数据集,其中,所述训练数据集用于构建所述模型的训练阶段,所述验证数据集用于构建所述模型的验证阶段。5.根据权利要求1所述的方法,其特征在于,所述根据训练目标信息构造出带潜变量的生成对抗网络模型,包括:将输入的数据经过一层线性映射的神经网络,将每个词对应的数字ID转化为词向量表示形式;将获取到的所述词向量的形式,通过一个循环神经网络的处理,提取句子中词之间的语义特征,其中,所述循环神经网络为长短时记忆网络,且所述长短时记忆网络为双层的所述循环神经网络,且使用残差连接;将所述循环神经网络输出的特征信息,经过一个变分自编码器结构,通过上个时刻的特征学习到潜变量的先验分布,通过当下时刻的特征以及当前的输入,学习到潜变量的后验分布的近似,其中,所述先验分布和后验分布均假设服从高斯分布,通过神经网络学习方式获取的高斯分布的均值和方差;从所述后验分布中进行采样,通过采样得到的潜变量对应的向量预测下个时刻的目标输出。6.根据权利要求1所述的方法,其特征在于,对所述生成对抗网络模型中的损失函数进行定义,包括:定义判别器的所述损失函数,其中,所...

【专利技术属性】
技术研发人员:秦曾昌万涛王恒
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1