The invention discloses an automatic problem generation method based on deep learning, which comprises the following steps: constructing a training set;
【技术实现步骤摘要】
基于深度学习的问题自动生成方法
本专利技术属于自然语言处理
,具体涉及一种基于深度学习的问题自动生成方法。
技术介绍
如何教会机器更好的阅读和理解人类语言是一个较大的挑战,这需要机器能理解自然语言和知道一些必要的常识道理,近年来,关于问题自动生成的研究在自然语言领域内变得越来越流行。问题自动生成就是在给定文章和答案的情况下,自动的生成与文章和答案相关的高质量问题。问题自动生成方法是自动的生成与文章相关的问题的方法,该方法可以广泛的应用于于智能教学、智能问答和知识问答游戏等,例如:智能教育:在儿童教育领域,孩子读完一篇故事后,问题自动生成方法会根据故事内容自动生成各式各样的相关问题,让孩子回答,激发孩子的阅读兴趣。智能辅导:问题自动生成方法可以自动的批量生成练习题,供学生练习。问答游戏:问题自动生成方法可以生成各种各样的问题,让玩家回答,回答正确则获得相应奖励。智能问答:问题自动生成方法可以用来辅助问题回答模型的训练,问题自动生成方法可以生成各种各样的问题,由此可以自动获得大量的<文章,问题,答案>样本,用来训练问题回答模型,应用于智能问答任务。现有方法通常是基于规则来实现问题自动生成方法,严重依赖于人工抓取的特征集,其生成的问题通常存在语句不通顺,语义不合理,词重复,与文章内容不匹配等缺陷。
技术实现思路
本专利技术的目的在于提供一种基于深度学习的问题自动生成方法。实现本专利技术目的的技术方案为:一种基于深度学习的问题自动生成方法,包括以下步骤:步骤1,构建训练集<文章,答案,问题>、验证集<文章,答案,问题>、预测集 ...
【技术保护点】
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...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。