基于深度学习的问题自动生成方法技术

技术编号:20916474 阅读:25 留言:0更新日期:2019-04-20 09:40
本发明专利技术公开了一种基于深度学习的问题自动生成方法,包含如下步骤:构建训练集

An Automatic Problem Generation Method Based on Deep Learning

The invention discloses an automatic problem generation method based on deep learning, which comprises the following steps: constructing a training set;

【技术实现步骤摘要】
基于深度学习的问题自动生成方法
本专利技术属于自然语言处理
,具体涉及一种基于深度学习的问题自动生成方法。
技术介绍
如何教会机器更好的阅读和理解人类语言是一个较大的挑战,这需要机器能理解自然语言和知道一些必要的常识道理,近年来,关于问题自动生成的研究在自然语言领域内变得越来越流行。问题自动生成就是在给定文章和答案的情况下,自动的生成与文章和答案相关的高质量问题。问题自动生成方法是自动的生成与文章相关的问题的方法,该方法可以广泛的应用于于智能教学、智能问答和知识问答游戏等,例如:智能教育:在儿童教育领域,孩子读完一篇故事后,问题自动生成方法会根据故事内容自动生成各式各样的相关问题,让孩子回答,激发孩子的阅读兴趣。智能辅导:问题自动生成方法可以自动的批量生成练习题,供学生练习。问答游戏:问题自动生成方法可以生成各种各样的问题,让玩家回答,回答正确则获得相应奖励。智能问答:问题自动生成方法可以用来辅助问题回答模型的训练,问题自动生成方法可以生成各种各样的问题,由此可以自动获得大量的<文章,问题,答案>样本,用来训练问题回答模型,应用于智能问答任务。现有方法通常是基于规则来实现问题自动生成方法,严重依赖于人工抓取的特征集,其生成的问题通常存在语句不通顺,语义不合理,词重复,与文章内容不匹配等缺陷。
技术实现思路
本专利技术的目的在于提供一种基于深度学习的问题自动生成方法。实现本专利技术目的的技术方案为:一种基于深度学习的问题自动生成方法,包括以下步骤:步骤1,构建训练集<文章,答案,问题>、验证集<文章,答案,问题>、预测集<文章,答案>;步骤2,利用深度学习框架tensorflow搭建基于编码器-解码器的序列到序列神经网络模型;步骤3,对训练集、验证集和预测集内的句子进行分词、制作词表、词嵌入操作;步骤4,利用训练集来训练模型,利用验证集检测当前训练的模型是否已经过拟合,如果过拟合,则停止训练;否则继续训练;步骤5,用训练好的模型对预测集进行解码,生成问题。与现有技术相比,本专利技术的显著优点为:传统的问题自动生成技术基于规则来实现的,严重依赖于人工抓取的特征集,本专利技术基于深度学习方法,可以自动抓取到重要特征,极大减少了模型对人工抓取特征集的依赖;在应用效果上,基于深度学习的问题自动生成方法也远好于基于规则的方法。附图说明图1是本专利技术构建的神经网络图。图2是本专利技术基于深度学习的问题自动生成方法流程图。具体实施方式本专利技术针对智能教学、智能问答和知识问答游戏等领域所需的问题生成应用,提出了基于深度学习的问题自动生成方法。如图2所示,本专利技术的一种基于深度学习的问题自动生成方法,包括以下步骤:步骤1,构建训练集<文章,答案,问题>、验证集<文章,答案,问题>、预测集<文章,答案>,所述答案为文章中某一连续片段;步骤2,利用深度学习框架tensorflow搭建基于编码器-解码器的序列到序列神经网络模型;所述神经网络模型包含注意力机制,Pointer-generatornetwork,Answer-supression机制,注意力损失机制;步骤3,对数据集内的句子进行分词、制作词表、词嵌入操作;所述数据集包括训练集、验证集、预测集;步骤4,利用训练集来训练模型,利用验证集来检测当前训练的模型是否已经过拟合,如果过拟合,则停止训练;否则继续训练;步骤5,用训练好的模型对预测集进行解码,生成问题。进一步的,步骤1构建训练集<文章,答案,问题>、验证集<文章,答案,问题>、预测集<文章,答案>,具体方法为:模型所需的数据集,每个样本包含<文章,答案,问题>三个主要元素,其中答案是文章中的某一连续片段,将数据集按照80%,10%,10%的比例划分为训练集,验证集,预测集。进一步的,步骤2利用深度学习框架tensorflow搭建基于编码器-解码器的序列到序列神经网络模型,模型包含注意力机制,Pointer-generatornetwork,Answer-supression机制,注意力损失机制,具体方法为:(1)基于注意力机制的编码器-解码器结构:该网络结构中存在两个编码器,并且均是基于双向LSTM神经网络,分别是处理文章的文章编码器,和处理答案的答案编码器,文章编码器的输入为经过分词和词嵌入后的文章,将文章分词后得到的第i个词xi作为文章编码器第i步的输入,其双向LSTM在第i步会产生两个方向相反的隐藏层状态上式中的是正向在第i步的隐藏层状态,是反向在第i步的隐藏层状态,我们在每一步中连接正反反向的隐藏层状态基于双向LSTM神经网络的文章编码器在首尾两端分别能得到隐藏层状态h1,h|x|,其中|x|代指文章编码器的步长。其答案编码器也是基于双向LSTM结构,输入为经过分词和词嵌入后的答案,将输入定义为Xanswer,则:上式中的是答案编码器中正向LSTM第i步的隐藏层状态,是答案编码器中反向LSTM第i步的隐藏层状态,同样的,在其首尾两端也能分别得到隐藏层状态answer1,将其连接起来,则:其中,式中的|Xanswer|表示答案编码器的步长。我们将ans_emb_output与文章编码器中得到的h1、h|x|连接起来,作为解码器隐藏层初始状态S0:c=[h|x|:h1:ans_emb_output]h=[h|x|:h1:ans_emb_output]S0=LSTMStateTuple(c,h).上式中c,h分别表示LSTMCell中的长时记忆状态,短时记忆状态。解码器是一个单层单向的LSTM网络:st=LSTM(yt-1,st-1)上式中的st是指解码器在第t步解码时的隐藏层状态,yt-1是指第t步的解码器的输入(在训练阶段,为第t-1步的目标词,在预测阶段,为第t-1步的模型生成词)。(2)注意力机制:在解码器每一步解码时,都会得到在文章编码器输入文本上的一个概率分布,假设在第t步解码,可以得到概率分布at:上式中的v,Wh,Ws,Wa和battn是模型需要学习的参数,得到的at是文章编码器的输入文本上的一个概率分布,以下我们记该概率分布为文章注意力分布。由上式可知,其注意力分布由文章编码器隐藏层状态hi,解码器隐藏层状态st,答案信息ans_emb_output共同决定。每一个词都对应一个概率值可以理解该词所获取的注意力权重,我们将该词对应的隐藏层状态hi与相乘,并且求和,得到上下文向量,记做将上下文向量与当前步的解码器隐藏层状态st连接起来,再做两层的线性变换:上式中的V′、V、b、b′都是模型需要学习的参数,我们由上面的计算过程可知,Pvocab为预设词表上的概率分布。(3)Pointer-GeneratorNetwork该机制可以提高生成词的准确度,通过直接利用文章编码器输入文本中有用信息,有效的处理OOV问题。最后得到的每个词的概率值不仅仅取决于上面的计算得出的Pvocab,而且也与文章注意力分布at有着密切的关系。定义变量pgen∈[0,1],在解码器解码时,假设在第t步解码,该变量可由上下文向量解码器隐藏层状态st和解码器输入yt计算得出:上式中的bptr表示模型需要学习的参数本文档来自技高网...

【技术保护点】
1.一种基于深度学习的问题自动生成方法,其特征在于,包括以下步骤:步骤1,构建训练集<文章,答案,问题>、验证集<文章,答案,问题>、预测集<文章,答案>;步骤2,利用深度学习框架tensorflow搭建基于编码器‑解码器的序列到序列神经网络模型;步骤3,对训练集、验证集和预测集内的句子进行分词、制作词表、词嵌入操作;步骤4,利用训练集来训练模型,利用验证集检测当前训练的模型是否已经过拟合,如果过拟合,则停止训练;否则继续训练;步骤5,用训练好的模型对预测集进行解码,生成问题。

【技术特征摘要】
1.一种基于深度学习的问题自动生成方法,其特征在于,包括以下步骤:步骤1,构建训练集<文章,答案,问题>、验证集<文章,答案,问题>、预测集<文章,答案>;步骤2,利用深度学习框架tensorflow搭建基于编码器-解码器的序列到序列神经网络模型;步骤3,对训练集、验证集和预测集内的句子进行分词、制作词表、词嵌入操作;步骤4,利用训练集来训练模型,利用验证集检测当前训练的模型是否已经过拟合,如果过拟合,则停止训练;否则继续训练;步骤5,用训练好的模型对预测集进行解码,生成问题。2.根据权利要求1所述的基于深度学习的问题自动生成方法,其特征在于,步骤1构建训练集<文章,答案,问题>、验证集<文章,答案,问题>、预测集<文章,答案>,具体方法为:每个样本包含<文章,答案,问题>三个主要元素,其中答案是文章中的某一连续片段,将数据集按照80%,10%,10%的比例划分为训练集、验证集、预测集。3.根据权利要求1所述的基于深度学习的问题自动生成方法,其特征在于,步骤2利用深度学习框架tensorflow搭建基于编码器-解码器的序列到序列神经网络模型,模型包含注意力机制、Pointer-generatornetwork、Answer-supression机制和注意力损失机制,具体方法为:(1)基于注意力机制的编码器-解码器结构:该网络结构中存在两个编码器,并且均是基于双向LSTM神经网络,分别是处理文章的文章编码器和处理答案的答案编码器,文章编码器的输入为经过分词和词嵌入后的文章,将文章分词后得到的第i个词xi作为文章编码器第i步的输入,其双向LSTM在第i步会产生两个方向相反的隐藏层状态上式中的为正向在第i步的隐藏层状态,为反向在第i步的隐藏层状态,在每一步中连接正反反向的隐藏层状态基于双向LSTM神经网络的文章编码器在首尾两端分别得到隐藏层状态h1、h|x|,其中|x|代指文章编码器的步长;答案编码器也是基于双向LSTM结构,输入为经过分词和词嵌入后的答案,将输入定义为Xanswer,则:上式中的是答案编码器中正向LSTM第i步的隐藏层状态,是答案编码器中反向LSTM第i步的隐藏层状态,首尾两端分别得到隐藏层状态answer1,将其连接起来,则:其中,|Xanswer|表示答案编码器的步长;将ans_emb_output与文章编码器中得到的h1、h|x|连接起来,作为解码器隐藏层初始状态S0:c=[h|x|:h1:ans_emb_output]h=[h|x|:h1:ans_emb_output]S0=LSTMStateTuple(c,h).上式中c,h分别表示LSTMCell中的长时记忆状态和短时记忆状态;解码器是一个单层单向的LSTM网络:st=LSTM(yt-1,st-1)上式中的st是指解码器在第t步解码时的隐藏层状态,yt-1是指第t步的解码器的输入;(2)注意力机制:在解码器每一步解码时,会得到在文章编码器输入文本上的一个概率分布,假设在第t步解码,可得到概率分布at:上式中的v、Wh、Ws、Wa和battn是模型需要学习的参数,得到的at是文章编码器的输入文本上的一个概率分布,记该概率分布为文章注意力分布;由上式可知,其注意力分布由文章编码器隐藏层状态hi,解码器隐藏层状态st,答案信息ans_emb_output共同决定;每一个词都对应一个概率值将该词对应的隐藏层状态hi与相乘,并且求和,得到上下文向量,记做将上下文向量与当前步的解码器隐藏层状态st连接起来,再做两层的线性变换:上式中的V′、V、b、b′均为模型需要学习的参数,Pvocab为预设词表上的概率分布;(3)Pointer-GeneratorNetwork定义变量pgen∈[0,1],在解码器解码时,假设在第t步解码,该变量可由上下文向量解码器隐藏层状态st和解码器输入yt计算得出:上式中的bptr表示模型需要学习的参数,σ表示sigm...

【专利技术属性】
技术研发人员:陶冶陆建峰
申请(专利权)人:南京理工大学
类型:发明
国别省市:江苏,32

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

1