一种FAQ问句相似度计算方法及其系统技术方案

技术编号:25396765 阅读:43 留言:0更新日期:2020-08-25 23:01
本申请实施例公开一种FAQ问句相似度计算方法及其系统,用于提高检索式问答系统的检索结果的准确性。包括:使用文本相似度算法对被检索的问题句和预设的标准问答库中的FAQ问句进行相似度匹配计算,得出文本相似度最高的k个候选FAQ问句;将该问题句输入深度语义匹配模型,得到该问题句的语义向量,再与该FAQ问句的语义向量一起输入语义索引模型,得到语义相似度最高的L个候选FAQ问句;将上述k+L个候选FAQ问句进行并集操作,并与问题句两两配对后再次输入深度语义匹配模型,计算输出问题句与候选FAQ问句的相似度以及相似度的标签类别;将所有候选FAQ问句按相似的标签类别且相似度从高到低排列,输出相似度最大且超过预设阈值的FAQ问句。

【技术实现步骤摘要】
一种FAQ问句相似度计算方法及其系统
本申请实施例涉及自然语言处理
,特别涉及一种FAQ问句相似度计算方法及其系统。
技术介绍
常用问答对(frequentlyaskedquestions,FAQ),即常见的问题与该问题预设答案组成的一对组合,FAQ通常用于检索式问答系统的自动问答业务,检索式问答系统利用预设的标准问答库中存储的一系列常见的问题与该问题预设答案,对用户检索的问题进行解答。标准问答库是一个封闭的集合,在标准问答库中的每一个问题都是具有固定的答案和标题,同时也会对应多种拓展问法和关键词。用户在使用检索式问答系统进行问题检索时,系统会使用文本相似度算法对被检索的问题与标准问答库中的FAQ问句进行相似度匹配计算,从而找到标准问答库里找到相似度高的展现给用户。然而,随着人文社会的发展,用户使用检索式问答系统检索问题越来越复杂,标准问答库中的FAQ数量也越发庞大,导致检索式问答系统展现的检索结果往往不能令人满意。现有技术中,为提高检索式问答系统的检索结果准确性,提出了语义相似度计算方法,其思想是在输入层分别对用户的检索问题和标准问答库中的FAQ问句向量化,在表示层使用卷积神经网络(convolutionalneuralnetwork,CNN)或循环神经网络(recurrentneuralnetwork,RNN)等模型表达为低维语义向量,并在匹配层通过距离函数(如cosine距离等)来计算两个语义向量的距离,若距离越小,则说明两个语义向量之间的相似度越大,反之越小。这种语义的相似度计算的模型需要依赖大规模的有监督语料,即需要大规模的人工标注语料。因此,仅基于语义匹配的相似度计算方法或仅文本相似度算法的检索时问答系统存在过度依赖人工标注语料、耗费时间人工成本,或检索结构准确性不高等问题。
技术实现思路
本申请实施例提供了一种FAQ问句相似度计算方法及其系统,可以提高检索式问答系统的检索结果的准确性。本申请实施例第一方面提供一种FAQ问句相似度计算方法,包括:接收被检索的问题句;使用文本相似度算法对所述问题句和预设的标准问答库中的FAQ问句进行相似度匹配计算,得出文本相似度最高的k个候选FAQ问句,所述k为大于0的正整数;将所述问题句输入深度语义匹配模型,得到所述问题句的语义向量,所述深度语义匹配模型基于预训练模型在所述预设标准问答库中FAQ问句进行微调训练而成,用于计算出所述问句的语义向量、计算由所述问题句与所述FAQ问句构成的问句对之间是否为相似的标签类别,及对应的相似度;将所述问题句的语义向量输入语义索引模型,得到语义相似度最高的L个候选FAQ问句;将所述文本相似度最高的k个候选FAQ问句和语义相似度最高的L个候选FAQ问句进行并集操作,得到所述问题句最相似的n个候选FAQ问句,所述n为小于或等于k+L的正整数;将所述问题句与n个所述候选FAQ问句分别两两配对,得到n个候选问句对,将所述n个候选问句对再次输入所述深度语义匹配模型,分别输出所述问题句与n个所述候选FAQ问句是否为相似的标签类别,及对应的相似度;将与所述问题句的标签类别为相似的p个所述候选FAQ问句,按相似度从高到低排列,输出对应相似度最大且相似度超过预设阈值的候选FAQ问句,所述p为小于或等于n的正整数。可选地,所述深度语义匹配模型基于预训练模型在所述预设标准问答库中FAQ问句进行微调训练而成包括:使用所述标准问答库的FAQ问句对构建训练样本集,所述训练样本集的每一个FAQ问句仅对应一个预设答案;将所述训练样本集中的表达语义相同的FAQ问句两两配对并设置表示相似的标签类别,即正样本;将所述训练样本集中的表达语义不相同的FAQ问句两两配对并设置表示不相似的标签类别,即负样本;以所述训练样本集的正样本与负样本作为具体下游任务进行对所述现有的预训练模型进行微调训练,构建深度语义匹配模型,所述深度语义匹配模型用于计算出所述问题句的语义向量、以及计算由所述问题句与候选所述FAQ问句构成的问句对之间是否为相似的标签类别,及对应的相似度。可选地,将所述训练样本集中的表达语义不相同的FAQ问句两两配对并设置不相似的标签类别,即负样本包括:使用文本相似度算法给所述正样本的FAQ问句和所述标准问答库中的非正样本FAQ问句进行相似度匹配计算,得出m个候选负样本FAQ问句;将所述m个候选负样本FAQ问句与所述正样本的FAQ问句两两配对并设置表示不相似的标签类别,即负样本。可选地,所述训练样本集的正样本与负样本比例为1:m,所述m大于或等于5。可选地,在所述接收被检索的问题句之前,所述方法还包括:对所述标准问答库中的FAQ问句建立索引,所述索引包括词汇倒排索引和语义索引模型。可选地,所述语义索引模型为通过超平面多维近似向量查找工具Annoy对所述标准问答库中的FAQ问句的语义向量创建二叉树集合索引所构建,包括:使用Annoy工具将所有所述FAQ问句的语义向量作为原始数据节点,执行聚类数为2的k-means算法进行迭代分割,得到一棵所有原始数据节点组成的二叉树结构,所述二叉树结构底层为叶子节点,所述叶子节点记录所述原始数据节点,所述二叉树的中间节点记录所述Annoy工具分割超平面的信息;执行x次使用Annoy工具将所有所述FAQ问句的语义向量作为原始数据节点,执行聚类数为2的k-means算法进行迭代分割,得到一棵所有原始数据节点组成的二叉树结构,所述二叉树结构底层为叶子节点,所述叶子节点记录所述原始数据节点,所述二叉树的中间节点记录所述Annoy工具分割超平面的信息的步骤,得到x棵二叉树结构,x大于或等于L;将所述x棵二叉树结构组成二叉树集合索引,形成语义索引模型。可选地,所述将所述问题句的语义向量输入语义索引模型,得到语义相似度最高的L个候选FAQ问句包括:将所述问题语义向量作为查询节点,分别对所述语义索引模型的L棵二叉树从所述二叉树结构的根节点向下朝着所述问题语义向量最接近查询节点的路径遍历,得到L个与所述查询节点最近邻的原始数据节点集合;将所述L个最近邻的原始数据节点集合进行合并、去重,得到y个最近邻的原始数据节点;使用距离算法计算所述查询节点与每一个所述最近邻的原始数据节点的距离,得到每一个所述最近邻的原始数据节点到所述查询节点的距离值;根据所述距离值从近到远排列输出L个所述最近邻的原始数据节点;将L个所述最近邻的原始数据节点对应转化为L个所述候选FAQ问句。可选地,所述文本相似度算法为BM25算法或TFIDF算法。本申请实施例第二方面提供一种FAQ问句相似度计算系统,包括:接收单元,用于接收被检索的问题句;文本相似度计算单元,用于使用文本相似度算法对所述问题句和预设的标准问答库中的FAQ问句进行相似度匹配计算,得出文本相似度最高的k个候选FAQ问句,所述k为大于0的正整数;语义向本文档来自技高网
...

【技术保护点】
1.一种FAQ问句相似度计算方法,其特征在于,包括:/n接收被检索的问题句;/n使用文本相似度算法对所述问题句和预设的标准问答库中的FAQ问句进行相似度匹配计算,得出文本相似度最高的k个候选FAQ问句,所述k为大于0的正整数;/n将所述问题句输入深度语义匹配模型,得到所述问题句的语义向量,所述深度语义匹配模型基于预训练模型在所述预设标准问答库中FAQ问句进行微调训练而成,用于计算出所述问句的语义向量、计算由所述问题句与所述FAQ问句构成的问句对之间是否为相似的标签类别,及对应的相似度;/n将所述问题句的语义向量输入语义索引模型,得到语义相似度最高的L个候选FAQ问句;/n将所述文本相似度最高的k个候选FAQ问句和语义相似度最高的L个候选FAQ问句进行并集操作,得到所述问题句最相似的n个候选FAQ问句,所述n为小于或等于k+L的正整数;/n将所述问题句与n个所述候选FAQ问句分别两两配对,得到n个候选问句对,将所述n个候选问句对再次输入所述深度语义匹配模型,分别输出所述问题句与n个所述候选FAQ问句是否为相似的标签类别,及对应的相似度;/n将与所述问题句的标签类别为相似的p个所述候选FAQ问句,按相似度从高到低排列,输出对应相似度最大且相似度超过预设阈值的候选FAQ问句,所述p为小于或等于n的正整数。/n...

【技术特征摘要】
1.一种FAQ问句相似度计算方法,其特征在于,包括:
接收被检索的问题句;
使用文本相似度算法对所述问题句和预设的标准问答库中的FAQ问句进行相似度匹配计算,得出文本相似度最高的k个候选FAQ问句,所述k为大于0的正整数;
将所述问题句输入深度语义匹配模型,得到所述问题句的语义向量,所述深度语义匹配模型基于预训练模型在所述预设标准问答库中FAQ问句进行微调训练而成,用于计算出所述问句的语义向量、计算由所述问题句与所述FAQ问句构成的问句对之间是否为相似的标签类别,及对应的相似度;
将所述问题句的语义向量输入语义索引模型,得到语义相似度最高的L个候选FAQ问句;
将所述文本相似度最高的k个候选FAQ问句和语义相似度最高的L个候选FAQ问句进行并集操作,得到所述问题句最相似的n个候选FAQ问句,所述n为小于或等于k+L的正整数;
将所述问题句与n个所述候选FAQ问句分别两两配对,得到n个候选问句对,将所述n个候选问句对再次输入所述深度语义匹配模型,分别输出所述问题句与n个所述候选FAQ问句是否为相似的标签类别,及对应的相似度;
将与所述问题句的标签类别为相似的p个所述候选FAQ问句,按相似度从高到低排列,输出对应相似度最大且相似度超过预设阈值的候选FAQ问句,所述p为小于或等于n的正整数。


2.根据权利要求1所述的FAQ问句相似度计算方法,其特征在于,所述深度语义匹配模型基于预训练模型在所述预设标准问答库中FAQ问句进行微调训练而成包括:
使用所述标准问答库的FAQ问句对构建训练样本集,所述训练样本集的每一个FAQ问句仅对应一个预设答案;
将所述训练样本集中的表达语义相同的FAQ问句两两配对并设置表示相似的标签类别,即正样本;
将所述训练样本集中的表达语义不相同的FAQ问句两两配对并设置表示不相似的标签类别,即负样本;
以所述训练样本集的正样本与负样本作为具体下游任务进行对所述现有的预训练模型进行微调训练,构建深度语义匹配模型,所述深度语义匹配模型用于计算出所述问题句的语义向量、以及计算由所述问题句与候选所述FAQ问句构成的问句对之间是否为相似的标签类别,及对应的相似度。


3.根据权利要求2所述的FAQ问句相似度计算方法,其特征在于,将所述训练样本集中的表达语义不相同的FAQ问句两两配对并设置不相似的标签类别,即负样本包括:
使用文本相似度算法给所述正样本的FAQ问句和所述标准问答库中的非正样本FAQ问句进行相似度匹配计算,得出m个候选负样本FAQ问句;
将所述m个候选负样本FAQ问句与所述正样本的FAQ问句两两配对并设置表示不相似的标签类别,即负样本。


4.根据权利要求3所述的FAQ问句相似度计算方法,其特征在于,所述训练样本集的正样本与负样本比例为1:m,所述m大于或等于5。


5.根据权利要求1所述的FAQ问句相似度计算方法,其特征在于,在所述接收被检索的问题句之前,所述方法还包括:
对所述标准问答库中的FAQ问句建立索引,所述索引包括词汇倒排索引和语义索引模型。


6.根据权利要求5所述的FAQ问句相似度计算方法,其特征在于,所述语义索引模型为通过超平面多维近似向量查找工具Annoy对所述标准问答库中的FAQ问句的语义向量创建二叉树集合索引所构建,包括:
使用Annoy工具将所有所述FAQ问句的语义向量作为原始数据节点,执行聚类数为2的k...

【专利技术属性】
技术研发人员:吕海峰宁义双宁可张刚
申请(专利权)人:金蝶软件中国有限公司
类型:发明
国别省市:广东;44

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

1