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

一种意图识别方法及装置与流程

2021-12-01 01:37:00 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其涉及一种意图识别方法及装置。


背景技术:

2.现有智能客服系统一般会设计很多标准问题和相似问题,形成十分庞大的知识库,训练模型对用户问题进行意图识别,通过不断地扩充知识来提高模型的泛化能力,以更好地解答问题,满足用户的诉求。
3.现有的ai对话机器人中的意图识别方案中,业界通常采用分类模型,将每个主问题视为一个类别,对用户输入(query)进行分类,将所属类别视为用户想要询问的问题,具体实施时,一般会定义一个阈值,通过模型对query属于每一类的概率进行预测,概率大于阈值的类别即为query对应的类别。但这样方式,对数据要求高,具体地,对于分类模型,要求每一个主问题都有足够多的相似问题,且相似问题质量要求高,要求不同主问题之间差别大,比如两个主问题分别为“龙信密码怎样修改”和“龙建密码怎样修改”,query为“密码怎样修改”,这种情况下分类模型给出的“龙信密码怎样修改”和“龙建密码怎样修改”这两类的概率都很低,难以达到阈值,导致预测失败,以及,难以处理短输入内容,当用户输入的字符很短,如两个字时,所蕴含的语义信息过少,真实意图难以识别。
4.也就是说,目前的语句意图识别的匹配方式较僵化,难以精准捕捉到用户问题完整的语义信息,易出现仅识别到局部意图的错误,或者可解释性较低,无法准确、全面、高效地识别语句的意图。


技术实现要素:

5.有鉴于此,本公开实施例提供了一种意图识别方法、装置、计算机设备及计算机可读存储介质,以解决现有技术中的语句意图识别的匹配方式较僵化,难以精准捕捉到用户问题完整的语义信息,易出现仅识别到局部意图的错误,或者可解释性较低,无法准确、全面、高效地识别语句的意图的问题。
6.本公开实施例的第一方面,提供了一种意图识别方法,方法包括:获取询问语句以及询问语句对应的业务类型;判断询问语句是否与业务类型对应的候选主问题匹配;若询问语句与业务类型对应的候选主问题不匹配,确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度;以及,根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,确定询问语句对应的目标主问题。
7.本公开实施例的第二方面,提供了一种意图识别装置,装置包括:语句获取模块,用于获取询问语句以及询问语句对应的业务类型;匹配判断模块,用于判断询问语句是否与业务类型对应的候选主问题匹配;问题确定模块,用于若询问语句与业务类型对应的候选主问题不匹配,确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度;以及,根据询问语句分别与
各个满足预设召回条件的候选主问题的匹配程度,确定询问语句对应的目标主问题。
8.本公开实施例的第三方面,提供了一种计算机设备,包括存储器、处理器以及存储在存储器中并且可以在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
9.本公开实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
10.本公开实施例与现有技术相比存在的有益效果是:本公开实施例可以先获取询问语句以及询问语句对应的业务类型;然后,可以判断询问语句是否与业务类型对应的候选主问题匹配;若询问语句与业务类型对应的候选主问题不匹配,确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度;以及,根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,确定询问语句对应的目标主问题。这样,本技术在询问语句与业务类型对应的候选主问题均不匹配的情况下(比如,询问语句的字符较少,难以匹配主问题,或者,没有直接匹配的候选主问题),可以通过根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,确定询问语句对应的目标主问题,这样,使得询问语句的意图识别方式较为灵活,可以精准匹配到询问语句对应的主问题,也不需要和现有技术一样,对存储的主问题的数据要求高,即本实施例所提供的方法不需要要求每一个主问题都有足够多的相似问题,且要求不同主问题之间差别大;可见,本实施例所提供的方法可以提高询问语句的意图识别结果的准确性、全面性和高效性,进而提高了用户体验。
附图说明
11.为了更清楚地说明本公开实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
12.图1是本公开实施例的应用场景的场景示意图;图2是本公开实施例提供的意图识别方法的流程图;图3是本公开实施例提供的意图识别系统的架构示意图;图4是本公开实施例提供的意图识别系统的变更架构示意图;图5是本公开实施例提供的意图识别装置的框图;图6是本公开实施例提供的计算机设备的示意图。
具体实施方式
13.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本公开实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本公开。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本公开的描述。
14.下面将结合附图详细说明根据本公开实施例的一种意图识别方法和装置。
15.在现有技术中,目前的语句意图识别的匹配方式较僵化,难以精准捕捉到用户问题完整的语义信息,易出现仅识别到局部意图的错误,或者可解释性较低,无法准确、全面、
高效地识别语句的意图。
16.为了解决上述问题。本发明提供了一种意图识别方法,在本方法中,以先获取询问语句以及询问语句对应的业务类型;然后,可以判断询问语句是否与业务类型对应的候选主问题匹配;若询问语句与业务类型对应的候选主问题不匹配,确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度;以及,根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,确定询问语句对应的目标主问题。这样,本技术在询问语句与业务类型对应的候选主问题均不匹配的情况下(比如,询问语句的字符较少,难以匹配主问题,或者,没有直接匹配的候选主问题),可以通过根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,确定询问语句对应的目标主问题,这样,使得询问语句的意图识别方式较为灵活,可以精准匹配到询问语句对应的主问题,也不需要和现有技术一样,对存储的主问题的数据要求高,即本实施例所提供的方法不需要要求每一个主问题都有足够多的相似问题,且要求不同主问题之间差别大;可见,本实施例所提供的方法可以提高询问语句的意图识别结果的准确性、全面性和高效性,进而提高了用户体验。
17.举例说明,本发明实施例可以应用到如图1所示的应用场景。在该场景中,可以包括终端设备1。
18.终端设备1可以是硬件,也可以是软件。当终端设备1为硬件时,其可以是具有支持数据处理功能的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等;当终端设备1为软件时,其可以安装在如上的电子设备中。终端设备1可以实现为多个软件或软件模块,也可以实现为单个软件或软件模块,本公开实施例对此不作限制。当然,本发明实施例也是可以应用于服务器中的。
19.具体地,在图1所示的应用场景中,用户可以通过终端设备1输入询问语句,终端设备1可以先确定询问语句对应的业务类型。接着,终端设备1可以判断询问语句是否与业务类型对应的候选主问题匹配。若询问语句与业务类型对应的候选主问题不匹配,终端设备1可以确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度;以及,终端设备1可以根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,确定询问语句对应的目标主问题。这样,可以使得询问语句的意图识别方式较为灵活,可以精准匹配到询问语句对应的主问题,也不需要和现有技术一样,对存储的主问题的数据要求高,即本实施例所提供的方法不需要要求每一个主问题都有足够多的相似问题,且要求不同主问题之间差别大;可见,本实施例所提供的方法可以提高询问语句的意图识别结果的准确性、全面性和高效性,进而提高了用户体验。
20.需要说明的是,终端设备1的具体类型、数量和组合可以根据应用场景的实际需求进行调整,本公开实施例对此不作限制。
21.需要注意的是,上述应用场景仅是为了便于理解本公开而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
22.图2是本公开实施例提供的一种意图识别方法的流程图。图2的一种意图识别方法可以由图1的终端设备(或服务器)执行。如图2所示,该意图识别方法包括:s201:获取询问语句以及询问语句对应的业务类型。
23.在本实施例中,可以将用户通过终端设备输入的查询的信息(即query)称之为询问语句。询问语句可以包括若干字符串,询问语句可以为包括汉字、英文或者数字等各种类
型字符的字符串,例如,询问语句可以为“hu7027”、“时间”、“yyds是什么意思”、“sf10258946327”。在一种实现方式中,用户通过实体键盘、虚拟键盘或者语音输入的方式,在询问对话界面(比如客服对话界面)输入一信息后,可以将该信息作为询问语句。
24.在获取到询问语句后,可以先确定询问语句对应的业务类型。询问语句对应的业务类型可以理解为询问语句所查询的业务的领域,例如,业务类型可以包括航班信息查询、单据信息查询、快递信息查询、行政服务查询等。在本实施例中,可以预先设置了各个业务类型对应的模板信息;可以理解的是,业务类型的模板信息可以反映了该业务类型的业务内容特性。这样,在获取到询问语句后,可以根据预设的模板信息确定询问语句对应的业务类型。举例来说,假设询问语句为“hu7021”,由于根据模板信息,确定“huxxxx”为航班号信息,因此,可以确定询问语句“hu7021”对应的业务类型为航班信息查询;假设用户询问语句为“密码”,由于根据模板信息,确定“密码”为密码查询,因此,可以确定询问语句“密码”对应的业务类型为密码。需要说明是,询问语句的业务类型可以根据实际情况预先设置。
25.s202:判断询问语句是否与业务类型对应的候选主问题匹配。
26.在本实施例中,每个业务类型均预先设置了一候选主问题集合,可以理解的是,每一业务类型均有与其一一对应的候选主问题集合,其中,每一个候选主问题集合可以包括若干候选主问题。
27.需要说明的是,每个业务类型对应的数据库中存放的查询数据通常为若干组一问一答形式的查询数据,其中,每一组查询数据中的问题可以称之为主问题,而该组查询数据中主问题的回答可以称之为答案,并且,每个主问题有若干个相似问题以及关键词。而每个业务类型对应的数据库中所有主问题所形成的集合即为候选主问题集合。在一种具体实现方式中,每个业务类型可以关联若干个知识库,每个知识库均包括若干组查询数据,且每个知识库对应的知识领域均不相同,需要强调的是,不同业务类型可以关联同一知识库。
28.作为一种示例,在获取到询问语句以及确定询问语句对应的业务类型后,可以先获取该业务类型对应的候选主问题,接着,针对每一候选主问题,判断该询问语句与该候选主问题是否匹配。例如,可以先根据该业务类型,获取该业务类型对应的候选主问题集合,接着,再针对候选主问题集合中每一候选主问题,判断该询问语句与该候选主问题是否匹配。需要说明的是,询问语句与业务类型对应的候选主问题匹配可以理解为询问语句与候选主问题的内容是否部分对应或者完全对应,具体的匹配判断方式将在后面进行具体介绍。
29.s203:若询问语句与业务类型对应的候选主问题不匹配,确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度。
30.若询问语句与业务类型对应的每一候选主问题均不匹配,说明无法直接根据询问语句确定该询问语句对应的意图。因此,需要进一步分析询问语句与其对应业务类型的候选主问题之间的相关程度。
31.在本实施例中,由于业务类型对应的候选主问题数量较多,导致筛选的范围较为广泛,为了进一步缩小筛选的范围,可以先根据预设召回条件,在业务类型对应的候选主问题中确定满足预设召回条件的候选主问题。其中,预设召回条件可以为候选主问题与询问语句之间的相关性程度大于预设相关性阈值。其中,该预设相关性阈值可以是根据实际情况所确定的,例如可以是用户根据需求预先设置的,也可以是根据业务类型对应的所有候
选主问题的相关性程度情况所确定的。可以理解的是,候选主问题与询问语句之间的相关性程度越高,说明该候选主问题能够反映询问语句的真实意图的可能性越大,反之,候选主问题与询问语句之间的相关性程度越低,说明该候选主问题能够反映询问语句的真实意图的可能性越小。
32.为了能够确定能够反映询问语句的真实意图的主问题,在确定满足预设召回条件的候选主问题之后,可以确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,以便可以进一步根据询问语句和满足预设召回条件的候选主问题的匹配程度,确定能够反映询问语句的真实意图的候选主问题。这样,本实施例在询问语句与业务类型对应的候选主问题均不匹配的情况下(比如,询问语句的字符较少,难以匹配主问题,或者,没有直接匹配的候选主问题),还可以利用询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,筛选能够反映询问语句的真实意图的候选主问题。
33.需要说明的是,询问语句和候选主问题的匹配程度可以理解为候选主问题能够反映询问语句的真实意图的概率。可以理解的是,候选主问题与询问语句之间的匹配程度越高,说明该候选主问题为询问语句的真实意图的可能性越大,反之,候选主问题与询问语句之间的相关性程度越低,说明该候选主问题为询问语句的真实意图的可能性越小。在一种具体的实现方式中,询问语句和候选主问题的匹配程度可以通过分数的形式来展示,例如,询问语句和候选主问题的匹配分数越高,说明询问语句和候选主问题的匹配程度越高,反之,询问语句和候选主问题的匹配分数越低,说明询问语句和候选主问题的匹配程度越低。
34.s204:根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,确定询问语句对应的目标主问题。
35.在确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度之后,可以利用询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,筛选该询问语句对应的目标主问题。需要说明的是,由于一个询问语句的真实意图可能包括一个问题或者多个问题,为了能够保证根据询问语句所确定的目标主体能够尽可能的、全面的反映询问语句的真实意图,目标主问题可以仅包括一个主问题,也可以包括多个主问题,即可以从满足预设召回条件的候选主问题中选择一个或多个候选主问题作为询问语句对应的目标主问题。
36.在一种实现方式中,当目标主问题包括多个主问题时,该多个主问题可以以列表或者选择项的方式进行展示,以便用户可以从这多个主问题中选择一个或多个主问题进行确认,并可以针对用户所确定的主问题,向用户反馈该主问题的答案。举例说明,假设询问语句为“hu7027”,且询问语句对应的目标主问题包括“hu7027的航班信息是什么”、“hu7027的航班票价是多少”、“hu7027的航班服务情况评价如何”,则可以将这三个问题以列表的选项方式进行展示,也可以以气泡选项的方式进行展示。
37.本公开实施例与现有技术相比存在的有益效果是:本公开实施例可以先获取询问语句以及询问语句对应的业务类型;然后,可以判断询问语句是否与业务类型对应的候选主问题匹配;若询问语句与业务类型对应的候选主问题不匹配,确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度;以及,根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,确定询问语句对应的目标主问题。这样,本技术在询问语句与业务类型对应的候选主问题均不匹配的情况下(比如,询问语句的字符较少,难以匹配
主问题,或者,没有直接匹配的候选主问题),可以通过根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,确定询问语句对应的目标主问题,这样,使得询问语句的意图识别方式较为灵活,可以精准匹配到询问语句对应的主问题,也不需要和现有技术一样,对存储的主问题的数据要求高,即本实施例所提供的方法不需要要求每一个主问题都有足够多的相似问题,且要求不同主问题之间差别大;可见,本实施例所提供的方法可以提高询问语句的意图识别结果的准确性、全面性和高效性,进而提高了用户体验。
38.接下来,将介绍s202,即“判断询问语句是否与业务类型对应的候选主问题匹配”的一种具体实现方式。具体地,在一种实现方式中,s202可以包括:判断询问语句与业务类型对应的候选主问题是否满足预设匹配条件。也就是说,在本实施例中,获取到询问语句以及其对应的业务类型后,可以判断该询问语句是否与该业务类型对应的至少一候选主问题满足预设匹配条件。
39.其中,预设匹配条件包括:询问语句与业务类型对应的候选主问题完全匹配、询问语句与业务类型对应的知识图谱中的一关系路径匹配、询问语句与业务类型对应的候选主问题的至少一个关键词匹配。也就是说,询问语句与业务类型对应的至少一候选主问题只要满足上述三个匹配条件中的一个,便可以确定该询问语句与该业务类型对应的一候选主问题满足预设匹配条件。反之,询问语句与业务类型对应的一候选主问题只要同时不满足上述三个匹配条件中的任意一个,便可以确定该询问语句与该业务类型对应的一候选主问题不满足预设匹配条件。需要强调的是,在一种实现方式中,预设匹配条件的判断顺序可以为先判断询问语句是否与业务类型对应的候选主问题完全匹配,接着,判断询问语句是否与业务类型对应的知识图谱中的一关系路径匹配,最后,再判断询问语句是否与业务类型对应的候选主问题的至少一个关键词匹配。
40.需要说明的是,询问语句与业务类型对应的候选主问题完全匹配,可以理解为,询问语句的内容与该候选主问题的内容完全一致,例如,假设询问语句为“hu7027的航班信息是多少”且该询问语句的业务类型对应的一候选主问题为“hu7027的航班信息是多少”,由于询问语句的内容与该候选主问题的内容完全一致,因此,可以认为该询问语句与该候选主问题完全匹配。询问语句与业务类型对应的知识图谱中的一关系路径匹配,可以理解为,询问语句与业务类型对应的知识图谱中的一关系路径对应的三元组完全匹配,其中,该知识图谱存储了若干候选主问题,且每个候选主问题各自分别对应一关系路径;举例来说,假设询问语句为“龙信密码怎么修改”且该询问语句的业务类型对应的知识图谱中的一关系路径为“龙信密码
”→“
修改”,由于询问语句的内容与该关系路径的三元组内容完全一致,因此,可以认为该询问语句与业务类型对应的知识图谱中的一关系路径匹配,即与该关系路径对应的候选主问题匹配。询问语句与其对应的业务类型的候选主问题的至少一个关键词匹配,可以理解为,询问语句中包括了一候选主问题的至少一个关键词,即询问语句与候选主问题的至少一个关键词完全一致,举例来说,假设询问语句为“龙信密码”且该询问语句的业务类型对应的一候选主问题的关键词为“龙信密码”、“修改”,由于询问语句的内容与该候选主问题的一个关键词“龙信密码”相匹配,因此,可以认为该询问语句与其对应的业务类型的候选主问题的关键词匹配。
41.相应地,s203(即若询问语句与业务类型对应的候选主问题不匹配,确定询问语句分别与各个候选主问题的匹配程度),可以包括:与业务类型对应的候选主问题不满足任一
预设匹配条件,则确定询问语句与业务类型对应的候选主问题不匹配,以及,确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度。可以理解的是,若询问语句不与其对应的业务类型的候选主问题完全匹配、不与业务类型对应的知识图谱中的一关系路径匹配且不与业务类型对应的候选主问题的关键词匹配,则可以确定询问语句与业务类型对应的候选主问题不匹配,以及,确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度。
42.接下来,将介绍s203,即若询问语句与业务类型对应的候选主问题不匹配,确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度的步骤,在一种实现方式中,可以包括以下步骤:s203a:若询问语句与业务类型对应的候选主问题不匹配,确定询问语句分别与业务类型对应的各个候选主问题之间的相关性程度。
43.在本实施例中,若询问语句与业务类型对应的候选主问题不匹配,则可以先确定询问语句分别与其对应的业务类型中的各个候选主问题之间的相关性程度。其中,询问语句与候选主问题之间的相关性程度可以理解为询问语句与候选主问题之间的内容关联程度。需要说明的是,候选主问题与询问语句之间的相关性程度越高,说明该候选主问题能够反映询问语句的真实意图的可能性越大,反之,候选主问题与询问语句之间的相关性程度越低,说明该候选主问题能够反映询问语句的真实意图的可能性越小。
44.在本实施例的一种实现方式中,可以利用评价搜索词和文档之间相关性的算法确定询问语句与候选主问题之间的相关性程度,例如,可以利用bm25算法计算询问语句与候选主问题之间的相关性程度。在一种实现方式中,elasticsearch搜索工具中内置有bm25算法,可以利用elasticsearch搜索工具搜索询问语句对应的业务类型下的全部知识库中的候选主问题,并利用bm25算法计算询问语句分别与该业务类型对应的各个候选主问题之间的相关性程度。
45.s203b:根据询问语句分别与业务类型对应的各个候选主问题之间的相关性程度,获取满足预设召回条件的候选主问题。
46.可以理解的是,可以利用预设召回条件,筛选出与询问语句的相关性程度满足预设召回条件的候选主问题。其中,预设召回条件可以为候选主问题与询问语句之间的相关性程度大于预设相关性阈值。
47.s204c:确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度。
48.在筛选出满足预设召回条件的候选主问题后,可以确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度。在本实施例中,匹配程度的确定方式可以分为两种情况,接下来,将分别介绍这两种情况。
49.第一种情况,若询问语句的字符长度大于第一预设阈值,针对每一满足预设召回条件的候选主问题,根据候选主问题对应的向量以及询问语句对应的向量,确定候选主问题与询问语句的匹配程度。
50.若确定询问语句的字符长度大于第一预设阈值,则可以针对每一满足预设召回条件的候选主问题,先确定该候选主问题对应的向量以及该询问语句对应的向量,比如,可以利用同样的编码器将候选主问题和询问语句均进行编码,得到该候选主问题对应的向量以及该询问语句对应的向量;接着,可以确定该候选主问题对应的向量与该询问语句对应的
向量的距离,以及,将该距离作为该候选主问题与该询问语句的匹配程度,比如,可以计算该候选主问题对应的向量与该询问语句对应的向量之间的cos距离,并将该cos距离作为该候选主问题与该询问语句的匹配置信度,即匹配程度。需要说明的是,在一种实现方式中,第一预设阈值可以为五个字符。
51.第二种情况,若询问语句的字符长度小于或等于第一预设阈值,针对每一满足预设召回条件的候选主问题,根据候选主问题与询问语句之间的相关性程度,确定候选主问题与询问语句的匹配程度。
52.若询问语句的字符长度小于或等于第一预设阈值,说明cos距离不适合反映候选主问题与询问语句的匹配程度,可以采用归一化的方式将候选主问题与询问语句之间的相关性程度的分值缩放至所需范围以确定候选主问题与询问语句的匹配程度。
53.具体地,针对每一满足预设召回条件的候选主问题,可以先确定候选主问题与询问语句之间的相关性程度;在本实施例的一种实现方式中,可以利用评价搜索词和文档之间相关性的算法确定询问语句与候选主问题之间的相关性程度,例如,可以利用bm25算法计算询问语句与候选主问题之间的相关性程度。然后,可以对相关性程度进行归一化处理,得到候选主问题与询问语句的匹配程度;在一种实现方式中,由于利用bm25算法计算的相关性程度的分数往往大于1,而最终需要的匹配程度的分值需要在0~1范围内,所以需要将bm25算法确定的相关性程度对应的分数等比例缩放至0~1范围内。
54.接下来,将介绍s204,即根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,确定询问语句对应的目标主问题的步骤,在一种实现方式中,可以包括以下步骤:s204a:根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,确定满足预设筛选条件的候选主问题;s204b:将满足预设筛选条件的候选主问题作为询问语句对应的目标主问题。
55.在确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度之后,可以根据预设筛选条件,确定询问语句对应的目标主问题。其中,预设筛选条件可以为候选主问题与询问语句的匹配程度大于第二预设阈值,即将匹配程度大于第二预设阈值的候选主问题作为询问语句对应的目标主问题。其中,该第二预设阈值可以是根据实际情况所确定的,例如可以是用户根据需求预先设置的,也可以是根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度情况所确定的,例如,目标主问题包括五个主问题时,可以将匹配程度从高到低进行排序,并将排序在第五的候选主问题的匹配程度作为第二预设阈值。
56.为了避免目标主问题中出现一些非业务类型内容,即与询问语句对应的业务类型不相关的内容,例如属于闲聊的主问题,举例来说,“你开心吗”、“你是谁”等;在本实施例的一种实现方式中,预设筛选条件还可以包括满足预设筛选条件的候选主问题的内容不为非业务类型内容。也就是说,目标主问题需要同时满足与询问语句的匹配程度大于第二预设阈值且主问题的内容不为非业务类型内容。
57.需要说明的是,由于匹配程度算法在计算匹配程度的过程中,可能会存在各种各样难以解决的错误结果,例如,询问语句为“bxcx20201234124”,经过匹配程度算法,候选主问题“单据号查询”的匹配程度分数是0.53,但由于“bx”为单据号,则该询问语句与候选主
问题“单据号查询”的匹配程度应该为1。为了避免出现上述问题,在本实施例的一种实现方式中,在s204,即根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,确定询问语句对应的目标主问题的步骤之前,方法还可以包括:若满足预设召回条件的候选主问题的内容符合业务类型的调整条件,根据业务类型的调整规则对候选主问题与询问语句的匹配程度进行调整,得到调整后的匹配程度。
58.其中,业务类型的调整条件可以为用户预先针对一业务类型所设置的特殊情况或者特殊场景。业务类型的调整规则可以理解为用户预先针对一业务类型的特殊情况或者特殊场景所设置的匹配程度调整规则。
59.继续以询问语句“bxcx20201234124”为例;经过匹配程度算法,候选主问题“单据号查询”的匹配程度分数是0.53,但由于“bx”为单据号,且,业务类型“单据查询”的调整条件为候选主问题包括关键词“单据号”,因此需要根据业务类型“单据查询”的调整规则“将包括关键词

单据号’的候选主问题的匹配程度设置为1”,将该候选主问题“单据号查询”的匹配程度设置为1。这样,便可以避免出现在业务类型的特殊场景或特殊情况下出现匹配程度确定错误的情况,从而提高了确定询问语句的目标主问题的精确性。
60.需要说明的是,由于用户在通过键盘等输入设备向终端输入询问语句的过程中,可能会错误输入非标点符号,比如@、&等非标点符号,或者,可能会多输入一些语气词,比如“呀”、“哇”,或者,大小写输入错误。因此,在本技术实施例的一种实施方式中,在s201,即在获取询问语句以及询问语句对应的业务类型的步骤之后,方法还可以包括:若询问语句中存在符合预设字符规则的字符,对询问语句中符合预设字符规则的字符进行调整,得到调整后的询问语句。
61.预设字符规则可以是用户根据实际需求设置的,例如,预设字符规则可以为字符为非标点符号、语气词、大写英文字母(或者小写英文字母)等。若询问语句中存在符合预设字符规则的字符,可以根据相应的调整方式对询问语句中符合预设字符规则的字符进行调整。例如,询问语句“hu7027@”中存在符合预设字符规则“非标点符号”的字符“@”,则可以将该询问语句中的“非标点符号”的字符“@”去掉,得到调整后的询问语句“hu7027”;又例如,询问语句“哎明天机票多少钱了”中存在符合预设字符规则“语气词”的字符“哎”,则可以将该询问语句中的“语气词”的字符“哎”去掉,得到调整后的询问语句“明天机票多少钱了”;还例如,询问语句“hu7027”中存在符合预设字符规则“小写英文字母”的字符“hu”,则可以将该询问语句中的“小写英文字母”的字符“hu”更改为大写英文字母,得到调整后的询问语句“hu7027”。
62.可见,在本实施例中,在获取询问语句以及询问语句对应的业务类型的步骤之后,通过对询问语句进行内容预处理,可以将询问语句中的字符进行统一,并且还可以将用户错误输入的字符从询问语句中去除,从而便于对该询问语句的后续处理,以提高了确定询问语句的目标主问题的精确性。
63.在一种实现方式中,在s202,即判断询问语句是否与业务类型对应的候选主问题匹配的步骤之后,方法还可以包括:若询问语句与业务类型对应的若干候选主问题匹配,将若干候选主问题作为询问语句对应的目标主问题。
64.在本实施例的一种实现方式中,若询问语句与业务类型对应的若干候选主问题匹
配,即询问语句与其对应的业务类型中的至少一候选主问题满足以下至少一个预设匹配条件,即:询问语句与业务类型对应的候选主问题完全匹配、询问语句与业务类型对应的知识图谱中的一关系路径对应的候选主问题匹配、询问语句与业务类型对应的候选主问题的至少一个关键词匹配;则可以将与询问语句匹配的若干候选主问题作为询问语句对应的目标主问题。
65.也就是说,询问语句与业务类型对应的一候选主问题完全匹配、询问语句与业务类型对应的知识图谱中的一关系路径匹配或者询问语句与业务类型对应的候选主问题的至少一个关键词匹配,即询问语句与业务类型对应的至少一候选主问题只要满足上述三个匹配条件中的一个,便可以确定该询问语句与该业务类型对应的一候选主问题满足预设匹配条件,从而可以将该候选主问题作为该询问语句对应的目标主问题。
66.由于业务类型对应的候选主问题随时会发生变更,为了保证确定询问语句对应的目标主问题的精确性,需要能够实时根据候选主问题的变更情况对业务类型的候选主问题集合进行调整。具体地,方法还包括:若检测到业务类型对应的候选主问题发生变更,则根据发生变更的候选主问题对业务类型对应的候选主问题集合进行变更。
67.具体地,若检测到业务类型对应的候选主问题发生新增,则可以将新增的候选主问题添加至业务类型对应的候选主问题集合中;若检测到业务类型对应的候选主问题发生删除,则可以将该候选主问题从业务类型对应的候选主问题集合中删除;若检测到业务类型对应的一候选主问题的内容发生修改,则可以在业务类型对应的候选主问题集合中对该候选主问题的内容进行修改。
68.作为一种示例,如图4所示,kafka生产模块监听到数据变更模块(data updata)中的候选主问题发生变更时,kafka生产模块(即kafka producer)可以向kafka中推送一条消息,以便kafka消费模块(即kafka consumer)对搜索服务器es中的该候选主问题消息进行消费,达到对es中的该候选主问题消息进行即时更新的效果。其中,具体消费过程为:通过编码模块encoder将每一个候选主问题和对应的相似问题、关键词通过编码器转化为向量,再将该向量数据更新到es中,其中编码器为深度学习模型,作用是将文本转化为向量,包括但不限于bert、sentence

bert等。可以理解的是,数据变更模块中的候选主问题每次发生变动后,均可以触发深度学习模型基于变动更新后的候选主问题进行重新训练,从而可以保证深度学习模型不断更新升级。
69.可见,本实施例可以实时根据候选主问题的变更情况对业务类型的候选主问题集合进行调整,从而保证确定询问语句对应的目标主问题的精确性。
70.接下来,将结合图3阐述本实施例的一种具体实现方式。获取到询问语句后,首先利用预处理模块对询问语句进行预处理;具体地,通过语句重写模块进行意图重写,即若询问语句中存在符合预设字符规则的字符,对询问语句中符合预设字符规则的字符进行调整,得到调整后的询问语句;以及通过信息补全模块对询问语句进行信息补全,例如确定询问语句对应的业务类型,以及该业务类型下的所有候选主问题。预处理后的询问语句进入击中模块,利用击中模块中完全匹配模块判断询问语句是否与业务类型对应的候选主问题完全匹配;利用知识图谱模块判断询问语句是否与业务类型对应的知识图谱中的一关系路径匹配;利用关键词模块判断询问语句是否与业务类型对应的候选主问题的关键词匹配;
如果击中模块命中了某条(或某多条)主问题,则直接返回,其中若命中单条则返回答案,若命中多条则返回列表供用户选择,即若询问语句与业务类型对应的若干候选主问题匹配,将若干候选主问题作为询问语句对应的目标主问题;若击中模块未命中,即询问语句与业务类型对应的候选主问题不匹配,则进入后续的召回模块。召回模块中的bm25模块用于确定询问语句分别与业务类型对应的各个候选主问题之间的相关性程度,根据询问语句分别与业务类型对应的各个候选主问题之间的相关性程度,获取满足预设召回条件的候选主问题。然后,进入打分模块,若询问语句为短语(比如长度小于5),则利用匹配程度确定模块针对每一满足预设召回条件的候选主问题,根据候选主问题对应的向量以及询问语句对应的向量,确定候选主问题与询问语句的匹配程度;若询问语句为短语(比如长度等于或大于5),则利用归一化模块针对每一满足预设召回条件的候选主问题,根据候选主问题与询问语句之间的相关性程度,确定候选主问题与询问语句的匹配程度。接着,进入重打分模块,重打分模块中的调整模块可以执行若满足预设召回条件的候选主问题的内容符合业务类型的调整条件,根据业务类型的调整规则对候选主问题与询问语句的匹配程度进行调整,得到调整后的匹配程度。紧接着,进入过滤模块,通过战略模块根据业务需求进行过滤,如过滤掉分数低于阈值的主问题,过滤掉闲聊的主问题等,即执行若询问语句中存在符合预设字符规则的字符,对询问语句中符合预设字符规则的字符进行调整,得到调整后的询问语句;可以理解的是,战略模块包括了预设的业务需求,比如,分数阈值、属于闲聊的主问题等。最后,可以得到询问语句对应的目标主问题。
71.上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
72.下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
73.图5是本公开实施例提供的意图识别装置的示意图。如图5所示,该意图识别装置包括:语句获取模块501,用于获取询问语句以及询问语句对应的业务类型;匹配判断模块502,用于判断询问语句是否与业务类型对应的候选主问题匹配;问题确定模块503,用于若询问语句与业务类型对应的候选主问题不匹配,确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度;以及,根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,确定询问语句对应的目标主问题。
74.可选的,匹配判断模块502,用于:判断询问语句与业务类型对应的候选主问题是否满足预设匹配条件;其中,预设匹配条件包括:询问语句与业务类型对应的候选主问题完全匹配、询问语句与业务类型对应的知识图谱中的一关系路径匹配、询问语句与业务类型对应的候选主问题的至少一个关键词匹配;相应地,问题确定模块503,用于:若询问语句与业务类型对应的候选主问题不满足任一预设匹配条件,则确定询问语句与业务类型对应的候选主问题不匹配,以及,确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度。
75.可选的,问题确定模块503,用于:
若询问语句与业务类型对应的候选主问题不匹配,确定询问语句分别与业务类型对应的各个候选主问题之间的相关性程度;根据询问语句分别与业务类型对应的各个候选主问题之间的相关性程度,获取满足预设召回条件的候选主问题;其中,预设召回条件为候选主问题与询问语句之间的相关性程度大于预设相关性阈值;确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度。
76.可选的,问题确定模块503,用于:若询问语句的字符长度大于第一预设阈值,针对每一满足预设召回条件的候选主问题,根据候选主问题对应的向量以及询问语句对应的向量,确定候选主问题与询问语句的匹配程度;若询问语句的字符长度小于或等于第一预设阈值,针对每一满足预设召回条件的候选主问题,根据候选主问题与询问语句之间的相关性程度,确定候选主问题与询问语句的匹配程度。
77.可选的,问题确定模块503,用于:若询问语句的字符长度大于第一预设阈值,针对每一满足预设召回条件的候选主问题,确定候选主问题对应的向量以及询问语句对应的向量;确定候选主问题对应的向量与询问语句对应的向量的距离,以及,将距离作为候选主问题与询问语句的匹配程度。
78.可选的,问题确定模块503,用于:若询问语句的字符长度小于或等于第一预设阈值,针对每一满足预设召回条件的候选主问题,确定候选主问题与询问语句之间的相关性程度;对相关性程度进行归一化处理,得到候选主问题与询问语句的匹配程度。
79.可选的,问题确定模块503,用于:根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,确定满足预设筛选条件的候选主问题;其中,预设筛选条件为候选主问题与询问语句的匹配程度大于第二预设阈值;将满足预设筛选条件的候选主问题作为询问语句对应的目标主问题。
80.可选的,预设筛选条件还包括候选主问题的内容不为非业务类型内容。
81.可选的,装置还包括调整模块,用于:若满足预设召回条件的候选主问题的内容符合业务类型的调整条件,根据业务类型的调整规则对候选主问题与询问语句的匹配程度进行调整,得到调整后的匹配程度。
82.可选的,调整模块还用于:若询问语句中存在符合预设字符规则的字符,对询问语句中符合预设字符规则的字符进行调整,得到调整后的询问语句。
83.可选的,问题确定模块还用于:若询问语句与业务类型对应的若干候选主问题匹配,将若干候选主问题作为询问语句对应的目标主问题。
84.可选的,装置还包括变更模块,用于:若检测到业务类型对应的候选主问题发生变更,则根据发生变更的候选主问题对业务类型对应的候选主问题集合进行变更。
85.本公开实施例与现有技术相比存在的有益效果是:本公开实施例一种意图识别装置,装置包括:语句获取模块,用于获取询问语句以及询问语句对应的业务类型;匹配判断模块,用于判断询问语句是否与业务类型对应的候选主问题匹配;问题确定模块,用于若询问语句与业务类型对应的候选主问题不匹配,确定询问语句分别与各个满足预设召回条件的候选主问题的匹配程度;以及,根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,确定询问语句对应的目标主问题。这样,本技术在询问语句与业务类型对应的候选主问题均不匹配的情况下(比如,询问语句的字符较少,难以匹配主问题,或者,没有直接匹配的候选主问题),可以通过根据询问语句分别与各个满足预设召回条件的候选主问题的匹配程度,确定询问语句对应的目标主问题,这样,使得询问语句的意图识别方式较为灵活,可以精准匹配到询问语句对应的主问题,也不需要和现有技术一样,对存储的主问题的数据要求高,即本实施例所提供的方法不需要要求每一个主问题都有足够多的相似问题,且要求不同主问题之间差别大;可见,本实施例所提供的方法可以提高询问语句的意图识别结果的准确性、全面性和高效性,进而提高了用户体验。
86.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。
87.图6是本公开实施例提供的计算机设备6的示意图。如图6所示,该实施例的计算机设备6包括:处理器601、存储器602以及存储在该存储器602中并且可以在处理器601上运行的计算机程序603。处理器601执行计算机程序603时实现上述各个方法实施例中的步骤。或者,处理器601执行计算机程序603时实现上述各装置实施例中各模块/模块的功能。
88.示例性地,计算机程序603可以被分割成一个或多个模块/模块,一个或多个模块/模块被存储在存储器602中,并由处理器601执行,以完成本公开。一个或多个模块/模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序603在计算机设备6中的执行过程。
89.计算机设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算机设备。计算机设备6可以包括但不仅限于处理器601和存储器602。本领域技术人员可以理解,图6仅仅是计算机设备6的示例,并不构成对计算机设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如,计算机设备还可以包括输入输出设备、网络接入设备、总线等。
90.处理器601可以是中央处理模块(central processing unit,cpu),也可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
91.存储器602可以是计算机设备6的内部存储模块,例如,计算机设备6的硬盘或内存。存储器602也可以是计算机设备6的外部存储设备,例如,计算机设备6上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器602还可以既包括计算机设备6的内部存储模块也包括
外部存储设备。存储器602用于存储计算机程序以及计算机设备所需的其它程序和数据。存储器602还可以用于暂时地存储已经输出或者将要输出的数据。
92.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能模块、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块、模块完成,即将装置的内部结构划分成不同的功能模块或模块,以完成以上描述的全部或者部分功能。实施例中的各功能模块、模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中,上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。另外,各功能模块、模块的具体名称也只是为了便于相互区分,并不用于限制本公开的保护范围。上述系统中模块、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
93.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
94.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
95.在本公开所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或模块的间接耦合或通讯连接,可以是电性,机械或其它的形式。
96.作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
97.另外,在本公开各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
98.集成的模块/模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本公开实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可以存储在计算机可读存储介质中,该计算机程序在被处理器执行时,可以实现上述各个方法实施例的步骤。计算机程序可以包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如,在某些司法管辖区,根据立法和
专利实践,计算机可读介质不包括电载波信号和电信信号。
99.以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围,均应包含在本公开的保护范围之内。
再多了解一些

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

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

相关文献