一种基于深度学习的FAQ检索式问答构建方法及系统与流程

文档序号:24411297发布日期:2021-03-26 19:26阅读:来源:国知局

技术特征:
1.一种基于深度学习的faq检索式问答构建方法,其特征在于,包括以下步骤:步骤s1,获取用户问题,并整理与所述用户问题相关的文档内容;步骤s2,构建训练集和测试集;步骤s3,在测试集和训练集的基础上,增强数据;步骤s4,模型建立及迭代优化;步骤s5,模型建立完之后,设置问答系统,用户任意问问题,系统会根据神经网络模型预测该问题属于哪一类,进而给出相应的答案。2.根据权利要求1所述的一种基于深度学习的faq检索式问答构建方法,其特征在于,所述步骤s1中,对于有大量问答记录的场景,问答记录里面包括很多高频的知识点,所述高频的知识点包括问题和答案;所述高频的知识点对应的问法通常并不唯一,即知识库的结构为一个问题集合对应同一个答案,其针对faq数据有以下三种数据类型:(1)、标准问q:faq中问题的标准用户query;(2)、答案a:faq中标准问对应的标准回答;(3)、相似问q1,q2

:跟标准问语义相似可用同一答案回答的query;其中,标准问q、对应答案a、以及该标准问q对应的所有相似问q1,q2,

,一起组成一个知识点。3.根据权利要求2所述的一种基于深度学习的faq检索式问答构建方法,其特征在于,所述步骤s1中,需要建立一个更加合理的知识库,要求每个知识点只包含一个意图,且知识点之间没有交叉、歧义、冗余容易造成混淆的因素;而且,所述知识库的标注为每个faq积累一定数量的有代表性的相似问。4.根据权利要求2所述的一种基于深度学习的faq检索式问答构建方法,其特征在于,所述步骤s1的后期持续维护包括:新faq发现,以及原faq的合并、拆分和纠正。5.根据权利要求1所述的一种基于深度学习的faq检索式问答构建方法,其特征在于,所述步骤s2中,具体包括以下步骤:测试集构造:将相似问中的第一条相似问q1作为query,从faq知识库的所有知识点中通过lucene召回30个知识点作为候选集;训练集构造:包含两部分,一部分是正例的构造,另一部分是负例的构造,所述正例的构造和所述负例的构造中数据的构造方式将直接影响到最终的效果;在正例的构造中,因为每个知识点的第一个相似问是作为测试集中出现的,所以在构造训练集的时候排除掉所有知识点中的第一条相似问q1;这样,有多于2个相似问的知识点、还有多于的其他相似问可以用来构造训练集;将这些识点中的标准问和从相似问的第二条开始(即[q2,q3,

,qn])可以按照不同方式构造出正例和负例。6.根据权利要求5所述的一种基于深度学习的faq检索式问答构建方法,其特征在于,所述步骤s2中,在训练集正例的构造中,去除所有知识点中的第一条相似问q1,其他相似问及标准问两两组合成正例pair对;对于相似问多的知识点进行剪切。7.根据权利要求5所述的一种基于深度学习的faq检索式问答构建方法,其特征在于,所述步骤s2中,训练集负例的构造方式包括:按jaccard距离召回、按lucene召回、从其他知识点中随机选择和按照正例中各问题出现的比例从其他知识点中采样选择,以及每个句子
和句子中的名词/动词构成pair对;而针对知识点分布不均衡的问题,对相似问很多的知识点进行相似问剪切。8.根据权利要求1所述的一种基于深度学习的faq检索式问答构建方法,其特征在于,所述步骤s3中,由于深度学习需要较多的数据,为了增强数据,采用以下策略:交换两个句子之间的顺序;对句子进行分词,重新组合生成新的句子;打乱句子的顺序,随机抽取句子。9.根据权利要求1所述的一种基于深度学习的faq检索式问答构建方法,其特征在于,所述步骤s4中,模型的基本框架一般都是将待匹配的两个句子分别使用两个encoder来获取对应context信息,然后将二者的context信息进行匹配,得到匹配后的特征信息;或者模型的基本框架在匹配之后的特征后面加上一些其他的传统文本特征,将所有这些特征进行concat;模型的基本框架最后接上softmax层,做最终的分类;模型建立及迭代优化具体包括以下步骤:步骤s41,embedding层:使用word2vec训练词向量;首先,基于word2vec工具,分别将词向量转化为问题词向量和答案词向量,从而得到问答文本集合所对应的问题词向量矩阵q=(q1,q2,

,q
l
)和答案词向量a=(a1,a2,

,a
m
),其中,l和m分别为问答文本集合中题和答案的数量,q
i
(1≤i≤l)为第i个问题所对应的列向量,aj(1≤j≤m)为第j个答案所对应的列向量;接着,把问题词向量矩阵q和答案词向量a输入到lstm网络中去训练学习词序序列的语义特征信息,为了便于并行矩阵的计算,输入的长度选定一个最大值,句子中的词语较少则用0补充,大于最大的词语长度的句子则会截掉,模型中所有权重w和偏置b随机初始化为u(

0.05,+0.05)均匀分布;在学习过程中,首先通过lstm网络内部的遗忘门ft来决定lstm网络从细胞单元状态中丢弃哪些信息,同时,t时刻的词语会读取t

1个隐藏层的输出ht

1和当前时刻输入词向量qt,以及输入一个在0到1之间的偏置bf,并传递给t

1时刻的细胞单元状态ct

1,其计算方式为:ft=σ(wf[qt,ht

1]+bf),其中σ为sigmoid激励函数,wf为遗忘门杈重矩阵;其次,通过输入门it来决定什么值需要进行更新,其计算公式表示为:it=σ(wi[qt,ht

1]+bi),其中σ为sigmoid激励函数,wi为输入门杈重矩阵,bi为0到1之间的偏置;然后,根据tanh非线性激活函数来创建候选值其计算公式表示为:其中wc为候选杈重矩阵,bc为0到1之间的偏置;在此基础上,更新t时刻的细胞单元内部状态ct,其计算公式为:最后,计算并获取输出门的向量为ot,其计算公式为:ot=σ(wo[qt,ht

1]+bo),其中σ为sigmoid激励函数,wo为输出门杈重矩阵,bo为0到1之间的偏置,以及lstm网络隐藏层的输出值ht,其计算公式为:ht=ot*tanh(ct);步骤s42,encoder层:卷积具有局部特征提取的功能;用cnn来提取句子中类似n

gram的关键信息,考虑文本的上下文信息,将lstm网络的输出结果作为输入到cnn网络中,去学习更深层次的句子n

gram局部特征信息;
设定卷积窗口大小为k,相邻的词向量拼接矩阵为z,卷积核数为c,那么卷积的过程如下:g=f(wz+b),其中,f是relu激活函数,w和b为随机正态分布初始化u(0,0.05)的杈重矩阵和偏置;经过卷积操作后,可以得到问题文本的深层词向量矩阵dq和答案文本的深层词向量矩阵da。步骤s43,匹配层(matching):在得到两个句子的表示后,要针对两个句子的表示进行matching操作;获得的问题文本深层词向量矩阵dq和答案文本深层词向量矩阵da,计算问答文本对中每对词之间的一个匹配程度矩阵s,计算方式如下:s(i,j)=tanh(dqi

adj)其中tanh为非线性激活函数,dqi表示问题文本中第i个词向量,daj表示答案文本中第j个词向量,

为向量点乘,s(i,j)表示问题文本第i个词与答案文本第j个词之间的语义匹配分数;接着,对匹配程度矩阵s做行级的最大池化,并生成向量gq,其中第i个值表示问题文本第i个词对答案的重要性程度,同时,对匹配程度矩阵s做列级的最大池化,并生成向量ga,其中第j个值表示答案文本第j个词对问题的重要性程度;然后,分别对gq和ga选取最大的p个值,分别把这p个值对应的词语重新输入到lstm网络中,并选取最后时刻的隐藏层输出,分别得到维度为h的语义特征向量oq和oa,从而根据oq与oa来计算向量间的空间距离值作为问题文本和答案文本匹配的程度。10.一种基于深度学习的faq检索式问答系统,其特征在于,包括:问答模块,用于接收用户的输入问题,并对所述输入问题进行预处理;所述预处理过程包括构建训练集和构建测试集、并在构建训练集和构建测试集的基础上增强数据,将预处理后的所述输入问题发送至深度学习模块;深度学习模块,用于提取所述预处理后的输入问题中的特征信息,并根据所述特征信息生成对应的问题词向量,并根据预设的问题分类模型、问题匹配模型和问题词向量信息,从知识库模块中获取相匹配的标准问题及精确度较高的答案,并将精确度较高的答案返回至问答模块;所述知识库模块,用于判断知识库中是否存在与未识别问题对应的标准问题,并在所述知识库中存在与所述未识别问题对应的标准问题时,对与所述未识别问题对应的标准问题进行标注,并在所述知识库中不存在与所述未识别问题对应的标准问题时,根据未识别问题创建新标准问题,并对所述新标准问题进行标注,同时补充新标准问题对应的标准答案;所述深度学习模块还用于根据标注的与所述未识别问题对应的标准问题及匹配答案模型化训练。
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1