一种问答系统中基于语义的快速知识命中方法及装置与流程

文档序号:27691629发布日期:2021-12-01 03:21阅读:81来源:国知局
一种问答系统中基于语义的快速知识命中方法及装置与流程

1.本发明涉及数据识别处理技术领域,尤其涉及一种问答系统中基于语义的快速知识命中方法及装置。


背景技术:

2.近年来,智能客服已经成功运用于各行各业咨询服务业务中,为企业以及用户提供了快捷方便的解决路径。智能客服是指通过机器来自动识别用户的问题并给予相应的解决方案,在具体实现中,通过智能客服来回复用户的问题,可以提高用户问题的响应速度,节约了人力成本。
3.随着应用领域业务的发展壮大,智能客服问答系统应用的业务场景繁多且复杂,其相对应的知识库也越来越大,传统的检索与匹配算法在性能或效果方面越来越不能满足要求,导致知识命中率差,用户体验较差。


技术实现要素:

4.本发明的目的在于提供一种问答系统中基于语义的快速知识命中方法及装置,以解决上述技术背景中提出的问题。
5.为实现上述目的,本发明采用以下技术方案:
6.本技术第一个方面提供了一种问答系统中基于语义的快速知识命中方法,包括:
7.s1,准备用于模型训练的语料,包括用户问句及对应知识库中的知识,并标注用户问句与知识是否匹配;
8.s2,基于bert模型按二分类任务使用标注后的语料进行模型训练,训练完成后将模型输出设置为bert模型的pooled_output层输出,并保存为语义模型;
9.s3,将文本表示的知识库转换为语义向量表示的知识库,即向量知识库,其包含的语义向量的集合为语义向量空间;
10.s4,采用随机森林对所述语义向量空间进行语义分割,同一语义向量空间生成n棵二叉树,n为大于等于1的自然数;其中,每棵二叉树都对应随机分割的语义向量表示的知识库,每棵二叉树的叶子节点代表一个不超过k个知识的语义向量,k为大于等于1且小于等于总向量数/n的自然数;
11.s5,将用户问句转换为其对应的语义向量,即用户问句语义向量,使用用户问句语义向量在n棵二叉树上进行遍历,查找到n个最邻近的叶子节点,将n个最邻近的叶子节点所包含的语义向量进行归集并去重,得到m个语义向量;
12.s6,计算m个语义向量与用户问句语义向量之间的相似度,选取相似度最高的语义向量确定为命中的知识。
13.具体地,上述步骤s4中,n为性能和精度的一个平衡值,需要根据实际效果逐步调整。
14.优选地,所述步骤s1包括如下步骤:
15.s11:收集用户问句及对应知识库中的知识,用户问句包含正向的和负向的,正向的表示和知识相匹配的问句,负向的表示和知识不匹配的问句,其中,和知识不匹配的问句中包括字面相似但语义不匹配的问句;
16.s12:标注用户问句与知识是否匹配,标注的格式为:用户问句+知识+标签,其中,标签为匹配或不匹配。
17.优选地,所述步骤s3包括如下步骤:
18.s31:将知识库中每条知识使用bert模型的vocab字典将文本信息转换成数字信息;
19.s32:将数字信息输入所述语义模型中进行推理,并输出知识的语义表示向量;
20.s33:待所有知识推理完成后,文本表示的知识库就转换成了语义向量表示的知识库。
21.优选地,所述步骤s4包括如下步骤:
22.s41:随机选择向量知识库中的一个语义向量v,计算所有向量知识库中的语义向量与随机选择的语义向量v之间的余弦相似度;
23.s42:将余弦相似度在(0,1]范围内的语义向量划分至第一子空间,将余弦相似度在[

1,0]范围内的语义向量划分至第二子空间;
[0024]
s43:以语义向量v为根节点,以第一子空间为左子树,第二子空间为右子树,语义向量v和第一子空间、第二子空间构成一个二叉树;
[0025]
s44:对二叉树所有节点上的子空间重复步骤s41~s43,直到所有子空间的里的语义向量的个数都小于等于k;
[0026]
s45:重复n次上述步骤,将向量知识库的语义向量空间投影成n棵二叉树。
[0027]
优选地,所述步骤s5中,n个最邻近的叶子节点所包含的语义向量的个数小于等于n*k个。
[0028]
优选地,所述步骤s5包括如下步骤:
[0029]
s51:将用户问句使用bert模型的vocab字典将文本信息转换成数字信息;
[0030]
s52:将用户问句的数字信息输入所述语义模型中进行推理,并输出用户问句对应的语义向量,即用户问句语义向量;
[0031]
s53:选取n棵二叉树中的任意一棵;
[0032]
s54:计算用户问句语义向量与二叉树节点的余弦相似度,余弦相似度在(0,1]范围内则取左子树节点,否则取右子树节点;
[0033]
s55:重复步骤s54,搜索这棵二叉树,直至找到该二叉树的叶子节点,即最邻近的叶子节点;
[0034]
s56:重复步骤s53~s55,找出所有二叉树中的n个最邻近的叶子节点;
[0035]
s57:将找出的n个最邻近的叶子节点的所有语义向量进行去重处理,得到m个语义向量,其中,n个叶子节点的所有语义向量的个数为小于等于n*k。
[0036]
优选地,所述步骤s6包括如下步骤:
[0037]
s61:计算m个语义向量与用户问句向量之间的余弦相似度;
[0038]
s62:按余弦相似度的降序对m个语义向量进行排序,并返回相似度最高的语义向量d;
[0039]
s63:将语义向量d的相似度值与预设距离阈值t进行比较,当d>t时,则表示命中知识。
[0040]
本技术第二个方面提供了一种问答系统中基于语义的快速知识命中装置,包括:
[0041]
语料标注准备模块,用于准备模型训练的语料,包括用户问句及对应知识库中的知识,并标注用户问句与知识是否匹配;
[0042]
语义模型微调模块,用于基于bert模型按二分类任务使用标注后的语料进行模型训练,训练完成后将模型输出设置为bert模型的pooled_output层输出,并保存为语义模型;
[0043]
知识库向量表示模块,用于将文本表示的知识库转换为语义向量表示的知识库,即向量知识库,其包含的语义向量的集合为语义向量空间;
[0044]
二叉树生成模块,用于采用随机森林对所述语义向量空间进行语义分割,同一语义向量空间生成n棵二叉树,n为大于等于1的自然数;其中,每棵二叉树都对应随机分割的语义向量表示的知识库,每棵二叉树的叶子节点代表一个不超过k个知识的语义向量,k为大于等于1且小于等于总向量数/n的自然数;
[0045]
用户问句查找模块,用于将用户问句转换为其对应的语义向量,即用户问句语义向量,使用用户问句语义向量在n棵二叉树上进行遍历,查找到n个最邻近的叶子节点,将n个最邻近的叶子节点所包含的语义向量进行归集并去重,得到m个语义向量;
[0046]
知识命中计算模块,用于计算m个语义向量与用户问句语义向量之间的相似度,选取相似度最高的语义向量确定为命中的知识。
[0047]
具体地,上述内容中的n,为性能和精度的一个平衡值,需要根据实际效果逐步调整。
[0048]
优选地,所述语料标注准备模块包括:
[0049]
收集子模块,用于收集用户问句及对应知识库中的知识,用户问句包含正向的和负向的,正向的表示和知识相匹配的问句,负向的表示和知识不匹配的问句,其中,和知识不匹配的问句中包括字面相似但语义不匹配的问句;
[0050]
标注子模块,用于标注用户问句与知识是否匹配,标注的格式为:用户问句+知识+标签,其中,标签为匹配或不匹配。
[0051]
优选地,所述用户问句查找模块包括:
[0052]
用户问句语义向量生成子模块,用于将用户问句经所述语义模型推理后输出用户问句对应的语义向量,即用户问句语义向量;
[0053]
遍历子模块,用于遍历n棵二叉树,查找所有二叉树中与所述用户问句语义向量相匹配的n个最近邻的叶子节点;
[0054]
去重处理子模块,用于将找出的n个最邻近的叶子节点的所有语义向量进行去重处理,得到m个语义向量,其中,n个叶子节点的所有语义向量的个数为小于等于n*k。
[0055]
优选地,所述知识命中计算模块包括:
[0056]
相似度计算子模块,用于计算m个语义向量与用户问句语义向量之间的余弦相似度;
[0057]
相似度排序子模块,用于按余弦相似度的降序对m个语义向量进行排序,并返回相似度最高的语义向量d;
[0058]
判断子模块,用于判断返回的语义向量d是否超出预设距离阈值t;
[0059]
确定子模块,用于当语义向量d的相似度超出预设距离阈值t时,确定该语义向量为命中的知识。
[0060]
本技术第三个方面提供一种计算机设备,包括存储器和处理器,以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现上述问答系统中基于语义的快速知识命中方法的步骤。
[0061]
本技术第四个方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述问答系统中基于语义的快速知识命中方法的步骤。
[0062]
与现有技术相比,本发明的技术方案具有以下有益效果:
[0063]
本技术公开了一种问答系统中基于语义的快速知识命中方法及装置,所述方法包括如下步骤:语料准备及标注;语义模型微调;知识库向量表示;知识库向量投影索引创建;知识命中计算。本技术的技术方案引入深度学习模型来提升知识命中的效果,并优化匹配的算法提升知识命中的速度,使智能客服能支撑越来越庞大的知识库。本技术提供的方法在少量甚至无标注数据的情况下,在面对更加庞大知识库的智能问答系统中,能够实现更快速、更精准的知识命中,用户体验效果佳。
附图说明
[0064]
构成本技术的一部分附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
[0065]
图1是本发明一种问答系统中基于语义的快速知识命中方法的流程示意图;
[0066]
图2是本发明实施例中语义向量v和子空间a、子空间b构成一个二叉树的处理过程示意图;
[0067]
图3是本发明实施例中将向量知识库的语义向量空间投影成n棵二叉树的处理过程示意图;
[0068]
图4是本发明实施例中遍历n棵二叉树,找到所有的n个叶子节点的处理过程示意图;
[0069]
图5是本发明实施例中一种问答系统中基于语义的快速知识命中方法的逻辑示意图;
[0070]
图6是本发明实施例中一种问答系统中基于语义的快速知识命中装置的结构示意图;
[0071]
图7是本发明实施例中一种问答系统中基于语义的快速知识命中装置的语料标注准备模块的结构示意图;
[0072]
图8是本发明实施例中一种问答系统中基于语义的快速知识命中装置的用户问句查找模块的结构示意图;
[0073]
图9是本发明实施例中一种问答系统中基于语义的快速知识命中装置的知识命中计算模块的结构示意图。
具体实施方式
[0074]
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0075]
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序,应该理解这样使用的数据在适当情况下可以互换。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0076]
下面参考附图描述本技术的一种问答系统中基于语义的快速知识命中方法及装置。
[0077]
实施例一:
[0078]
图1是根据本技术的基于语义的快速知识命中方法的流程图,如图1所示,该方法包括以下步骤:
[0079]
步骤s1,准备用于模型训练的语料,包括用户问句及对应知识库中的知识,并标注用户问句与知识是否匹配;
[0080]
步骤s2,基于bert模型按二分类任务使用标注后的语料进行模型训练,训练完成后将模型输出设置为bert模型的pooled_output层输出,并保存为语义模型;
[0081]
步骤s3,将文本表示的知识库转换为语义向量表示的知识库,即向量知识库,其包含的语义向量的集合为语义向量空间;
[0082]
步骤s4,采用随机森林对所述语义向量空间进行语义分割,同一语义向量空间生成n棵二叉树,n为大于等于1的自然数,n为性能和精度的一个平衡值,需要根据实际效果逐步调整;其中,每棵二叉树都对应随机分割的语义表示的知识库,每棵二叉树的叶子节点代表一个不超过k个知识的语义向量,k为大于等于1且小于等于总向量数/n的自然数;
[0083]
步骤s5,将用户问句转换为其对应的语义向量,即用户问句语义向量,使用用户问句语义向量在n棵二叉树上进行遍历,查找到n个最邻近的叶子节点,将n个最邻近的叶子节点所包含的语义向量进行归集并去重,得到m个语义向量;
[0084]
步骤s6,计算m个语义向量与用户问句语义向量之间的相似度,选取相似度最高的语义向量确定为命中的知识。
[0085]
具体地,结合图2~图5,该方法包括如下步骤:
[0086]
第一步:语料准备及标注。
[0087]
步骤101:准备用于模型训练的语料,收集用户问句及对应知识库中的知识,用户问句包含正向的和负向的,正向的表示和知识相匹配的问句,负向的表示和知识不匹配的问句,特别是字面相似但语义不匹配的问句。
[0088]
步骤102:训练语料的标注格式为:用户问句+知识+标签,其中,标签为匹配或不匹配。
[0089]
第二步:语义模型微调。
[0090]
步骤201:基于深度预训练bert模型按二分类任务使用上一步标注好的语料进行
模型训练。
[0091]
步骤202:训练完成后,将模型输出设置为bert模型的pooled_output层输出,并保存为语义模型。
[0092]
第三步:知识库向量表示。
[0093]
步骤301:将知识库中每条知识使用bert模型的vocab字典将文本信息转换成数字信息。
[0094]
步骤302:将数字信息输入上面微调后的语义模型中进行推理,并输出知识的语义表示向量。
[0095]
步骤303:待所有知识推理完成后,文本表示的知识库就转换成了语义向量表示的知识库,即向量知识库,其包含的语义向量的集合为语义向量空间。
[0096]
第四步:向量知识库投影索引创建。
[0097]
通常,很多业务场景中,使用随机森林模型作为分类器,对业务中的大数据进行分类处理等操作,随机森林模型是基于决策树的组合模型,在实际应用中,随机森林模型通过多个决策树投票的结果进行分类。其中,决策树的每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶子节点代表一种类别,决策树上除了叶子节点外,均记录了当前节点的相关信息。
[0098]
本实施例中采用随机森林对所述语义向量空间进行语义分割,同一语义向量空间生成n棵二叉树,n为该语义向量空间所包含的语义向量的个数。
[0099]
具体包括如下步骤:
[0100]
步骤401:随机选择向量知识库中的一个语义向量v,计算向量知识库中的所有语义向量与随机选择的语义向量v之间的余弦相似度;
[0101]
步骤402:将余弦相似度在(0,1]范围内的语义向量划分至子空间a,将余弦相似度在[

1,0]范围内的语义向量划分至子空间b;
[0102]
步骤403:参阅图2,以语义向量v为根节点,以子空间a为左子树,子空间b为右子树,语义向量v和子空间a、子空间b构成一棵二叉树;
[0103]
步骤404:对所有节点上的子空间重复步骤401~403,直到所有子空间的里的语义向量的个数都小于等于k;
[0104]
步骤405:重复n次上述步骤,将向量知识库的语义向量空间投影成n棵二叉树,参阅图3所示。
[0105]
第五步:知识命中计算。
[0106]
步骤501:将用户问句使用bert模型的vocab字典将文本信息转换成数字信息。
[0107]
步骤502:将用户问句的数字信息输入所述语义模型中进行推理,并输出用户问句对应的语义向量,即用户问句语义向量。
[0108]
步骤503:选取n棵二叉树中的任意一棵。
[0109]
步骤504:计算用户问句语义向量与该二叉树节点的余弦相似度,余弦相似度在(0,1]范围内则取左子树节点,否则取右子树节点。
[0110]
步骤505:重复步骤s504,搜索这棵二叉树,直至找到该二叉树的叶子节点,即最邻近的叶子节点。
[0111]
步骤506:重复步骤s503~s505,找出所有二叉树中的n个最邻近的叶子节点。
[0112]
步骤507:将找出的n个最邻近的叶子节点所包含的小于等于n*k个语义向量进行去重处理,得到m个语义向量。
[0113]
步骤508:计算m个语义向量与用户问句语义向量之间的余弦相似度。
[0114]
步骤509:按余弦相似度的降序对m个语义向量进行排序,并返回相似度最高的语义向量d。
[0115]
步骤510:根据实际业务中多次测试确定的预设距离阈值t,对语义向量d的相似度和预设距离阈值t进行比较,当d>t时,则表示命中知识。
[0116]
实施例二:
[0117]
图6是根据本技术的基于语义的快速知识命中装置的结构示意图,如图6所示,该装置100包括:
[0118]
语料标注准备模块110,用于准备模型训练的语料,包括用户问句及对应知识库中的知识,并标注用户问句与知识是否匹配;
[0119]
语义模型微调模块120,用于基于bert模型按二分类任务使用标注后的语料进行模型训练,训练完成后将模型输出设置为bert模型的pooled_output层输出,并保存为语义模型;
[0120]
知识库向量表示模块130,用于将文本表示的知识库转换为语义向量表示的知识库,即向量知识库,其包含的语义向量的集合为语义向量空间;
[0121]
二叉树生成模块140,用于采用随机森林对所述语义向量空间进行语义分割,同一语义向量空间生成n棵二叉树,n为大于等于1的自然数,n为性能和精度的一个平衡值,需要根据实际效果逐步调整;其中,每棵二叉树都对应随机分割的语义向量表示的知识库,每棵二叉树的叶子节点代表一个不超过k个知识的语义向量,k为大于等于1且小于等于总向量数/n的自然数;
[0122]
用户问句查找模块150,用于将用户问句转换为其对应的语义向量,即用户问句语义向量,使用用户问句语义向量在n棵二叉树上进行遍历,查找到n个最邻近的叶子节点,将n个最邻近的叶子节点所包含的语义向量进行归集并去重,得到m个语义向量;
[0123]
知识命中计算模块160,用于计算m个语义向量与用户问句语义向量之间的相似度,选取相似度最高的语义向量确定为命中的知识。
[0124]
具体地,参阅图7所示,所述语料标注准备模块110包括:
[0125]
收集子模块111,用于收集用户问句及对应知识库中的知识点,其中,用户问句包含正向的和负向的,正向的表示和知识相匹配的问句,负向的表示和知识不匹配的问句,尤其是字面相似但语义不匹配的问句;
[0126]
标注子模块112,用于标注用户问句与知识是否匹配,标注的格式为:用户问句+知识+标签,其中,标签为匹配或不匹配。
[0127]
具体地,参阅图8所示,所述用户问句查找模块150包括:
[0128]
用户问句语义向量生成子模块151,用于将用户问句经所述语义模型推理后输出用户问句对应的语义向量,即用户问句语义向量;
[0129]
遍历子模块152,用于遍历n棵二叉树,查找所有二叉树中与所述用户问句语义向量相匹配的n个最近邻的叶子节点;
[0130]
去重处理子模块153,用于将找出的n个最邻近的叶子节点的所有语义向量进行去
重处理,得到m个语义向量,其中,n个叶子节点的所有语义向量的个数为小于等于n*k。
[0131]
具体地,参阅图9所示,所述知识命中计算模块160包括:
[0132]
相似度计算子模块161,用于计算m个语义向量与用户问句语义向量之间的余弦相似度;
[0133]
相似度排序子模块162,用于按余弦相似度的降序对m个语义向量进行排序,并返回相似度最高的语义向量d;
[0134]
判断子模块163,用于判断返回的语义向量d的相似度是否超出预设距离阈值t;
[0135]
确定子模块164,用于当语义向量d的相似度超出预设距离阈值t时,确定该语义向量为命中的知识。
[0136]
另一方面,本技术还提供了一种计算机设备,包括存储器和处理器,以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现上述问答系统中基于语义的快速知识命中方法的步骤。
[0137]
另一方面,本技术还提供一了种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述问答系统中基于语义的快速知识命中方法的步骤。
[0138]
综上所述,本技术公开了一种问答系统中基于语义的快速知识命中方法及装置,所述方法包括如下步骤:语料准备及标注;语义模型微调;知识库向量表示;知识库向量投影索引创建;知识命中计算。本技术的技术方案引入深度学习模型来提升知识命中的效果,并优化匹配的算法提升知识命中的速度,使智能客服能支撑越来越庞大的知识库。本技术提供的方法在少量甚至无标注数据的情况下,在面对更加庞大知识库的智能问答系统中,能够实现更快速、更精准的知识命中,用户体验效果佳。
[0139]
以上对本发明的具体实施例进行了详细描述,但其只是作为范例,本发明并不限制于以上描述的具体实施例。对于本领域技术人员而言,任何对本发明进行的等同修改和替代也都在本发明的范畴之中。因此,在不脱离本发明的精神和范围下所作的均等变换和修改,都应涵盖在本发明的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1