一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于意图识别与模板匹配的混合问答方法与流程

2022-07-30 20:28:07 来源:中国专利 TAG:


1.本发明属于人工智能技术领域,涉及自然语言处理中基于知识图谱的问答方法,特别涉及一种基于意图识别与模板匹配的混合问答方法。


背景技术:

2.问答系统的研究最早可追溯到20世纪60年代,通过模板和规则的表现形式构建简单的问答模块,其中较为代表性的问答系统是elaza,它是一个基于关键词模式匹配技术的问答系统,用于与精神疾病患者进行交流,旨在帮助其康复。但当时的问答系统知识覆盖面很小,不能解决实际问题。20世纪90年代,微软公司为用户设计了虚拟问答助手,以帮助用户解决在产品使用过程中遇到的问题。1993年,麻省理工学院构建了第一个基于web的问答系统start,该系统能够回答数以百万计的问题,涉及领域包括科技文化、历史地理等。21世纪以来,计算机硬件运算速度明显提升,客观上推动了智能问答系统的发展,各类基于智能问答系统产品开始涌现。例如,微软小冰、苹果公司的siri、天猫精灵、百度聊天机器人小度等,不但能够与用户进行文字互动,还具备了语音识别功能。
3.问答系统按照答案类型的反馈机制可分为生成式问答系统和检索式问答系统两大类。在知识图谱被正式提出之前,检索式问答系统大部分都是通过关键词匹配与文档检索来返回答案,答案的准确程度很大程度上依赖于知识库的丰富程度,这直接导致了它的知识库中包含大量冗余信息,需要花费大量时间进行数据检索。随着2012年5月微软正式提出知识图谱的概念,知识图谱作为一种以关联化数据为主的数据来源,不仅数据管理简便,还可以为问答系统提供高质量的数据信息。因此,基于知识图谱的问答系统成为智能问答系统的主要研究方向之一,得到了广泛的关注。
4.目前基于知识图谱的问答系统有两种主流实现方式:
5.(一)基于模板匹配的方法,其思想主要是通过语义解析的相关技术实现问题的结构化表示,例如,基于查询模板、基于问题模板、基于句法依存关系等。在医疗领域问答系统的研究上,阮彤与上海曙光医院共同研究构建了中医药知识图谱,采用模板匹配的思路,构建了基于该中医药知识图谱构建的中医药问答和辅助开药系统。通过分词与知识图谱中包括疾病方面、症状库、中草药库以及方剂库等主要内容进行匹配与翻译,并通过一定的规则来回答实体、属性和关系构成的模板组合问题。cui等人从用户提出的问题出发,将用户问题转化为一种结构化表示的关系路径,然后基于统计模型的模糊关系匹配来理解问句。
6.(二)基于深度学习的方法,其思想主要是通过深度神经网络将问题的结构化表示转化为向量表示。yin等人基于卷积神经网络实现简单问答,首先使用n-gram问题文本来搜索知识库生成一组候选知识库事实,然后通过深度神经网络将问题和知识库中的元素(实体名称和关系名称)映射到公共嵌入空间。通过计算问题嵌入向量与知识库事实嵌入向量之间的相关性得出问题答案。谭刚等人采用双向长短时记忆网络对输入问题进行特征向量表示,尽可能地学习问题中的前向以及后向信息,同时在这个过程中加入注意力机制,使得问题中各部分内容的权重可以区别分布,获得的问题答案也更具有解释性。true等人先将
无结构的用户问句转化为结构化的知识图谱查询问题,然后训练两个神经网络,通过查询问题直接找到对应的结果。borders等人首先将词向量的表示学习方法用于基于知识图谱的问答上,从分析知识库存储数据的结构出发,将问题解析为《实体,关系,?》的形式,寻找问题的答案就变成找到知识库中相关性最高的三元组的过程,采用实体识别等自然语言处理技术,将模型分为实体识别和关系识别两个模块,通过分别提高这两个模块识别的准确度,来提高问题回答的准确度。
7.然而,目前在医药方面知识图谱和问答系统的研究较少。基于传统模板匹配的方法实现的问答系统,只能按照预先设定好的规则与模板,无法解决规则外以及超出模板范围的问答任务,不能真正理解用户的意图。基于深度学习的方法实现的问答系统,虽然可以理解用户的真实意图,一定程度上满足用户多样化的需求,但其不能解决单句中的多意图识别问题,并且实现过程较为复杂,问答系统的性能依赖神经网络的训练效果,存在可解释性弱、效率低、稳定性差等问题。


技术实现要素:

8.为了克服上述现有技术的缺点,本发明的目的在于提供一种基于意图识别与模板匹配的混合问答方法,以期解决基于模板匹配的问答方法受限于预先设定好的规则与模板,难以正确理解用户意图,以及基于深度学习的问答系统无法识别单句中多个意图的问题。
9.为了实现上述目的,本发明采用的技术方案是:
10.一种基于意图识别与模板匹配的混合问答方法,包括如下步骤:
11.s1,基于特征词匹配进行意图初识别:从用户输入的问句中匹配出实体和触发词,根据实体类型和触发词类型综合判断出意图个数并对意图进行初识别;
12.s2,基于bert-textcnn进行意图再识别:利用意图识别的方法直接识别出用户的真实意图;
13.s3,联合决策:将s1和s2得到的识别结果进行融合,确定用户意图;其中,在单意图场景下,以s2得到的识别结果为确定的用户意图;在多意图场景下,以s1和s2得到的识别结果的交集为确定的用户意图;
14.s4,解析问句:基于用户输入的问句中的实体、实体类型以及确定的用户意图,生成对应的cypher查询语句;
15.s5,生成答案:调用cypher在图谱上进行查询,保存返回的结果,然后套用预先定义好的回复模板,对返回的结果进行组织和处理,生成相应的答案返回给用户。
16.在一个实施例中,所述s1包括:
17.s11:基于ac自动机进行实体匹配:在用户输入问句之后,使用ac自动机逐一判断实体库中的所有实体是否在问句中出现过,即多模匹配,快速识别出用户输入的问句中的实体及其类型;
18.s12:定义问句的触发词:所述触发词用于判断用户输入问句的主题,每种主题对应一组预先定义的触发词,所有主题的触发词构成触发词库;
19.s13:根据用户输入问句中的实体类型和问句主题,制定问句分类的规则,通过规则直接得到用户的意图类型,即实现了用户意图的初识别。
20.在一个实施例中,所述s1,当特征词匹配的输出为空,则说明初识别未能识别出结果,当特征词匹配的输出不为空,则说明初识别能够识别出结果。
21.在一个实施例中,所述s2包括:
22.s21:对用户输入的问句进行分词和编码,bert模型的输入层由词嵌入、位置嵌入、句子分割嵌入三个部分组成,将三者相加得到的嵌入向量作为模型输入;
23.s22:对嵌入向量进行层归一化,解决模型隐层数据分布不一致问题,加速模型训练;
24.s23:引入多头自注意力机制,在不增加时间复杂度的情况下,在更低的维度,在多个独立的特征空间,学习到更丰富的特征信息;
25.s24:将bert模型的输出作为textcnn网络的输入,得到更多的先验知识和语义特征;
26.s25:在textcnn网络中,对bert模型输入的句向量进行卷积操作进一步提取特征;
27.s26:对卷积后的结果进行1-max池化,即为从每个滑动窗口产生的特征向量中筛选出一个最大的特征,然后将得到的最大的特征拼接起来构成向量表示;
28.s27:经过bert模型和textcnn网络的特征提取,得到了一个高维的特征矩阵,将该高维的特征矩阵经过全连接层转化为n维向量来解决n分类任务;
29.s28:通过softmax层对textcnn网络池化层的输出结果进行归一化,将输出结果用概率的形式表现出来,不同大小的概率值表示输出结果属于不同意图类别的可能性大小。
30.在一个实施例中,所述s4,将用户输入的问句中的实体、实体类型以及确定的用户意图填充到预先设计的槽位上,从而生成对应的cypher查询语句;当确定的用户意图有多个时,依次分别进行解析。
31.与现有技术相比,本发明将复杂的问答任务转化为意图识别任务和模板匹配任务,包括了多意图识别、问句解析以及答案生成三个阶段。在智能问答最重要的多意图识别阶段,提出了一种基于cwm和bert-textcnn的联合意图识别方法。实验结果表明,该方法不仅解决了深度学习模型无法同时识别出单句中多个意图的弊端;而且通过引入深度预训练网络,有效解决了传统模板匹配无法理解用户真正意图的问题,提高了问答准确率。而在问句解析和答案生成阶段,采用传统的模板匹配方法,在保证模型准确率的同时,提高了模型的整体效率。
附图说明
32.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
33.图1为本发明的基于意图识别和模板匹配的混合问答模型示意图。
34.图2为ac自动机算法构建的中文字典树。
35.图3为本发明基于cwm和bert-textcnn的联合意图识别模型结构。
36.图4为bert网络结构。
37.图5为textcnn网络结构。
38.图6为本发明联合决策流程图。
具体实施方式
39.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
40.针对传统模板匹配的问答方法依赖于预先设定的规则与模板,无法解决规则以外以及超出模板范围的问答任务,不能真正理解用户意图的问题,本发明提出了一种基于意图识别和模板匹配的混合问答方法。请参阅图1,本发明主要包括多意图识别、问句解析以及答案生成三个阶段。具体过程如下:
41.步骤一:基于特征词匹配(characteristic word matching,cwm)的意图初识别:从用户输入的问句中匹配出实体和触发词,根据实体类型和触发词类型综合判断用户的意图个数并对意图进行初识别。
42.本步骤,需预先构建实体库、触发词库和意图分类规则;然后将用户输入的问句与实体库和触发词进行匹配,最后根据规则对匹配的结果进行用户意图进行分类,实现对用户意图的初识别,具体实施方式如下:
43.步骤1-1:基于ac自动机进行实体匹配:在用户输入问句之后,构建如图2所示的中文字典树,使用ac自动机算法逐一判断实体库中的所有实体是否在问句中出现过,即多模匹配,由此快速识别出用户输入的问句中的实体及其类型。例如用户输入:支气管炎需要做哪些检查?实体匹配返回的结果为:{支气管炎:疾病}。
44.步骤1-2:定义问句的触发词:触发词用于判断用户输入问句的主题,每种主题对应一组预先定义的触发词,所有主题的触发词即构成了触发词库。例如,“病因”主题对应的触发词包括“原因、成因、导致、造成、为什么、怎么会、怎样才、咋样才、怎样会、如何会、为啥、为何、如何才会、怎么才会、会导致、会造成”等。由此可见,触发词库需要根据用户的需求和语言的发展不断扩充和更新,越合理、越完备的触发词库对问句主题的判断越准确。
45.本发明触发词库的一种设计形式参加表1。根据此触发词库,用户输入:支气管炎需要做哪些检查?得到问句主题为:检查。
46.表1部分主题的触发词库
[0047][0048]
步骤1-3,根据用户输入问句中的实体类型和问句主题,制定问句分类的规则,也即用户意图的划分规则,通过规则直接得到用户的意图类型,实现用户意图的初识别。例如:实体类型为“疾病”,主题类型为“症状”,则将用户意图划分为“查询疾病症状”;实体类型为“疾病”,主题类型为“病因”,则将用户意图划分为“查询疾病病因”。
[0049]
本发明意图划分的一种规则参见表2。根据规则表,用户输入:支气管炎需要做哪些检查?实体类型为疾病,主题类型为检查,得到用户意图:疾病检查项目。
[0050]
表2部分问句意图类型及其规则
[0051]
问题意图类型规则疾病症状实体类型:疾病;主题类型:症状症状诊断实体类型:症状;主题类型:症状疾病病因实体类型:疾病;主题类型:病因疾病并发症实体类型:疾病;主题类型:并发症宜吃食物无否定词、实体类型:疾病;主题类型:食物忌吃食物有否定词、实体类型:疾病;主题类型:食物
食物功效实体类型:食物;主题类型:食物、功效疗效推荐药物实体类型:疾病;主题类型:药物药物疗效实体类型:药物;主题类型:功效疗效疾病检查项目实体类型:疾病;主题类型:检查检查项目查疾病实体类型:检查;主题类型:检查、功效疗效疾病预防实体类型:疾病;主题类型:预防疾病治疗周期实体类型:疾病;主题类型:治疗周期疾病治疗方式实体类型:疾病;主题类型:治疗方式疾病治愈率实体类型:疾病;主题类型:治愈率疾病易感人群实体类型:疾病;主题类型:易感人群疾病简介实体类型:疾病;主题类型:无症状描述实体类型:症状;主题类型:无
[0052]
本步骤中,当特征词匹配的输出为空,则说明初识别未能识别出结果,当特征词匹配的输出不为空,则说明初识别能够识别出结果。意图初始别的输出结果在多数情况下往往是空。因为用户询问的方式千奇百怪,用词也各不相同,同一个意图可以用众多词语和方式发问。即表1所示触发词库很难涵盖所有的情况,表2的规则也很难涵盖所有情况。当用户问询语句中的触发词在词库范围之外,或者超出了规则的定义,则输出结果可能为空。
[0053]
步骤二:基于bert-textcnn的意图再识别:基于意图识别的方法通过对bert-textcnn深度神经网络进行训练,直接识别判断出用户的真实意图。该方法用于对用户意图进行再次精准识别并对cwm的结果进行修正。
[0054]
本步骤中,基于bert-textcnn的意图识别方法会捕捉句子中的深层语义,精确计算出每一个意图的概率,使得模板规则之外的用户意图也能被准确识别,从而能够对cwm的结果进行完善修正。参考图3,该模型主要由bert层、textcnn层、全连接层和softmax层四个部分组成。具体实施步骤如下:
[0055]
步骤2-1:对用户输入的问句进行分词和编码,bert模型的具体结构参见图4,其输入层由词嵌入、位置嵌入、句子分割嵌入三个部分组成,将三者相加作为总的词嵌入进行输入,具体为:
[0056]
e=e
token
e
position
e
segment
[0057]
式中,e表示模型输入,e
token
表示词嵌入,e
posption
表示位置嵌入,e
segment
表示句子分割嵌入;
[0058]
步骤2-2:对嵌入向量进行层归一化,解决模型隐层数据分布不一致问题,加速模型训练。对于e中的一个词嵌入e=[x0,x1,

,x
h-1
],xk是e的第k维分量,k=0,1,

,h-1,h是词嵌入的长度。那么层归一化公式如下:
[0059][0060]
式中,yk是输出,αk和βk是学习得到的参数,用于防止模型表示能力退化,μ和σ2分别是均值和方差。
[0061]
步骤2-3:引入多头自注意力机制,在不增加时间复杂度的情况下,在更低的维度,在多个独立的特征空间,学习到更丰富的特征信息。计算公式如下:
[0062][0063]
式中,q、k、v分别是输入向量通过三个可学习权重的矩阵wq、wk、wv映射得到的查询矩阵、键矩阵和值矩阵,dk是每个头向量的长度。
[0064]
步骤2-4:将bert模型的输出作为textcnn网络的输入,得到更多的先验知识和语义特征。textcnn网络的具体结构参见图5。
[0065]
步骤2-5:在textcnn网络中,对bert模型输入的句向量进行卷积操作进一步提取特征。若bert输入的词向量x,第i个卷积核ci,使用该卷积核对输入的词向量x进行卷积后得到一个t
×
1的一维向量hi,其中t为一维向量的维度,t=l-m 1。表示如下:
[0066][0067]
其中,x的大小为l
×
w,l为输入词向量的长度,w为词向量的维度,ci的大小为m
×
w,m为卷积核的大小。
[0068]
步骤2-6:对卷积后的结果进行1-max池化,即为从每个滑动窗口产生的特征向量中筛选出一个最大的特征,然后将将得到的最大的特征拼接起来构成向量表示。若卷积后输出为hi=(h0,h1,

,hi,

,h
t-1
),那么经过最大池化后输出如下:
[0069]
yi=max(h0,h1,

,hi,

,h
t-1
)
[0070]
其中hi为卷积核第i次滑动产生的特征向量。
[0071]
步骤2-6:经过bert模型和textcnn网络的特征提取,得到了一个高维的特征矩阵,将该高维的特征矩阵经过全连接层转化为n维向量来解决n分类任务,全连接层的输出如下:
[0072]
z=tanh(ywn bn)
[0073]
步骤2-7:通过softmax层对textcnn池化层的输出结果进行归一化,将输出结果用概率的形式表现出来。若全连接层的输出为zi,经过softmax层得到其对应的输出si,具体如下:
[0074][0075]
其中,n是输出层神经元的个数,表示求指数。观察上式显然有si∈[0,1],对所有神经元si求和可得:
[0076][0077]
由此可知,全连接层的输出,经过softmax函数转换后的结果,即可满足概率表达式的特性。不同大小的概率值表示该结果属于不同意图类别的可能性大小。
[0078]
步骤三:联合决策:将步骤一和步骤二两种意图识别方法得到的结果按照一定的策略进行融合,确定用户意图。联合决策具体实施方式如图6所示,用户问询首先通过cwm进行意图初始别。由于cwm对规则性较强的问询执行效率快且准确率高,如果能够识别出结果可以直接返回用户意图。但大多数情况下,用户的问询不具有很强的规则性,触发词库也无
法做到绝对完备和合理,此时cwm无法识别出用户意图,返回的结果为空,需要通过bert-textcnn模型进行意图再识别,进一步锁定用户意图。具体地,在单意图场景下,以步骤二得到的识别结果为确定的用户意图;在多意图场景下,以步骤一和步骤二得到的识别结果的交集为确定的用户意图。
[0079]
在一个实施例中,本步骤融合结果为意图类型对应的标号,例如,0:定义、1:病因、2:预防、3:疾病症状、4:并发症、5:治疗方法、6:所属科室、7:易感人群、8:治愈率、9:禁忌、10:检查、11:治疗周期、12:其他。因此,融合后结果为5则表示用户意图是询问疾病的治疗方法。
[0080]
步骤四:问句解析:经过多意图识别,得到了用户输入的问询中的实体、实体类型以及确定的用户意图。接下来对分类后的结果进行处理,将实体、实体类型以及确定的用户意图正确填充到预先设计的槽位上,从而生成对应的cypher查询语句。当确定的用户意图有多个时,则依次分别进行解析。
[0081]
本步骤中,问句解析的具体实施方式是建立表3所示的问句类型与cypher语句的对应关系,其中{}表示槽位,只需将实体正确填充到查询语句的槽位,即可生成完整的cypher语句。
[0082]
表3部分问题类型对应的cypher查询语句
[0083]
[0084][0085]
步骤五:答案生成:经过问句解析之后,针对用户输入的问句生成了对应的cypher查询语言。此时,调用cypher在图谱上进行查询,保存返回的结果。然后套用预先定义好的回复模板,对返回的结果进行组织和处理,即可生成相应的答案返回给用户。
[0086]
例如用户询问:新型冠状病毒肺炎的治疗方法是什么?
[0087]
那么固定的回复模板是:{实体}可尝试{治疗方式}进行治疗。
[0088]
将生成的结果填充到{}里即可。
[0089]
为了验证本发明的检测精度,本发明在硬件环境为windows操作系统,intel core i7-7820x@3.60ghz,32g内存,两张nvidia rtx 2080tigpu,11g显存的工作站进行实验。本发明在自行构建的中文医药数据集进行意图识别实验,该数据共8910条数据,结果如表4所示:
[0090]
表4意图识别实验结果
[0091][0092][0093]
由上表可知,对于单意图的识别效果,基于bert-textcnn的意图识别方法在大部分类别的识别效果上均好于基于cwm的意图识别方法,特别是病因、禁忌类别,提升效果明显。这是因为深度预训练网络能够提取深层语义特征。此外,基于cwm的意图识别方法在易感人群、所属科室等类别的效果较好,这是因为这些类别的特征词容易提炼和概括,词库基本包含了该类别在自然语言中的所有特征,因此对这些类别的判断比较准确。其他类中的
数据种类繁杂,问题涵盖众多方面,因此相对而言特征较为复杂,bert-textcnn和cwm的识别率较低。
[0094]
在加入多意图数据的情况下,实验数据中80%为单意图数据,剩下20%为人工手动组合后生成的多意图数据。采用人工评判的方式,由5人组成人工测评组,对基于不同意图识别模型实现的问答方法结果给出综合评判,评判的标准分为a、b、c三个等级,其中a表示返回结果完全解决了用户的问题,b表示返回结果只解决了用户的部分问题,c表示返回的结果没有解决用户的问题。实验结果如表5所示。
[0095]
表5问答任务实验结果
[0096]
方法abc基于cwm的意图识别66.4%10.1%23.5%基于bert-textcnn的意图识别60.8%25.6%13.6%基于cwm和bert-textcnn的联合意图识别79.7%8.9%11.4%
[0097]
由表5可知,基于bert-textcnn的意图识别不能有效处理多意图问题,对于在测试数据中20%的多意图问题都不能给出全面的回答,因此出现b类情况的概率最高;但是基于bert-textcnn的意图识别能够提取出用户问句中的深层语义信息,相较于传统的基于cwm的意图识别方法,c类情况发生的概率大大下降。
[0098]
基于cwm的意图识别对于用户输入的问句,可以依次进行多个模板库的匹配,因此能有效处理多意图的问题,这使得b类情况发生的概率有所下降;但由于提炼和穷举出所有类型的特征困难,制定的规则难以符合具体实际,导致基于cwm的意图识别c类情况的概率较高。
[0099]
基于cwm和bert-textcnn的联合意图识别不仅解决了意图识别不能有效处理多意图的问题,同时克服了传统模板匹配方法不能捕捉深层语义信息的弊端。实验结果表明,基于cwm和bert-textcnn的联合意图识别发生a类情况的概率最高,发生b、c类情况的概率最低,说明该方法能够有效地解决用户在医药领域的问题。
[0100]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,对于本领域技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献