CN118260405A - 意图识别方法、意图识别装置及电子设备 - Google Patents

意图识别方法、意图识别装置及电子设备 Download PDF

Info

Publication number
CN118260405A
CN118260405A CN202410487710.5A CN202410487710A CN118260405A CN 118260405 A CN118260405 A CN 118260405A CN 202410487710 A CN202410487710 A CN 202410487710A CN 118260405 A CN118260405 A CN 118260405A
Authority
CN
China
Prior art keywords
template
slot
word
query request
intention
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410487710.5A
Other languages
English (en)
Inventor
任美茹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vivo Mobile Communication Co Ltd
Original Assignee
Vivo Mobile Communication Co Ltd
Filing date
Publication date
Application filed by Vivo Mobile Communication Co Ltd filed Critical Vivo Mobile Communication Co Ltd
Publication of CN118260405A publication Critical patent/CN118260405A/zh
Pending legal-status Critical Current

Links

Abstract

本申请公开了一种意图识别方法、意图识别装置及电子设备,属于信息处理技术领域。方法包括:对查询请求中的汉字文本信息进行第一切词处理,得到N个切词;根据预先存储的槽位词库和高频词库中的与所述N个切词中至少一个匹配的槽位词,确定所述查询请求的请求意图;其中,N为正整数;所述槽位词库包括至少一个模板槽位词,每个查询请求模板对应至少一个模板槽位词,至少一个查询请求模板的关联信息包括所述请求意图;所述高频词库包括至少一个高频槽位词,所述至少一个高频槽位词的关联信息包括所述请求意图。

Description

意图识别方法、意图识别装置及电子设备
技术领域
本申请属于人工智能技术领域,具体涉及一种意图识别方法、意图识别装置及电子设备。
背景技术
自然语言理解(Natural Language Understanding,NLU)技术通过理解和解析用户输入的自然语言问题,准确把握用户意图。这包括识别实体、关系、事件等语义信息,以及推断用户的意图和含义。相关技术中的NLU方法主要包括基于模板的方法和基于模型的方法,其中,基于模板的方法为:基于已知模板来构建规则集,并基于构建的规则集来进行语义识别;基于模型的方法为:利用模型进行自然语言理解,其中,模型可以是机器模型、神经网络模型或大语言模型。
在相关技术中,在移动终端部署的基于规则的语义识别方法是基于目标词槽位编码结果的组合模板获取查询请求(query)对应的文本意图。具体过程为:对query进行全切分,对分词结果在配置好的槽位编码库以及拼接好的模板库中检索,只有能够在模板库中完全检索到的query才能识别到该query的意图,这种方式需要模板库中的模板与query严格匹配才能命中意图,该方式造成对查询请求的召回率低。
发明内容
本申请实施例的目的是提供一种意图识别方法、意图识别装置及电子设备,能够大大降低切词数量,且基于对汉字文本信息的切词结果与预先存储的槽位词库和高频词库进行匹配,能够提高基于构建的槽位词库和高频词库进行槽位识别和意图识别的命中率,提高了对查询请求的召回率。
第一方面,本申请实施例提供了一种意图识别方法,该方法包括:
对查询请求中的汉字文本信息进行第一切词处理,得到N个切词;
根据预先存储的槽位词库和高频词库中的与所述N个切词中至少一个匹配的槽位词,确定所述查询请求的请求意图;
其中,N为正整数;所述槽位词库包括至少一个模板槽位词,每个查询请求模板对应至少一个模板槽位词,至少一个查询请求模板的关联信息包括所述请求意图;所述高频词库包括至少一个高频槽位词,所述至少一个高频槽位词的关联信息包括所述请求意图。
第二方面,本申请实施例提供了一种意图识别装置,该装置包括:
处理模块,用于对查询请求中的汉字文本信息进行第一切词处理,得到N个切词;
确定模块,用于根据预先存储的槽位词库和高频词库中的与所述N个切词中至少一个匹配的槽位词,确定所述查询请求的请求意图;
其中,N为正整数;所述槽位词库包括至少一个模板槽位词,每个查询请求模板对应至少一个模板槽位词,至少一个查询请求模板的关联信息包括所述请求意图;所述高频词库包括至少一个高频槽位词,所述至少一个高频槽位词的关联信息包括所述请求意图。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器,用于读取存储器中的程序实现如第一方面所述的意图识别方法中的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,用于存储计算机程序,计算机程序被处理器执行时实现如第一方面所述的意图识别方法中的步骤。
第五方面本申请实施例提供了一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现如第一方面所述的意图识别方法中的步骤。
在本申请实施例中,对查询请求中的汉字文本信息进行第一切词处理,得到N个切词;根据预先存储的槽位词库和高频词库中的与所述N个切词中至少一个匹配的槽位词,确定所述查询请求的请求意图;其中,N为正整数;所述槽位词库包括至少一个模板槽位词,每个查询请求模板对应至少一个模板槽位词,至少一个查询请求模板的关联信息包括所述请求意图;所述高频词库包括至少一个高频槽位词,所述至少一个高频槽位词的关联信息包括所述请求意图。只对汉字文本信息进行切词处理,而不对数字字符串、英文字符串、包含时间信息的字符串等进行切词处理,能够大大降低切词数量,且基于对汉字文本信息的切词结果与预先存储的槽位词库和高频词库进行匹配,能够提高基于构建的槽位词库和高频词库进行槽位识别和意图识别的命中率,提高了对查询请求的召回率。
附图说明
图1是本申请的一些实施例提供的意图识别方法的流程图;
图2a是本申请的一些实施例提供的意图识别方法的流程图;
图2b是本申请的一些实施例中构建槽位库的流程图;
图3是本申请的一些实施例中的query的举例示意图;
图4是本申请的一些实施例提供的意图识别方法的流程图;
图5是本申请的一些实施例提供的意图识别方法的流程图;
图6是本申请的一些实施例提供的意图识别装置的结构示意图;
图7是本申请的一些实施例提供的电子设备的结构示意图;
图8是本申请的一些实施例提供的电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
NLU的一大应用场景是手机等终端设备上的语音助手,用户使用语音助手的大部分场景是有网的,此时通过云端的各种NLU服务完成用户命令的意图分析。然而,对于一些无网络的场景,由于终端设备硬件的限制,内存资源及中央处理器(Central ProcessingUnit,CPU)性能远不如服务器,这种情况下使用模板的方案分析用户意图会更加合适。
本申请实施例中,改进了终端设备侧的基于规则的语义理解方法,提供了一种自定义查询请求模板的方案,可以用更加简单的方式扩大query的召回率,其具体优势至少包括预提取query中的时间以及非汉语部分,将提取出的字符串作为一个整体槽位,不再进行切词,而只对query中的汉字字符串进行切词,可以大大减小切词的数量;此外,在配置查询请求模板的过程中无需配置纯数字和英文、时间等文本信息的槽位词,可以减少对纯数字和英文、时间等文本信息进行槽位配置和切词操作所消耗的计算量和内存占用量,提高查询请求模板的泛化能力。
为了便于理解本申请的以下实施例,先对本申请实施例中涉及的以下术语或名词进行解释说明:
NLU:是指计算机系统对自然语言文本进行解释和理解的能力。NLU系统能够分析和推断文本中的含义,使得计算机能够理解人类语言的语义、语境和意图。
Query:用户对搜索引擎发出的查询请求,以获取特定信息或执行特定操作。它可以是一个命令、一个问题或者一个表达式。
全切分:词语被分解成了所有可能的子词,包括单个字、连续的两个字、三个字,直至整个词语,例如:将“现在几点”分词成“现、在、几、点、现在、在几、几点、现在几、在几点、现在几点”。
召回(Recall):是指系统成功找到相关信息所占的比例。在信息检索任务中,召回率是评估检索系统性能的重要指标之一。
槽位:在对话系统中,槽位通常与意图(intent)相关联。当用户表达了一个意图时,槽位用于收集该意图所需的具体信息。例如,在一个订票的对话系统中,当用户表达了订票的意图时,槽位可以用来存储用户所需的日期、时间、地点等关键信息。在自然语言处理中,“槽位”是一个通用概念,通常指的是用于填充特定信息的预留位置,通俗来讲,就是在句子中固定位置处装同一类实体词的容器,比如,打开应用意图中,对于“打开应用程序A”这种句式,可以定义一个模板<OPEN><APP_NAME>,在这个模板中有两个槽位,槽位名分别为<OPEN>和<APP_NAME>,<OPEN>装的都是“打开”的近义词,开启、开一下、开开…,<APP_NAME>装的是应用程序的名称。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的意图识别方法、意图识别装置及电子设备进行详细地说明。
需要说明的是,本申请实施例提供的意图识别方法,执行主体可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备等电子设备。本申请的一些实施例中以电子设备为执行主体执行意图识别方法为例,说明本申请实施例提供的意图识别方法。
参阅图1,本申请实施例提供的意图识别方法包括以下步骤:
步骤101、对查询请求中的汉字文本信息进行第一切词处理,得到N个切词,其中,N为正整数。
在本申请的一些实施例中,查询请求可以是基于语音助手等语音服务获取的查询请求,例如:用户通过手机上的语音助手应用程序输入“现在几点”的语音信息,则通过对该语音进行识别所得到的信息即为查询请求。
在本申请的一些实施例中,查询请求可以只包含汉字文本信息而不包含数字、英文、时间等其他文本信息。例如:查询请求为“现在几点”。
在本申请的一些实施例中,查询请求可以包含汉字文本信息和参考字符串,其中,参考字符串可以包括数字、英文、时间等文本内容。例如:假设查询请求为“给12345678910打电话”,则汉字文本信息为“给”“打电话”,参考字符串为“12345678910”,其中,12345678910表示电话号码。
步骤102、根据预先存储的槽位词库和高频词库中的与所述N个切词中至少一个匹配的槽位词,确定所述查询请求的请求意图,其中,所述槽位词库包括至少一个模板槽位词,每个查询请求模板对应至少一个模板槽位词,至少一个查询请求模板的关联信息包括所述请求意图;所述高频词库包括至少一个高频槽位词,所述至少一个高频槽位词的关联信息包括所述请求意图。
在本申请的一些实施例中,模板槽位词以及包含至少一个模板槽位词的查询请求模板可以是离线配置并预先存储在本申请的一些实施例提供的意图识别方法的执行主体上的,例如:模板槽位词以及包含至少一个模板槽位词的查询请求模板可以事先存储于应用程序的资源(assets)文件中,在本申请的一些实施例提供的意图识别方法的执行主体安装该应用程序时,可以将该assets文件解压到该应用程序的私有目录下,以使其它应用程序无权访问。
在本申请的一些实施例中,查询请求模板可以指示查询请求样本的语义和槽位规则。当查询请求符合某条查询请求模板的槽位规则时,可以将该条查询请求模板的语义作为查询请求的语义。例如:查询请求模板可以指示查询请求样本的应用场景、意图、槽位信息等,当用户的查询请求中的槽位符合某条查询请求模板的槽位规则时,可以将该条查询请求模板所指示的请求意图作为用户的查询请求的请求意图。
在本申请的一些实施例中,高频槽位词可以是根据用户对语音助手服务的历史使用情况确定的槽位词。可选地,由于每一个用户使用语音助手的query都有一些习惯语或者用户每天问的问题是相对固定的,可以统计每一次用户query在检索过程中命中的词汇,记录词频以及每个词识别的意图信息,并存储于高频词库中,这样,该高频槽位词征了用户高频使用的词汇。
需要说明的是,本申请实施例中的标识是指数字和字符中至少一项组成的字符串、单个数字编码或者单个字符,例如:场景标识可以是场景编码,用于标识候选场景中的每一种场景;槽位标识可以是槽位编码,用于标识候选槽位中的每一种槽位;意图标识可以是意图编码,用于标识候选请求意图中的每一种请求意图;符号标识可以是符号编码,用于标识候选参考字符串中的每一种类型的参考字符串。
在本申请的一些实施例中,查询请求的场景可以与该查询请求所需调用的应用程序对应。
需要说明的是,语音助手服务的场景固定且明确,此时,可以事先定义每一个场景的场景标识,例如:可以对定义好的每一个场景进行数字递增编码,以得到每一个场景的场景标识。
在本申请的一些实施例中,查询请求的意图可以与该查询请求所请求的操作类型对应。
例如:假设查询请求为“给12345678910打电话”,则该查询请求的场景为“电话”,该查询请求的意图是“拨打电话”。
再例如:假设查询请求为“提醒我10点钟有会议”,则该查询请求的场景为“日程”,该查询请求的意图是“新建日程”。
在本申请的一些实施例中,可以将所述N个切词与预先存储的槽位词库中的模板槽位词进行匹配,当查找到与所述N个切词中至少一个匹配的槽位词时,获取与该匹配的槽位词对应的查询请求模板,例如:具有该槽位词对应的槽位标识的查询请求模板,并将所述查询请求中的N个切词与所述查询请求模板中的槽位标识对应的槽位词进行匹配,在某个查询请求模板中的槽位标识对应的槽位词全部命中或命中率大于预设阈值的情况下,该查询请求模板与查询请求成功,从而根据该查询请求模板中的场景标识和意图标识来确定查询请求的场景和请求意图。
在本申请的另一些实施例中,可以将所述N个切词与高频词库中的高频槽位词进行匹配,在能够从高频词库中找到与所述N个切词中的至少一个切词匹配的高频槽位词的情况下,基于该匹配高频槽位词所关联意图信息确定查询请求的请求意图。
本申请还有一些实施例中,可以优先将所述N个切词与高频词库中的高频槽位词进行匹配,在能够找到与所述N个切词中的至少一个切词匹配的高频槽位词的情况下,基于该高频槽位词所关联的意图信息确定查询请求的请求意图;在未能够找到与所述N个切词中的至少一个切词匹配的高频槽位词的情况下,将所述N个切词与槽位词库中的模板槽位词进行匹配,在能够找到与所述N个切词中的至少一个切词匹配的模板槽位词的情况下,获取该模板槽位词对应的查询请求模板,并将该查询请求模板关联的请求意图作为查询请求的请求意图。
在本申请实施例中,对查询请求中的汉字文本信息进行第一切词处理,得到N个切词;根据预先存储的槽位词库和高频词库中的与所述N个切词中至少一个匹配的槽位词,确定所述查询请求的请求意图;其中,N为正整数;所述槽位词库包括至少一个模板槽位词,每个查询请求模板对应至少一个模板槽位词,至少一个查询请求模板的关联信息包括所述请求意图;所述高频词库包括至少一个高频槽位词,所述至少一个高频槽位词的关联信息包括所述请求意图。只对汉字文本信息进行切词处理,而不对数字字符串、英文字符串、包含时间信息的字符串等进行切词处理,能够大大降低切词数量,且基于对汉字文本信息的切词结果与预先存储的槽位词库和高频词库进行匹配,能够提高基于构建的槽位词库和高频词库进行槽位识别和意图识别的命中率,提高了对查询请求的召回率。
作为一种可选的实施方式,所述模板槽位词关联的编码信息包括场景标识和槽位标识,所述查询请求模板包括场景标识、意图标识和槽位标识,所述场景标识和所述槽位标识指示所述查询请求模板对应的模板槽位词。
在本申请的一些实施例中,模板槽位词可以使用场景标识与槽位标识相组合的方式进行标识,如模板槽位词关联的编码信息为场景标识_槽位标识。此时,查询请求模板对应至少一个模板槽位词,可以理解为:查询请求模板对应的模板槽位词满足:编码信息中的场景标识与查询请求模板中的场景标识一致,且编码信息中的槽位标识与查询请求模板中的槽位标识一致。
本实施例中,可以基于场景标识和槽位标识将查询请求模板与该查询请求模板对应的模板槽位词关联起来,这样,便于确定查询请求模板包括哪个或哪些模板槽位词,从而在确定与查询请求中的切词匹配的模板槽位词后,能够基于查询请求模板与模板槽位词之间的对应关系,找到用于确定查询请求的请求意图的查询请求模板。
在本申请的一些实施例中,当第一切词处理形成的N个切词用于与模板槽位词进行匹配的情况下,可以事先获取槽位词库中的全部模板槽位词的最大长度和最小长度,并在执行所述第一切词处理的过程中,切词长度位于该最大长度和最小长度之间。
作为一种可选的实施方式,所述对查询请求中的中文文本信息进行第一切词处理,得到N个切词,包括:
获取所述槽位词库中的模板槽位词的最大长度和最小长度;
根据所述最大长度和最小长度,对所述汉字文本信息进行第一切词处理,使得到的每个切词的长度大于或等于所述最小长度,且小于或等于所述最大长度。
例如:假设槽位词库中的模板槽位词的长度范围位于3-5之间,查询请求为“现在几点了”,则第一切词处理形成的6个切词:“现在几”、“在几点”、“几点了”、“现在几点”、“在几点了”、“现在几点了”,这些切词的长度都位于3-5之间。
本实施方式中,第一切词处理得到的N个切词的长度位于槽位词库中的模板槽位词的长度范围内,这样,可以避免切分出与模板槽位词的长度不匹配的切词,能够有针对性的降低切词的数量。
值得提出的是,相关技术中需要对整个查询请求进行全切分,在全切分后会形成大量的切词,后续只有在预先存储的查询请求规则完全命中这些切词的情况下,才能够召回该查询请求,对查询请求的召回率低。例如:如果对“现在几点了”进行全切分的话,会得到15个切词:“现”、“在”、“几”、“点”、“了”、“现在”、“在几”、“几点”、“点了”、“现在几”、“在几点”、“几点了”、“现在几点”、“在几点了”、“现在几点了”。
而本实施例中,只对汉字文本信息进行切分,且切分后的切词的长度位于槽位词库中的模板槽位词的长度范围内,这样,可以大大降低切分后的切词的数量,相较于对大量的切词进行全命中匹配的方式而言,本申请实施方式中,只需要对数量较少的切词进行命中匹配,能够提高查询请求的召回率。
作为一种可选的实施方式,所述查询请求模板还包括符号标识,所述符号标识对应的参考字符串包括以下至少一项:数字字符串、英文字符串、时间字符串、不包含意图相关信息的字符串;
所述根据预先存储的槽位词库和高频词库中的与所述N个切词中至少一个匹配的槽位词,确定所述查询请求的请求意图,包括:
获取预先存储的槽位词库中与所述N个切词中至少一个匹配的模板槽位词;
根据与所述N个切词中至少一个匹配的模板槽位词的编码信息、所述查询请求中的参考字符串、所述N个切词和所述参考字符串的排列顺序,生成待检索模板;其中,所述待检索模板包括场景标识、符号标识和槽位标识,所述待检索模板中的符号标识与所述参考字符串对应;
根据模板库中与所述待检索模板匹配的查询请求模板中的意图标识,确定所述查询请求的请求意图。
在本申请的一些实施例中,不同类型的参考字符串,对应不同的符号标识,例如:符号标识“N”对应的参考字符串为纯数字或英文的字符串,即只有数字的字符串、只有英文的字符串、只有数字和英文的字符串;符号标识“T”对应的参考字符串为包含时间信息的字符串,如3月2号、2018.3.2、2018-3-2等;符号标识“W”对应的参考字符串为未包含意图相关信息的字符串,如与意图不相关的文字、符号、字母等至少一项构成的字符串。
需要说明的是,待检索模板中的场景标识可以与目标编码信息中的场景标识相同,待检索模板中的符号标识可以根据查询请求中的参考字符串的类型确定,待检索模板中的槽位标识可以根据与切词匹配的槽位词的槽位标识确定。此外,待检索模板中的符号标识和槽位标识的排列顺序,与查询请求中分别与该符号标识和槽位标识对应的文本内容的排列顺序一致。
在本申请的一些实施例中,在进行槽位词匹配后,利用与切词匹配的槽位词的槽位编码替换掉查询请求中的该切词,并利用参考字符串的类型对应的符号标识替换掉查询请求中的该参考字符串,以及将与切词匹配的槽位词关联的场景标识添加至固定的位置,最终便可以得到待检索模板。
在本申请的一些实施例中,待检索模板与查询请求模板匹配,可以理解为:待检索模板与查询请求模板包括相同的槽位标识和相同的符号标识,且槽位标识和符号标识的排列顺序一致。
例如:假设查询请求为“小v,帮我看下3月2号我是不是给12345678910打了电话”,其中,“3月2号”为包含时间信息的字符串,对应的符号标识为“T”;“12345678910”为纯数字字符串,对应的符号标识为“N”;汉字文本信息包括“小v,帮我看下”、“我是不是给”和“打了电话”。在对“小v,帮我看下”、“我是不是给”和“打了电话”进行第一切词处理,并将切词处理后的N个切词与槽位词库中的模板槽位词进行匹配,若槽位词库中的模板槽位词包括“是不是”和“打了电话”,且“是不是”对应的编码信息为“1_1”,“打了电话”对应的编码信息为“1_2”,可以将“小v,帮我看下”用符号标识“W”替代,则拼接后的待检索模板的编码信息为{1:W_T_1_N_2},其中,编码信息中的“_”之前的数字编号为场景标识,“_”之后的数字编号为槽位标识,则这样,可以基于模板槽位词的编码信息将该模板槽位词对应的场景和槽位关联起来,在后续在槽位库中找到与切词匹配的模板槽位词时,可以基于该匹配的模板槽位词的编码信息确定待检索模板中的场景标识和槽位标识。
与上述待检索模板不同的是,查询请求模板还包括意图标识,例如:假设某个查询请求模板的编码信息为{1:{W_T_1_N_2:1}}。其中,从左至右的第二个“:”之后的数字编号为意图标识。这样,可以在确定待检索模板的编码信息{1:W_T_1_N_2}与查询请求模板的编码信息{1:{W_T_1_N_2:1}}中的场景标识、符号标识、槽位标识一致时,确定待检索模板与该查询请求模板匹配,从而可以基于查询请求模板的编码信息中的意图标识“1”所指示的请求意图来确定查询请求的请求意图。
本实施方式中,按照参考字符串的类型,使用对应的符号标识来指代对应的文本内容,可以提高待检索模板的泛化能力,进而提高待检索模板的命中率和查询请求的召回率。此外,本实施方式中通过对待检索模板与查询请求模板中的符号标识与槽位标识的排列顺序进行匹配。可以确保与待检索模板匹配的查询请求模板与该待检索模板包含相同的场景标识、相同的槽位标识、相同类型的参考字符串、以及相同的文本结构,能够提高查询请求的召回准确度。
在本申请的一些实施例中,在将待检索模板与查询请求模板进行匹配之前,可以对查询请求模板进行大致的筛选,以降低与待检索模板进行匹配的查询请求模板的数量。
作为一种可选的实施方式,所述根据模板库中与所述待检索模板匹配的查询请求模板中的意图标识,确定所述查询请求的请求意图,包括:
获取所述待检索模板中的场景标识;
根据所述检索模板中的场景标识,获取模板库中的候选查询请求模板,所述查询请求模板与所述检索模板包含相同的场景标识;
根据与所述待检索模板匹配的候选查询请求模板中的意图标识,确定所述查询请求的请求意图。
例如:若待检索模板的编码信息{1:W_T_1_N_2},即该待检索模板包含的场景标识为“1”,则可以从查询请求模板库中查找包含场景标识“1”的查询请求模板,用于与待检索模板进行匹配。
这样,可以降低与待检索模板进行匹配的查询请求模板的数量,降低待检索模板与查询请求模板进行匹配的计算量。例如:假设模板库中包含100个查询请求模板,其中,包含场景标识“1”的查询请求模板由50个,包含场景标识“2”的查询请求模板由50个,这样,对于某个包含场景标识“1”的待检索模板,只需要将模板库中含场景标识“1”的50个查询请求模板与该待检索模板进行匹配,而无需将模板库中的100个查询请求模板与该待检索模板进行匹配。
在本申请的一些实施例中,还可以对查询请求模板的匹配条件进行限制。
例如:所述查询请求模板具有关联的条件信息,所述条件信息包括以下至少一项:
命中率阈值;
与所述查询请求模板中的符号标识关联的长度范围;
其中,与所述待检索模板匹配的查询请求模板满足以下条件中的至少一项:
所述查询请求中的命中文本信息所占的长度比例大于或等于所述命中率阈值,其中,所述命中文本信息为命中标识对应的文本信息,所述命中标识为所述待检索模板在所述查询请求模板中命中的符号标识和槽位标识;
所述查询请求中与所述待检索模板中的符号标识对应的参考字符串的长度位于所述符号标识关联的长度范围内。
在本申请的一些实施例中,可以为查询请求模板设置命中率阈值,如0.8、0.7等,当命中文本信息与查询请求的总长度的比例大于或等于该命中率阈值的情况下,才能够确定查询请求与该查询请求模板匹配,其中,命中文本信息是指:待检索模板与查询请求模板之间的命中标识在查询请求中对应的文本信息。
在本申请的一些实施例中,命中率阈值可以是用户设置的或根据应用场景预先配置的,例如:命中率阈值的取值范围可以是0.7至1之间的任意数,在此不作具体限定。
这样,可以通过设置命中率阈值的方式,增大查询请求的召回率,进一步增加了待检索模板的泛化性,对于用户无规律的查询请求,不会因为多几个字、少几个字就不召回。
在本申请的一些实施例中,可以为查询请求模板中的每一个符号标识设置文本信息的长度范围,这样,在将查询请求模板与待检索模板进行匹配的过程中,在确定两者包含相同的符号标识之后,还需要确认该符号标识对应的文本信息的长度是否位于该符号标识关联的长度范围内,只有在确定该符号标识对应的文本信息的长度位于该符号标识关联的长度范围的情况下,才确定查询请求中的符号标识与待检索模板中的符号标识匹配。这样,可以提高对参考字符串的匹配精确度。
例如:假设查询请求模板为:
{1:{W_T_1_N_2:1_0.8@W$1#7_T$3#15_N$5#11}};
该查询请求模板的编码格式为{场景标识:{符号标识_槽位标识的拼接信息}:意图标识_命中率阈值@每个符号标识关联的长度范围},即符号标识“W”关联的长度范围为[1,7]个字符;符号标识“T”关联的长度范围为[3,15]个字符;符号标识“N”关联的长度范围为[5,11]个字符。
此时,若假设查询请求为“小v,帮我看下3月2号我是不是给12345678910打了电话”,其对应的待检索模板为{1:W_T_1_N_2}。此时,可以确定待检索模板与查询请求模板具有相同的场景标识、符号标识和槽位标识,且待检索模板中的符号标识与槽位标识的排列顺序与查询请求模板一致,此后,可以进一步进行以下判断:
1)符号标识“W”所指代的文本内容“小v,帮我看下”包含7个字符,处于查询请求模板中的符号标识“W”关联的长度范围[1,7]内;
2)符号标识“T”所指代的文本内容“3月2号”包含4个字符,处于查询请求模板中的符号标识“T”关联的长度范围[3,15]内;
3)符号标识“N”所指代的文本内容“12345678910”包含11个字符,处于查询请求模板中的符号标识“N”关联的长度范围[5,11]内;
4)待检索模板中与命中的符号标识和槽位标识关联的文本内容为“小v,帮我看下”、“3月2号”、“是不是”、“12345678910”、“打了电话”,则命中的槽位长度为7(小v,帮我看下)+4(3月2号)+3(是不是)+11(12345678910)+4(打了电话)=29,查询请求的总长度为31,则该查询请求的命中率为29÷31=0.93,该命中率大于查询请求模板关联的命中率阈值0.8。
需要说明的是,上述符号标识关联的长度范围可以根据经验设置,例如:基于单个字符无特殊含义,可以符号标识“N”关联的长度范围中的最小值大于1,符号标识“T”关联的长度范围中的最小值大于3,符号标识“W”关联的长度范围中的最小值大于0等。
本实施方式中,以查询请求模板的编码信息包括条件信息为例进行举例说明,在另一些实施方式中,还可以通过存储关联信息表的方式将条件信息与对应的查询请求模板进行关联,在此不构成具体限定。
在本申请的一些实施例中,上述查询请求模板也可能是语音查询服务的应用端事先生成的。
作为一种可选的实施方式,在所述对查询请求中的汉字文本信息进行第一切词处理,得到N个切词之前,所述方法还包括:
获取语音查询服务的线上工作日志,所述线上工作日志包括以下信息:历史查询请求、所述历史查询请求所应用的场景、所述历史查询请求的请求意图;
根据所述历史查询请求,将所述历史查询请求中的L个词汇确定为所述模板槽位词;L为正整数;
基于所述模板槽位词、所述历史查询请求、所述历史查询请求所应用的场景、所述历史查询请求的请求意图和标识关联信息,确定所述模板槽位词的编码信息和查询请求模板;
其中,所述标识关联信息包括以下至少一项:所述模板槽位词与槽位标识之间的关联信息、所述历史查询请求所应用的场景与场景标识之间的关联信息、所述历史查询请求的请求意图与意图标识之间的关联信息、所述历史查询请求中的参考字符串与符号标识之间的关联信息;
其中,所述参考字符串包括以下至少一项:数字字符串、英文字符串、时间字符串、不包含意图相关信息的字符串。
值得提出的是,语音查询服务的线上工作日志可以包括语音查询服务器对指定的一个用户的线上工作日志,或者是对至少两个用户的线上工作日志;该工作日志中可以记录语音查询服务器获取的历史查询请求,以及端对该历史查询请求的分析结果,该分析结果至少包括该历史查询请求对应的场景和请求意图。
在本申请的一些实施例中,语音查询服务器还可以向语音查询服务的应用端发送历史查询请求中的L个词汇,以使语音查询服务的应用端将该L个词汇作为模板槽位词。
在本申请的一些实施例中,所述模板槽位词与槽位标识之间的关联信息可以基于该模板槽位词对应的历史查询请求所应用的场景、该模板槽位词在历史查询请求中的作用或位置等确定。
在本申请的一些实施例中,可以事先对每一种场景以及各个场景下的请求意图进行编号,以确定每一种场景的场景标识和各个意图的意图标识。
在本申请的一些实施例中,可以事先对每一种类型的参考字符串所对应的符号标识进行配置,如纯数字或英文字符串对应的符号标识为N,包含时间信息的参考字符串对应的符号标识为T,未包含意图相关信息的参考字符串对应的符号标识为W。这样,对于历史查询请求中的纯数字或英文字符串、包含时间信息的参考字符串、以及未包含意图相关信息的参考字符串,可以基于与该参考字符串的类型确定对应的符号标识。
本实施方式中,语音查询服务的应用端(即接收查询请求的客户端)可以获取语音查询服务器的线上工作日志和L个词汇,并基于该工作日志和L个词汇来生成模板槽位词和查询请求模板,可以降低构建槽位词库和模板库的复杂程度。
需要说明的是,在另一些实施方式中,语音查询服务器在处理历史查询请求的过程中,可以采用大语言模型对该历史查询请求进行数据分析,以确定该历史查询请求所应用的场景、该历史查询请求的意图、模板槽位词等,然后通过预配置的方式将以上信息配置给语音查询服务的应用端,在此不作具体限定。
作为一种可选的实施方式,所述根据预先存储的槽位词库和高频词库中的与所述N个切词中至少一个匹配的槽位词,确定所述查询请求的请求意图,包括:
根据所述高频词库中与所述N个切词中的至少一个切词匹配的高频槽位词所关联编码信息中的场景标识和意图标识,确定所述查询请求的场景和请求意图;
其中,所述高频槽位词包括目标用户的历史查询请求中使用频次大于或等于预设阈值的阈值,所述高频槽位词关联的编码信息包括场景标识、意图标识、槽位标识和所述高频槽位词的使用频次。
其中,高频槽位词可以理解为是用户在历史查询过程中高频使用的词汇。
在本申请的一些实施例中,当第一切词处理形成的N个切词用于与高频词库中的高频槽位词进行匹配的情况下,该第一切词处理可以包括:在高频词库中查找查询请求中的汉字文本信息,当从高频词库中查找到与查询请求中的汉字文本信息匹配的高频槽位词时,直接按照该匹配的高频槽位词的长度将对应的文本信息切分为切词,并在查询请求的N个切词全部命中高频槽位词的情况下,直接按照每个命中的高频槽位词的意图标识判断该查询请求的请求意图。
例如:假设某用户经常会通过语音助手询问“现在几点了”,则个性化词库中存储的高频槽位词包括{“现在”:[2_1],”几点了”:[2_1]},此时,若用户当前输入的查询请求为“现在几点了”,则检索个性化词库直接将该查询请求切分为“现在”、“几点了”,且这两个槽位词对应的是同一个意图标识“2_1”,那我们就能直接识别到该查询请求的请求意图是意图标识“2_1”关联的请求意图。
在本申请的一些实施例中,高频词库中的高频槽位词包括目标用户的历史查询请求中使用频次大于或等于预设阈值的阈值,所述高频槽位词的编码信息还包括所述高频槽位词的使用频次。例如:将目标用户使用过2次及以上的词汇作为高频槽位词进行存储。
本实施方式中,可以根据单个用户的使用习惯来确定高频槽位词,且在对该用户的查询请求进行意图分析时,可以将该查询请求中的文本信息与高频槽位词进行匹配,当高频槽位词命中该查询请求中的文本内容时,可以基于命中的高频槽位词所关联的意图标识来确定查询请求的请求意图,能够简化查询请求的意图分析过程。
在本申请的一些实施例中,所述方法还包括:
在所述高频词库中未查找到与所述N个切词中的至少一个切词匹配的高频槽位词的情况下,对所述至少一个切词进行第二切词处理,得到M个二次切词,其中,M为正整数;
根据所述槽位词库中与所述M个二次切词匹配的模板槽位词,更新所述高频词库中的高频槽位词。
在本申请的一些实施例中,第二切词处理与前述实施例中的第一切词处理可以按照相同的方式执行,不同之处包括:本实施例中,先将查询请求中的文本信息与高频槽位词进行匹配,并按照与文本信息匹配的高频槽位词的长度对该文本信息进行第一切词处理,对于未找到与之匹配的高频槽位词的切词,则需要进行进一步的第二切词处理,以生成用于与模板槽位词进行匹配的二次切词。
需要说明的是,上述M个二次切词与模板槽位词的匹配过程,与前述将第一切词处理后的N个切词与模板槽位词的匹配过程相同,在此不再赘述。
本实施方式中,可以根据与二次切词匹配的模板槽位词来更新高频槽位词,例如:将与所述二次切词匹配成功的模板槽位词作为高频槽位词。这样,可以动态的更新高频词库,使得更新后的高频词库能够与用户的使用习惯更加匹配。
作为一种可选的实施方式,所述方法还包括:
在所述查询请求未召回的情况下,记录所述查询请求;
在获取到指示信息的情况下,向服务器发送第一消息,所述第一消息包括所述查询请求,所述服务器部署有大语言模型;
接收所述服务器发送的第二消息,所述第二消息包括所述查询请求对应的意图信息和槽位信息;
根据所述查询请求对应的意图信息和槽位信息,更新所述槽位词库、所述高频词库中的至少一项;
其中,所述指示信息用于指示以下至少一项:恢复联网状态、剩余电量大于或等于预设的电量阈值。
在本申请的一些实施例中,在将查询请求与本地预先存储的模板槽位词、与模板槽位词对应的查询请求模板,或,高频槽位词进行匹配,以实现对该查询请求的意图分析的过程中,若未能够召回该查询请求,如未查找到与该查询请求匹配的模板槽位词、高频槽位词或查询请求模板,则可以记录该查询请求,以等待获取到指示信息时,向服务器(即语音助手服务的服务器)发送该查询请求的相关信息,以在服务器侧利用大语言模型对该查询请求进行槽位识别和意图识别。
例如:在电子设备上的语音助手应用程序接收到查询请求的情况下,若该电子设备断开网络连接或剩余电量低于电量阈值,则可以将查询请求与本地预先存储的模板槽位词、与模板槽位词关联的查询请求模板,或,高频槽位词进行匹配,以实现对该查询请求的意图分析,若该方式未能实现对该查询请求的意图分析,则在该电子设备恢复联网状态或剩余电量高于或等于电量阈值,将该查询请求发送至语音助手服务器,以利用语音助手服务器上部署的大语言模型对该查询请求的意图分析,并接收来自语音助手服务器的意图分析结果。
在本申请的一些实施例中,查询请求对应的意图信息可以包括服务器利用大语言模型对查询请求进行意图识别所确定的该查询请求的请求意图。
在本申请的一些实施例中,查询请求对应的槽位信息可以包括服务器利用大语言模型对查询请求进行槽位识别所确定的该查询请求中的槽位词的相关信息,如:槽位词的文本内容、槽位词的槽位标识、槽位词对应的查询请求模板等。
在本申请的一些实施例中,在断开网络连接或剩余电量低于电量阈值的情况下,优先采用本地规则匹配的方式对查询请求进行意图分析,并在电子设备处于联网状态的情况下,优先采用上报服务器的方式对查询请求进行意图分析。
本实施方式中,对于在断网状态或剩余电量低于电量阈值状态下,通过本地规则匹配的方式无法召回的查询请求,在恢复联网状态或剩余电量恢复至高于或等于电量阈值时,将该未召回的查询请求上报至服务器,并根据服务器反馈的该查询请求对应的意图信息和槽位信息更新所述模板槽位词和所述高频槽位词中的至少一项,可以动态提高所述模板槽位词和所述高频槽位词的召回范围。
在本申请的一些实施例中,在根据所述查询请求对应的意图信息和槽位信息,更新所述模板槽位词的情况下,还可以更新查询请求模板,以动态提高查询请求模板的召回范围。
为了便于理解本申请实施例提供的意图识别方法,对本申请实施例提供的意图识别方法进行举例说明:
如图2a所示,在对用户query进行意图识别之前的过程包括以下步骤:
步骤201、挖掘各场景下用户query的表述规律,并据此进行槽位构建。
如图2b所示,上述步骤201具体可以包括以下步骤:
步骤2011、利用大语言模块对用户query进行槽位挖掘;
步骤2012、判断槽位类别是否为参考字符串:时间、纯数字或英文;
步骤2013、对于不是参考字符串的汉字文本信息,进行槽位配置和查询请求模板配置;
步骤2014、对于是参考字符串的文本信息,不进行槽位配置。
其中,语音助手的场景固定且明确,可以对定义好的每一个场景进行数字递增编码,以确定各个场景的场景标识。针对各场景下用户的query,使用大语言模型进行基础切词和槽位归类,比如,“街道A在哪里”通过大模型得到的结果为:"街道A(地名)_在(位置介词)_哪里(疑问副词)",这样得到所有的槽位类别和各槽位下包含的词汇。给每一个槽位类别都配置一个槽位文件,以<S:NAME>的格式命名。
此后,对每一个槽位名称也进行数字递增编码,每一个槽位编码为:场景标识_槽位标识,并以{槽位词:场景标识__槽位标识}的格式存储于槽位数据库中。
需要说明的是,对于类别是时间、纯英文&数字、非意图相关信息(你好、小v、嗯嗯…)的槽位,不进行槽位配置,而是在步骤202中以对应类别的符号标识替换这些槽位。
在本申请的一些实施例中,可以获取槽位数据库中的槽位词的最大长度和最小长度,并在后续对查询请求进行检索的过程中,根据该最大长度和最小长度进行第一切词处理。
例如:假设电话场景对应的场景标识为1,该电话场景下的询问来电信息意图的意图标识为1,假设历史查询请求为:“小v,帮我看下3月2号我是不是给12345678910打了电话”,基于该历史查询请求可以配置两个槽位:<S:ask>、<S:phone_call>。其中,<S:ask>对应的槽位标识为1,且该<S:ask>对应的切词为:是不是;<S:phone_call>对应的槽位标识为2,且该<S:phone_call>对应的切词为:打了电话。对于与意图无关的字符串“小v,帮我看下”、包含时间信息的字符串“3月2号”、纯数字字符串“12345678910”,则不进行槽位配置。最终的槽位存储格式为{“1_1”,“1_2”},其中,“1_1”是槽位词“是不是”的编码信息。“1_2”是槽位词“打了电话”的编码信息。
步骤202、使用构建的槽位编码信息拼接查询请求模板。
对于未配置的数字字符串和英文字符串、包含时间信息的字符串、无意义字符串定义以下规则:
1)数字字符串和英文字符串:<N:M-N>,M、N都为>1(一般一个字符无特殊含义,所以限制>1)的自然数;
2)包含时间信息的字符串:<T:M-N>,M、N>3,包含时间信息的字符串的长度>3;
3)非意图相关字符串:<W:M-N>,M、N>0;
其中,M表示对应文本内容的最短长度,N表示最长长度。
此时,对于历史查询请求“小v,帮我看下3月2号我是不是给12345678910打了电话”,其拼接的查询请求模板为:
<W:1-7><T:3-15><W:1-1><S:ask><W:1-1><N:5-11><S:phone_call>;
该查询请求模板的编码信息可以是:{场景标识:{拼接模板编码:意图标识_slot_ratio@条件信息}};
其中,拼接的查询请求模板是指将与历史查询请求中的第二文本信息对应的槽位泛化符号(W\T\N)和与第一文本信息对应的槽位编码(<S:XXX>文件的编码)进行拼接所得到的模板;
场景标识是指电话、短信、设置等场景的数字标识,本举例中为1;
意图标识是场景下定义的各意图的数字标识:电话场景下有询问来电信息、打电话、回拨未接电话等,该举例中假设询问来电信息的意图标识为1;
slot_ratio是指槽位命中率阈值,即命中槽位的长度÷query总长度,根据经验配置,本举例中为0.8;
条件信息是指符号标识需要满足的长度范围,该例中查询请求模板的编码信息为{1:{W_T_1_N_2:1_0.8@W$1#7_T$3#15_N$5#11}},表示符号标识“W”对应的文本内容的长度范围为[1,7];符号标识“T”对应的文本内容的长度范围为[3,15];符号标识“N”对应的文本内容的长度范围为[5,11]。
需要说明的是,步骤201、步骤202为对槽位词和查询请求模板的离线挖掘配置的过程,查询请求模板配置的过程相当于我们构建了一个用户对各场景及意图的全集数据库,该数据库提前存储好了准确的分词结果以及对应的意图信息,作为后续槽位和意图识别过程中的依据。
步骤203、将步骤201、步骤202中生成的编码信息存储在一个数据库文件中。
在本申请的一些实施例中,生成的数据库文件作为意图和槽位识别的资源文件,存储于安卓应用的assets文件中,安装应用程序时,解压到该应用程序的私有目录下,其它应用无权访问。
需要说明的是,上述步骤201至步骤203为槽位词库和模板库的构建过程,基于已构建的槽位词库中的模板槽位词以及模板库中的查询请求模板,可以对用户实时的查询请求进行槽位和意图识别。
例如:可以通过以下过程实现对用户实时的查询请求进行槽位和意图识别。
步骤204、接收到用户的查询请求(query)后,首先对用户的query进行切词。
在本申请的一些实施例中,用于实现检索匹配过程的代码逻辑封装成软件开发工具包(Software Development Kit,SDK)后放入安卓的库文件(libs)文件夹中进行功能调用,属于语音助手应用程序自身的一部分代码逻辑。
本实施例中主要是以分词为粒度进行查询请求模板匹配。所以在接收到用户的query时,首先对它进行分词,分词方法如下:
步骤204a、首先根据预置的日期、纯英文&数字的正则表达式提取出对应的槽位值。正则表达式(Regular Expression)是一种用于描述字符串模式的表达式。正则表达式由普通字符(例如字母、数字)和元字符(例如^、$、*、+、?、.、|、\等)组成,通过这些字符的组合可以描述出复杂的字符串模式。正则表达式可以用于检查一个字符串是否符合某种模式、从字符串中提取信息、替换字符串等操作。
这一步将时间和纯英文&数字的参考字符串提取出来,保存这些参考字符串位置信息,即该参考字符串在query中的位置,然后,将原句中该部分字符串替换成对应的符号标识T、N或W;
步骤204b、获取除步骤204a中识别到的参考字符串之外的汉字文本信息,对该汉字文本信息按预置的通用槽位的最短长度和最长长度进行第一切词处理,得到N个切词。
例如:假设query为“小v,帮我看下3月2号我是不是给12345678910打了电话”,其中,“3月2号”对应符号标识<T>,“12345678910”对应符号标识<N>;然后,对“小v,帮我看下”、“我是不是给”、“打了电话”进行第一切词处理,第一切词处理的长度为[3,5]区间,则得到的第一切词为:【小v,|小v,帮|小v,帮我|v,帮|v,帮我|v,帮我看|,帮我|,帮我看|,帮我看下|帮我看|帮我看下】【我是不|我是不是|我是不是给|是不是|是不是给】【打了电|打了电话|了电话】,这种方式比全切分少了很多待检索词。
步骤205、从槽位词库中检索N个切词,获取与N个切词中的至少一个切词匹配的模板槽位词。
例如:假设槽位词库中的模板槽位词以及对应的编码信息包括{“是不是”:“1_1”,“打了电话”:“1_2”},则N个切词与该槽位词库中的模板槽位词的匹配结果为:小v,帮【无】|小v,帮我【无】|v,帮我【无】|v,帮我看【无】|,帮我看【无】|,帮我看下【无】|帮我看下【无】|我是不是【无】|我是不是给【无】|是不是【1_1】|是不是给【无】|打了电话【1_2】。
这样,便可以确定与N个切词匹配的模板槽位词的编码信息为{是不是:1_1,打了电话:1_2}。
步骤206、拆解与N个切词中至少一个切词匹配的模板槽位词的编码信息,得到场景标识和槽位标识,并根据场景标识进行场景归类,然后用槽位标识和之前提取出的符号标识(N、T)拼接每一个场景下的待检索模板。
其中,将与N个切词中至少一个切词匹配的模板槽位词的编码信息进行场景标识、槽位标识的拆解,将同一场景的归为一组,把槽位标识替换到原位置中,拆解原理为:以模板槽位词的编码信息中的“_”分割节点,其前面是场景标识,其后面是槽位标识。
例如:是不是:1_1拆解为{1:1},打了电话:1_2拆解为{1:2},进行合并后的编码信息为{1:[1,2]}。
再例如:对于查询请求“小v,帮我看下3月2号<T>我是不是1_1给12345678910<N>打了电话1_2”,在利用命中的槽位标识和符号标识替换query中对应的文本内容后得到的中间模板为:{1:小v,帮我看下_T_我_1_给_N_2}。
对于没有命中的且未包含意图相关信息的文本:“小v,帮我看下”、“我”、“给”,可以用符号标识“W”或者“空”进行替换,最终得到以下待检索模板的排列组合:
包括一个“W”的待检索模板为{1:W_T_1_N_2、T_W_1_N_2、T_1_W_N_2};
包括两个“W”的待检索模板为{1:W_T_W_1_N_2、T_W_1_W_N_2}、{1:W_T_1_W_N_2};
包括三个“W”的待检索模板为{1:W_T_W_1_W_N_2}。
步骤207、在模板库中查找与待检索模板的场景一致且相互匹配的查询请求模板候选集,并验证查询请求模板关联的条件信息是否满足,若满足则表示命中该条query,能够识别到该条query的请求意图和槽位;若不满足则该条query未命中。
例如:从模板库{1:{W_T_1_N_2:1_0.8@W$1#7_T$3#15_N$5#11}}中获取得到场景1的所有查询请求模板的编码信息为:{W_T_1_N_2:1_0.8@W$1#7_T$3#15_N$5#11},依次搜索拼接的query的待检索模板,只有W_T_1_N_2可检索到与之匹配的查询请求模板,此时,验证@符号之后的条件信息是否满足,若满足,则表示识别到query的请求意图和槽位;若不满足,则表示query模板与查询请求模板不匹配,该条query无法召回。
其中,验证条件信息的方式包括:
符号标识关联的长度范围验证:切分@符号之后的字符串,并以_再次切分,依次获取到W_T_1_N_2中W、T、N的长度范围信息,判断是否满足长度范围,该例中,W为“小v,帮我看下”,长度为7,位于W对应的长度范围[1,7]内;T为“3月2号”,长度为4,位于T对应的长度范围[3,15]内;N为“12345678910”,长度为10,位于N对应的长度范围[5,11]内;
命中率阈值验证:在验证上述符号标识关联的长度范围满足后,计算当前待检索模板中符号标识和槽位标识对应的槽位值占总query的比例,若该比例大于slot_ratio,则表示满足命中率阈值条件。本举例中,命中的槽位长度为7(小v,帮我看下)+4(3月2号)+3(是不是)+11(12345678910)+4(打了电话)=29,总query长度为31,slot_ratio=29÷31=0.93,该值大于设置的命中率阈值0.8,所以满足命中率阈值要求。
本步骤中,通过设置slot_ratio,进一步增加了查询请求模板的泛化性,对于用户无规律的query,不会因为多几个字、少几个字就不召回。
当上述符号标识关联的长度范围和命中率阈值验证均通过的情况下,可以确定待检索模板与查询请求模板匹配,此后,可以基于该查询请求模板中的场景标识“1”和意图标识“1”确定该query的场景标识是“1”,对应电话场景;意图标识是“1”,对应询问来电信息的请求意图,对应的实体槽位有槽位标识为“1”的ask槽位—是不是,槽位标识为“2”的phone_call槽位——打了电话。
步骤208、将意图识别结果传给语音助手客户端,语音助手客户端根据协议好的字段执行对应的操作,如查询与电话号码“12345678910”的通话记录。
通过以下过程,可以实现对query的意图识别和槽位提取。
以分析用户query的打电话意图为例,模板库和槽位库的构建、以及对用户的实时query的槽位识别和意图分析过程包括以下步骤:
步骤301、首先捞取语音助手服务的线上日志,用大语言模型对query进行挖掘分析:具有打电话意图的query句式通常为打电话给XX/呼叫XXX/拨打XXX/给XX打电话,其中,XX为电话号码,此时,不需要对电话号码进行槽位构建,而仅定义一个槽位<S:phone_call>:打电话/呼叫/拨打/打给,该槽位最长长度3,最短长度2。
假设场景标识、意图标识和槽位标识的定义如下:
电话场景对应的场景标识为:2;
打电话意图对应的意图标识为:1;
则具有打电话意图的槽位词<S:phone_call>的槽位标识为:2_1,例如:槽位词库({槽位词:场景标识_意图标识}):{打电话:2_1,呼叫:2_1,拨打:2_1,打给:2_1}。
步骤302、将电话号码的位置用“N”替换,查询请求模板配置结果为:
<S:phone_call>_N,预计覆盖[打电话/呼叫/拨打/打给]XXX,编码信息为:1_N;
N_<S:phone_call>,预计覆盖XXX[打电话/呼叫/拨打/打给],编码信息为:N_1。
然后,按{场景标识:{拼接查询请求模板编码信息:意图标识_slot_ratio@条件信息}}的格式存储查询请求模板信息:{2:{1_N:1_0.7@N$3#15,N_1:1_0.7@N$3#15}},其中,slot_ratio是根据开发迭代经验设置的命中率阈值,此处假设是0.7。
步骤303、将模板信息存储在db数据文件中。
步骤304、在用户呼唤语音助手应用程序时,若用户语音输入的query为:小v帮我打电话给12345678910,则语音助手客户端可以调用自动语音识别(Automatic SpeechRecognition,ASR)算法将语音转为文本信息,再通过将文本信息传给NLU算法接口(即本申请实施例提供的意图识别方法的逻辑编码的封装接口)获取query的意图分析结果。
例如:对于Query:小v帮我打电话给12345678910,获取其中每一个字符的位置信息分别为:0 1 2 3 4 5 6 7 8……18。
正则提取出Query中的纯数字“12345678910”,其位置信息是[8,18],按该位置截断,保留其它部分进行第一切词处理,位于该数字之前的文本为:小v帮我打电话给;位于该数字之后的文本:无,所以仅对“小v帮我打电话给”这个进行第一切词处理,假设最长切词长度为3,最短是2,则第一切词处理得到的第一切词为:小v、小v帮、v帮、v帮我、帮我、帮我打、我打、我打电、打电、打电话、电话、电话给、话给。
步骤305、将上述第一切词与槽位词库中的槽位词进行匹配,假设槽位词库为{打电话:2_1,呼叫:2_1,拨打:2_1,打给:2_1},则只有“打电话”搜索到匹配成功的目标槽位词,该目标槽位词的编码信息为2_1。
步骤306、对目标槽位词的编码信息中的场景标识和槽位标识进行拆解,得到场景标识2和槽位标识1。将命中的槽位词“打电话”,在原句中对应位置替换成槽位标识1,正则提取出来的纯数字位置替换成符号标识N,则查询请求转换为:小v帮我_1_给_N。然后,将其它未处理过的文本位置替换成W或空,得到的待检索模板的编码信息为:W_1_W_N、1_W_N、W_1_N、1_N。
步骤307、在场景2的查询请求模板库中搜索上述待检索模板。
假设2场景下的查询请求模板集合有{1_N:1_0.7@N$3#15,N_1:1_0.7@N$3#15}:
则只有待检索模板1_N能够查找到匹配的查询请求模板,此后还需验证查询请求模板的条件信息是否满足:
1.N的位置是[8,18],长度是11,满足配置的N对应的长度范围[3,15];
2.槽位词1的位置信息是[4,6],长度3,则命中的槽位长度是3+11=14,query总长度是19,slot_ratio=14÷19=0.73>0.7,满足slot_ratio设置。
查询请求模板的条件信息都满足,则该条query命中了1_N这个模板,基于该查询请求模板的场景标识2可以确定该条query对应电话场景;基于该查询请求模板的场景标识1可以确定该条query对应打电话意图。
最后,可以将上述query和query的查询结果封装成JS对象简谱(JavaScriptObject Notation,JSON):{query:小v帮我打电话给12345678910,scene:电话,intent:打电话,slot:{phone_num:12345678910}},并将该JSON传给语音助手客户端。
步骤308、语音助手客户端得到该query的意图结果是打电话,同时关键的槽位电话号码槽位为:12345678910,终端执行拨打12345678910电话的意图。
以分析用户query的新建日程为例,对于如图3中所示的线上query,虚线框中为包含时间信息的字符串(T),实线框中为未包含意图相关信息的字符串(W)。
对于日程场景,槽位词库、场景标识、意图标识以及查询请求模板的示例如下:
槽位词库({槽位词:场景标识_意图标识}):{提醒我:3_1};
场景标识库:{3:日程};
意图标识库:{3:{1:新建日程}};
查询请求模板可抽象为:{3:{T_1_W:1_0.9@T$3#15_W$3#30}},条件信息都是根据经验设置。
电话场景和日程场景结合时的槽位词库、场景标识、意图标识以及查询请求模板的示例如下:
槽位词库:{打电话:2_1,呼叫:2_1,拨打:2_1,打给:2_1,提醒我:3_1};
场景标识库:{3:日程,2:电话};
意图标识库:{3:{1:新建日程},2:{1:打电话}};
查询请求模板库:{2:{1_N:1_0.7@N$3#15,N_1:1_0.7@N$3#15},3:{T_1_W:1_0.9@T$3#15_W$3#30}}。
此时,假设用户的query为“十一点钟提醒我给杨总打电话”。则先通过时间正则提取出包含时间信息的文本内容:十一点钟,然后对“提醒我给杨总打电话”减小第一切词处理,得到第一切词,该第一切词中的“提醒我”命中槽位词库中的3_1,“打电话”命中槽位词库中的2_1。
按每个场景构建模板:{3:T_1_W、T_1}、{2:T_W_1、T_1},搜索每个场景下的查询请求模板库,其中,场景2没有命中的查询请求模板,场景3命中查询请求模板:T_1_W。
验证场景3下命中的查询请求模板关联的条件信息是否满足,其中W(给杨总打电话)位置长度范围为[3,30],满足条件信息;slot_ratio=13÷13=1>0.9,满足条件信息,所以该条query的意图为场景3(日程)下意图标识为1的意图(新建日程)。
通过以上举例可知,本申请的一些实施例中提供的意图识别方法,可以自定义的一些查询请求模板,使得配置较少的查询请求模板就可识别到较多query,扩大query的召回范围。同时简易的查询请求模板配置规则也使得意图识别方法的开发周期变短。
在本申请的一些实施方式中,还可以增加用户个性化词库(高频槽位词的词库),进一步改善意图识别效率;除此之外,对于未召回的query,增加了基于服务器识别并根据识别结果补充槽位的过程,能够实现自动化扩充槽位。
例如:本实施例的意图识别方法包括以下步骤:
步骤401至步骤403与上述实施例中的步骤201至步骤203相同,在此不再赘述。
步骤404、构建高频词库,结合该词库对用户query进行切词。
该方案是部署于手机端侧,也就是说请求该算法接口的只有一个用户的query,每一个用户使用语音助手的query都有一些习惯语或者用户每天问的问题是相对固定的,上述高频词库可以理解为用户的个性化词库。
在本申请的一些实施例中,可统计每一次用户query在检索过程中命中的词汇,记录词频以及每个词识别的意图信息,实时存储于高频词库中,格式为{槽位词:[场景标识_意图标识_槽位词标识,频次]}。该高频词库包括用户高频使用的词汇,例如:记录使用频次最高的1000个词汇)。
本步骤中,在检索用户query的过程中,首先基于正则表达式提取用户query中的时间、纯数字或英文的字符串,然后对于剩下的汉字文本信息遍历一遍高频词库,查看当前query中的汉字文本信息是否包含高频词库中的词汇,如果包含,则直接按照命中的高频槽位词切分query;如果query都命中了高频词库,则直接根据每个词对应的意图信息判别此时query的意图。
比如:用户固定的每天问“现在几点了”,高频词库中存储的信息为{“现在”:[2_1],”几点了”:[2_1]},此时检索高频词库直接将query切分为现在、几点了,且这两个槽位词对应的是一个意图2_1,那我们就能直接识别到意图,不必再进行一下步骤。
对于query中的没有命中高频词库的切词,可以按照如图4所示过程进行第二切词处理,以得到二次切词,并造槽位词库中检索二次切词,当检索到与槽位词库中的模板槽位词匹配的二次切词时,将该二次切词补充到高频词表中。
步骤405至步骤407,可以按照与以上实施例中的步骤205至步骤207相同的方式基于二次切词与槽位词库进行槽位匹配,以及基于待检索模板与查询请求模板进行匹配,以实现对query的槽位识别和意图识别。
步骤408、对于在步骤407中成功召回的query,将意图识别结果传送给语音助手客户端,以使语音助手客户端根据协议好的字段执行对应的操作;对于在步骤407中未召回的query,可以按照如图5所示方式进行处理,即先记录该未召回的query,等待恢复联网时将该未召回的query发送至部署有大语言模型的服务器进行分析。
在本申请的一些实施例中,如果已识别到当前query的意图结果,就执行该意图结果对应命令,同时在高频词库更新对应高频槽位词的词频,如词频+1。
在另一些实施方式中,如果未能识别到当前query的意图结果,则客户端不执行query对应的指令,只是提示用户无法解析query。同时,将该未解析的query存储在数据库中。
一般用户使用手机的网络状态是:95%有网状态,5%无网或弱网状态,基于此,记录的未解析的query可以在满足一定条件后请求云端服务进行解析:
1.有网;
2.用户电量充足:防止因为向云端服务上传未解析的query所消耗电量影响用户正常使用其他功能;
其中,将未解析的query传回云端服务器,可以利用云端服务器上部署的大语言模型分别解析各个query,首先根据已有的意图范围,对query进行意图分类;得到意图后,再根据该意图下的槽位范围,对query进行槽位提取,最终得到槽位提取结果,手机获取到意图识别结果和槽位提取结果后,分析需要补充哪些词,将新槽位词补充到槽位词库以及查询请求模板中。这样用户下次在无网情况下询问相同的query就可以得到召回结果。如此一直迭代,每个用户都会有一份个性化的高频词库,同时召回范围会逐渐自动化扩充。
需要说明的是,模板库中可以存储至少两个不同场景下的查询请求模板,例如:假设当前数据库包括:
1、包括至少两个场景下的查询请求模板的模板库:
{2:{1_N:1_0.7@N$3#15,N_1:1_0.7@N$3#15},3:{T_1_W:1_0.9@T$3#15_W$3#30}1:{1_2:1_0.8}};
2、包括模板库的各个查询请求模板中的槽位词的槽位词库:
{打电话(<S:phone_call>):2_1,呼叫(<S:phone_call>):2_1,拨打(<S:phone_call>):2_1,打给(<S:phone_call>):2_1,提醒我(<S:remind_me>):3_1,现在:1_1(<S:now>),当前(<S:now>):1_1,几点了(<S:ask_time>):1_2,时间(<S:ask_time>):1_2}。
需要说明的是,以上槽位词库中的斜体字符并不存储在槽位词库中,此处仅作为实例以便于理解。
基于以上槽位词库,可以确定分词长度的最小长度为2,最大长度为3。
3、槽位词库中槽位名称与编码信息的映射关系:{<S:phone_call>:2_1,<S:remind_me>:3_1,<S:now>:1_1,<S:ask_time>1_2};
4、场景标识库:{3:日程,2:电话,1:日历};
5、意图标识库:{3:{1:新建日程},2:{1:打电话},1:{1:询问时间}}。
假设用户经常询问“现在几点了”、“当前时间”,构建的高频词库中的高频槽位词为:{现在:[1_1_1,99],几点了:[1_1_2,67],当前:[1_1_1,78],时间:[1_1_2]},该高频槽位词的格式为{槽位词:[场景标识_意图标识_槽位词编码,频次]}。
此时,根据高频词库的命中情况,分为以下两种情况:
1)当用户再次询问“现在几点了”时,首先在高频词库中搜索,且命中了高频槽位词{现在:[1_1_1,99],几点了:[1_1_2,67]},拆解该高频槽位词的编码信息,得到的场景标识都为1,意图标识都为1,则可以确定该“现在几点了”全部命中,其中,场景标识1对应的日历,意图标识1命中的询问时间。
2)当用户询问“现在几点”时,高频词库命中“现在”,而“几点”未命中,则继续对未命中的“几点”执行分词,由于“几点”已经是最小分词长度,所以无需继续分词。
由于此时分词结果只有“几点”,从槽位词库(模板槽位词)中检索该“几点”,若未检索到,则该条query无法识别,记录下该条query。等待用户联网后,终端后台请求服务器的大语言模型服务,以使用服务器的大语言模型识别该query的意图是“新建日程”、“打电话”还是“询问时间”,本举例中假设意图识别结果为询问时间”,此后,可以进一步同时获取到大语言模型的槽位识别结果:现在(<S:now>)、几点(<S:ask_time>)。该服务器向终端返回结果:{scene:日历,intent:询问时间,slot:{now:现在,ask_time:几点}}。终端在接收到该结果后,判断哪些槽位词需要补充,例如:<S:now>中已有“现在”,不补充槽位词“现在”;<S:ask_time>中没有“几点”,则将“几点”补充到槽位词中;
最终,更新后的槽位词库为:{打电话(<S:phone_call>):2_1,呼叫(<S:phone_call>):2_1,拨打(<S:phone_call>):2_1,打给(<S:phone_call>):2_1,提醒我(<S:remind_me>):3_1,现在:1_1(<S:now>),当前(<S:now>):1_1,几点了(<S:ask_time>):1_2,时间(<S:ask_time>):1_2,几点:(<S:ask_time>):1_2}。
这样,用户下一次询问“现在几点了”时,就可以就高频词库识别用户意图。
在以上实施例中,通过构建用户的高频词库,随着时间累计,用户query意图识别的效率增加,且叠加服务器基于大语言模型进行自动化槽位补充的机制,每个用户询问query的召回率会逐渐增大。
本申请实施例提供的意图识别方法,执行主体可以为意图识别装置。本申请实施例中以意图识别装置执行意图识别方法为例,说明本申请实施例提供的意图识别装置。
参阅图6,本申请实施例提供的一种意图识别装置600包括以下模块:
处理模块601,用于对查询请求中的汉字文本信息进行第一切词处理,得到N个切词;
确定模块602,用于根据预先存储的槽位词库和高频词库中的与所述N个切词中至少一个匹配的槽位词,确定所述查询请求的请求意图;
其中,N为正整数;所述槽位词库包括至少一个模板槽位词,每个查询请求模板对应至少一个模板槽位词,至少一个查询请求模板的关联信息包括所述请求意图;所述高频词库包括至少一个高频槽位词,所述至少一个高频槽位词的关联信息包括所述请求意图。
在本申请的一些实施例中,所述模板槽位词关联的编码信息包括场景标识和槽位标识,所述查询请求模板包括场景标识、意图标识和槽位标识,所述场景标识和所述槽位标识指示所述查询请求模板对应的模板槽位词。
在本申请的一些实施例中,所述查询请求模板还包括符号标识,所述符号标识对应的参考字符串包括以下至少一项:数字字符串、英文字符串、时间字符串、不包含意图相关信息的字符串;
确定模块602具体用于:
获取预先存储的槽位词库中与所述N个切词中至少一个匹配的模板槽位词;
根据与所述N个切词中至少一个匹配的模板槽位词的编码信息、所述查询请求中的参考字符串、所述N个切词和所述参考字符串的排列顺序,生成待检索模板;其中,所述待检索模板包括场景标识、符号标识和槽位标识,所述待检索模板中的符号标识与所述参考字符串对应;
根据模板库中与所述待检索模板匹配的查询请求模板中的意图标识,确定所述查询请求的请求意图。
在本申请的一些实施例中,所述确定模块具体用于:
获取所述待检索模板中的场景标识;
根据所述检索模板中的场景标识,获取模板库中的候选查询请求模板,所述查询请求模板与所述检索模板包含相同的场景标识;
根据与所述待检索模板匹配的候选查询请求模板中的意图标识,确定所述查询请求的请求意图。
在本申请的一些实施例中,所述查询请求模板具有关联的条件信息,所述条件信息包括以下至少一项:
命中率阈值;
与所述查询请求模板中的符号标识关联的长度范围;
其中,与所述待检索模板匹配的查询请求模板满足以下条件中的至少一项:
所述查询请求中的命中文本信息所占的长度比例大于或等于所述命中率阈值,其中,所述命中文本信息为命中标识对应的文本信息,所述命中标识为所述待检索模板在所述查询请求模板中命中的符号标识和槽位标识;
所述查询请求中与所述待检索模板中的符号标识对应的参考字符串的长度位于所述符号标识关联的长度范围内。
在本申请的一些实施例中,处理模块601具体用于:
获取所述槽位词库中的模板槽位词的最大长度和最小长度;
根据所述最大长度和最小长度,对所述汉字文本信息进行第一切词处理,使得到的每个切词的长度大于或等于所述最小长度,且小于或等于所述最大长度。
在本申请的一些实施例中,意图识别装置600还包括:
获取模块,用于获取语音查询服务的线上工作日志,所述线上工作日志包括以下信息:历史查询请求、所述历史查询请求所应用的场景、所述历史查询请求的请求意图;
确定模块602,还用于根据所述历史查询请求,将所述历史查询请求中的L个词汇确定为所述模板槽位词;L为正整数;
确定模块602,还用于基于所述模板槽位词、所述历史查询请求、所述历史查询请求所应用的场景、所述历史查询请求的请求意图和标识关联信息,确定所述模板槽位词的编码信息和查询请求模板;
其中,所述标识关联信息包括以下至少一项:所述模板槽位词与槽位标识之间的关联信息、所述历史查询请求所应用的场景与场景标识之间的关联信息、所述历史查询请求的请求意图与意图标识之间的关联信息、所述历史查询请求中的参考字符串与符号标识之间的关联信息;
其中,所述参考字符串包括以下至少一项:数字字符串、英文字符串、时间字符串、不包含意图相关信息的字符串。
在本申请的一些实施例中,确定模块602具体用于:
根据所述高频词库中与所述N个切词中的至少一个切词匹配的高频槽位词所关联编码信息中的场景标识和意图标识,确定所述查询请求的场景和请求意图;
其中,所述高频槽位词包括目标用户的历史查询请求中使用频次大于或等于预设阈值的阈值,所述高频槽位词关联的编码信息包括场景标识、意图标识、槽位标识和所述高频槽位词的使用频次。
在本申请的一些实施例中,处理模块601,还用于在所述高频词库中未查找到与所述N个切词中的至少一个切词匹配的高频槽位词的情况下,对所述至少一个切词进行第二切词处理,得到M个二次切词,其中,M为正整数;
意图识别装置600还包括:
更新模块,用于根据所述槽位词库中与所述M个二次切词匹配的模板槽位词,更新所述高频词库中的高频槽位词。
在本申请的一些实施例中,意图识别装置600还包括:
记录模块,用于在所述查询请求未召回的情况下,记录所述查询请求;
发送模块,用于在获取到指示信息的情况下,向服务器发送第一消息,所述第一消息包括所述查询请求,所述服务器部署有大语言模型;
接收模块,用于接收所述服务器发送的第二消息,所述第二消息包括所述查询请求对应的意图信息和槽位信息;
更新模块,用于根据所述查询请求对应的意图信息和槽位信息,更新所述槽位词库、所述高频词库中的至少一项;
其中,所述指示信息用于指示以下至少一项:恢复联网状态、剩余电量大于或等于预设的电量阈值。
本申请实施例中的意图识别装置600可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的意图识别装置600可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的意图识别装置600能够实现前述意图识别方法实施例实现的各个过程,且能够取得与前述意图识别方法实施例相同的有益效果,为避免重复,这里不再赘述。
可选地,如图7所示,本申请实施例还提供一种电子设备700,包括处理器701和存储器702,存储器702上存储有可在所述处理器701上运行的程序或指令,该程序或指令被处理器701执行时实现前述意图识别方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图8为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备800包括但不限于:射频单元801、网络模块802、音频输出单元803、输入单元804、传感器805、显示单元806、用户输入单元807、接口单元808、存储器809、以及处理器810等部件。
本领域技术人员可以理解,电子设备800还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器810逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图8中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器810,用于对查询请求中的汉字文本信息进行第一切词处理,得到N个切词;
处理器810,还用于将所述至少一个第一切词与预先存储的模板槽位词和高频槽位词中的至少一项进行匹配;
处理器810,还用于根据预先存储的槽位词库和高频词库中的与所述N个切词中至少一个匹配的槽位词,确定所述查询请求的请求意图;
其中,N为正整数;所述槽位词库包括至少一个模板槽位词,每个查询请求模板对应至少一个模板槽位词,至少一个查询请求模板的关联信息包括所述请求意图;所述高频词库包括至少一个高频槽位词,所述至少一个高频槽位词的关联信息包括所述请求意图。
在本申请的一些实施例中,所述模板槽位词关联的编码信息包括场景标识和槽位标识,所述查询请求模板包括场景标识、意图标识和槽位标识,所述场景标识和所述槽位标识指示所述查询请求模板对应的模板槽位词。
在本申请的一些实施例中,所述查询请求模板还包括符号标识,所述符号标识对应的参考字符串包括以下至少一项:数字字符串、英文字符串、时间字符串、不包含意图相关信息的字符串;
处理器810执行的所述根据预先存储的槽位词库和高频词库中的与所述N个切词中至少一个匹配的槽位词,确定所述查询请求的请求意图,包括:
获取预先存储的槽位词库中与所述N个切词中至少一个匹配的模板槽位词;
根据与所述N个切词中至少一个匹配的模板槽位词的编码信息、所述查询请求中的参考字符串、所述N个切词和所述参考字符串的排列顺序,生成待检索模板;其中,所述待检索模板包括场景标识、符号标识和槽位标识,所述待检索模板中的符号标识与所述参考字符串对应;
根据所述模板库中与所述待检索模板匹配的查询请求模板中的意图标识,确定所述查询请求的请求意图。
在本申请的一些实施例中,处理器810执行的所述根据模板库中与所述待检索模板匹配的查询请求模板中的意图标识,确定所述查询请求的请求意图,包括:
获取所述待检索模板中的场景标识;
根据所述检索模板中的场景标识,获取模板库中的候选查询请求模板,所述查询请求模板与所述检索模板包含相同的场景标识;
根据与所述待检索模板匹配的候选查询请求模板中的意图标识,确定所述查询请求的请求意图。
在本申请的一些实施例中,所述查询请求模板具有关联的条件信息,所述条件信息包括以下至少一项:
命中率阈值;
与所述查询请求模板中的符号标识关联的长度范围;
其中,与所述待检索模板匹配的查询请求模板满足以下条件中的至少一项:
所述查询请求中的命中文本信息所占的长度比例大于或等于所述命中率阈值,其中,所述命中文本信息为命中标识对应的文本信息,所述命中标识为所述待检索模板在所述查询请求模板中命中的符号标识和槽位标识;
所述查询请求中与所述待检索模板中的符号标识对应的参考字符串的长度位于所述符号标识关联的长度范围内。
在本申请的一些实施例中,处理器810执行的所述对查询请求中的汉字文本信息进行第一切词处理,得到N个切词,包括:
获取所述槽位词库中的模板槽位词的最大长度和最小长度;
根据所述最大长度和最小长度,对所述汉字文本信息进行第一切词处理,使得到的每个切词的长度大于或等于所述最小长度,且小于或等于所述最大长度。
在本申请的一些实施例中,处理器810在执行的所述对查询请求中的汉字文本信息进行第一切词处理,得到N个切词之前,还用于:
获取语音查询服务的线上工作日志,所述线上工作日志包括以下信息:历史查询请求、所述历史查询请求所应用的场景、所述历史查询请求的请求意图;
根据所述历史查询请求,将所述历史查询请求中的L个词汇确定为所述模板槽位词;L为正整数;
基于所述模板槽位词、所述历史查询请求、所述历史查询请求所应用的场景、所述历史查询请求的请求意图和标识关联信息,确定所述模板槽位词的编码信息和查询请求模板;
其中,所述标识关联信息包括以下至少一项:所述模板槽位词与槽位标识之间的关联信息、所述历史查询请求所应用的场景与场景标识之间的关联信息、所述历史查询请求的请求意图与意图标识之间的关联信息、所述历史查询请求中的参考字符串与符号标识之间的关联信息;
其中,所述参考字符串包括以下至少一项:数字字符串、英文字符串、时间字符串、不包含意图相关信息的字符串。
在本申请的一些实施例中,处理器810执行的所述根据预先存储的槽位词库和高频词库中的与所述N个切词中至少一个匹配的槽位词,确定所述查询请求的请求意图,包括:
根据所述高频词库中与所述N个切词中的至少一个切词匹配的高频槽位词所关联编码信息中的场景标识和意图标识,确定所述查询请求的场景和请求意图;
其中,所述高频槽位词包括目标用户的历史查询请求中使用频次大于或等于预设阈值的阈值,所述高频槽位词关联的编码信息包括场景标识、意图标识、槽位标识和所述高频槽位词的使用频次。
在本申请的一些实施例中,处理器810,还用于:
在所述高频词库中未查找到与所述N个切词中的至少一个切词匹配的高频槽位词的情况下,对所述至少一个切词进行第二切词处理,得到M个二次切词,其中,M为正整数;
根据所述槽位词库中与所述M个二次切词匹配的模板槽位词,更新所述高频词库中的高频槽位词。
在本申请的一些实施例中,处理器810,还用于:
在所述查询请求未召回的情况下,记录所述查询请求;
在获取到指示信息的情况下,向服务器发送第一消息,所述第一消息包括所述查询请求,所述服务器部署有大语言模型;
接收所述服务器发送的第二消息,所述第二消息包括所述查询请求对应的意图信息和槽位信息;
根据所述查询请求对应的意图信息和槽位信息,更新所述槽位词库、所述高频词库中的至少一项;
其中,所述指示信息用于指示以下至少一项:恢复联网状态、剩余电量大于或等于预设的电量阈值。
可以理解,本实施例中提及的各实现方式的实现过程可以参照前述意图识别方法实施例的相关描述,并达到相同或相应的技术效果,为避免重复,在此不再赘述。
应理解的是,本申请实施例中,输入单元804可以包括图形处理器(GraphicsProcessing Unit,GPU)8041和麦克风8042,图形处理器8041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元806可包括显示面板8061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板8061。用户输入单元807包括触控面板8071以及其他输入设备8072中的至少一种。触控面板8071,也称为触摸屏。触控面板8071可包括触摸检测装置和触摸控制器两个部分。其他输入设备8072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器809可用于存储软件程序以及各种数据。存储器809可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器809可以包括易失性存储器或非易失性存储器,或者,存储器809可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器809包括但不限于这些和任意其它适合类型的存储器。
处理器810可包括一个或多个处理单元;可选的,处理器810集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器810中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述意图识别方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述意图识别方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例提供一种计算机程序产品,该计算机程序产品包括计算机指令,所述计算机指令被处理器执行时实现如上述意图识别方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (21)

1.一种意图识别方法,其特征在于,所述方法包括:
对查询请求中的汉字文本信息进行第一切词处理,得到N个切词;
根据预先存储的槽位词库和高频词库中的与所述N个切词中至少一个匹配的槽位词,确定所述查询请求的请求意图;
其中,N为正整数;所述槽位词库包括至少一个模板槽位词,每个查询请求模板对应至少一个模板槽位词,至少一个查询请求模板的关联信息包括所述请求意图;所述高频词库包括至少一个高频槽位词,所述至少一个高频槽位词的关联信息包括所述请求意图。
2.根据权利要求1所述的方法,其特征在于,所述模板槽位词关联的编码信息包括场景标识和槽位标识,所述查询请求模板包括场景标识、意图标识和槽位标识,所述场景标识和所述槽位标识指示所述查询请求模板对应的模板槽位词。
3.根据权利要求2所述的方法,其特征在于,所述查询请求模板还包括符号标识,所述符号标识对应的参考字符串包括以下至少一项:数字字符串、英文字符串、时间字符串、不包含意图相关信息的字符串;
所述根据预先存储的槽位词库和高频词库中的与所述N个切词中至少一个匹配的槽位词,确定所述查询请求的请求意图,包括:
获取预先存储的槽位词库中与所述N个切词中至少一个匹配的模板槽位词;
根据与所述N个切词中至少一个匹配的模板槽位词的编码信息、所述查询请求中的参考字符串、所述N个切词和所述参考字符串的排列顺序,生成待检索模板;其中,所述待检索模板包括场景标识、符号标识和槽位标识,所述待检索模板中的符号标识与所述参考字符串对应;
根据模板库中与所述待检索模板匹配的查询请求模板中的意图标识,确定所述查询请求的请求意图。
4.根据权利要求3所述的方法,其特征在于,所述根据模板库中与所述待检索模板匹配的查询请求模板中的意图标识,确定所述查询请求的请求意图,包括:
获取所述待检索模板中的场景标识;
根据所述检索模板中的场景标识,获取模板库中的候选查询请求模板,所述查询请求模板与所述检索模板包含相同的场景标识;
根据与所述待检索模板匹配的候选查询请求模板中的意图标识,确定所述查询请求的请求意图。
5.根据权利要求4所述的方法,其特征在于,所述查询请求模板具有关联的条件信息,所述条件信息包括以下至少一项:
命中率阈值;
与所述查询请求模板中的符号标识关联的长度范围;
其中,与所述待检索模板匹配的查询请求模板满足以下条件中的至少一项:
所述查询请求中的命中文本信息所占的长度比例大于或等于所述命中率阈值,其中,所述命中文本信息为命中标识对应的文本信息,所述命中标识为所述待检索模板在所述查询请求模板中命中的符号标识和槽位标识;
所述查询请求中与所述待检索模板中的符号标识对应的参考字符串的长度位于所述符号标识关联的长度范围内。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述对查询请求中的汉字文本信息进行第一切词处理,得到N个切词,包括:
获取所述槽位词库中的模板槽位词的最大长度和最小长度;
根据所述最大长度和最小长度,对所述汉字文本信息进行第一切词处理,使得到的每个切词的长度大于或等于所述最小长度,且小于或等于所述最大长度。
7.根据权利要求1至5中任一项所述的方法,其特征在于,在所述对查询请求中的汉字文本信息进行第一切词处理,得到N个切词之前,所述方法还包括:
获取语音查询服务的线上工作日志,所述线上工作日志包括以下信息:历史查询请求、所述历史查询请求所应用的场景、所述历史查询请求的请求意图;
根据所述历史查询请求,将所述历史查询请求中的L个词汇确定为所述模板槽位词;L为正整数;
基于所述模板槽位词、所述历史查询请求、所述历史查询请求所应用的场景、所述历史查询请求的请求意图和标识关联信息,确定所述模板槽位词的编码信息和查询请求模板;
其中,所述标识关联信息包括以下至少一项:所述模板槽位词与槽位标识之间的关联信息、所述历史查询请求所应用的场景与场景标识之间的关联信息、所述历史查询请求的请求意图与意图标识之间的关联信息、所述历史查询请求中的参考字符串与符号标识之间的关联信息;
其中,所述参考字符串包括以下至少一项:数字字符串、英文字符串、时间字符串、不包含意图相关信息的字符串。
8.根据权利要求1至5中任一项所述的方法,其特征在于,所述根据预先存储的槽位词库和高频词库中的与所述N个切词中至少一个匹配的槽位词,确定所述查询请求的请求意图,包括:
根据所述高频词库中与所述N个切词中的至少一个切词匹配的高频槽位词所关联编码信息中的场景标识和意图标识,确定所述查询请求的场景和请求意图;
其中,所述高频槽位词包括目标用户的历史查询请求中使用频次大于或等于预设阈值的阈值,所述高频槽位词关联的编码信息包括场景标识、意图标识、槽位标识和所述高频槽位词的使用频次。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在所述高频词库中未查找到与所述N个切词中的至少一个切词匹配的高频槽位词的情况下,对所述至少一个切词进行第二切词处理,得到M个二次切词,其中,M为正整数;
根据所述槽位词库中与所述M个二次切词匹配的模板槽位词,更新所述高频词库中的高频槽位词。
10.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
在所述查询请求未召回的情况下,记录所述查询请求;
在获取到指示信息的情况下,向服务器发送第一消息,所述第一消息包括所述查询请求,所述服务器部署有大语言模型;
接收所述服务器发送的第二消息,所述第二消息包括所述查询请求对应的意图信息和槽位信息;
根据所述查询请求对应的意图信息和槽位信息,更新所述槽位词库、所述高频词库中的至少一项;
其中,所述指示信息用于指示以下至少一项:恢复联网状态、剩余电量大于或等于预设的电量阈值。
11.一种意图识别装置,其特征在于,所述装置包括:
处理模块,用于对查询请求中的汉字文本信息进行第一切词处理,得到N个切词;
确定模块,用于根据预先存储的槽位词库和高频词库中的与所述N个切词中至少一个匹配的槽位词,确定所述查询请求的请求意图;
其中,N为正整数;所述槽位词库包括至少一个模板槽位词,每个查询请求模板对应至少一个模板槽位词,至少一个查询请求模板的关联信息包括所述请求意图;所述高频词库包括至少一个高频槽位词,所述至少一个高频槽位词的关联信息包括所述请求意图。
12.根据权利要求11所述的装置,其特征在于,所述模板槽位词关联的编码信息包括场景标识和槽位标识,所述查询请求模板包括场景标识、意图标识和槽位标识,所述场景标识和所述槽位标识指示所述查询请求模板对应的模板槽位词。
13.根据权利要求11所述的装置,其特征在于,所述查询请求模板还包括符号标识,所述符号标识对应的参考字符串包括以下至少一项:数字字符串、英文字符串、时间字符串、不包含意图相关信息的字符串;
所述确定模块具体用于:
获取预先存储的槽位词库中与所述N个切词中至少一个匹配的模板槽位词;
根据与所述N个切词中至少一个匹配的模板槽位词的编码信息、所述查询请求中的参考字符串、所述N个切词和所述参考字符串的排列顺序,生成待检索模板;其中,所述待检索模板包括场景标识、符号标识和槽位标识,所述待检索模板中的符号标识与所述参考字符串对应;
根据模板库中与所述待检索模板匹配的查询请求模板中的意图标识,确定所述查询请求的请求意图。
14.根据权利要求13所述的装置,其特征在于,所述确定模块具体用于:
获取所述待检索模板中的场景标识;
根据所述检索模板中的场景标识,获取模板库中的候选查询请求模板,所述查询请求模板与所述检索模板包含相同的场景标识;
根据与所述待检索模板匹配的候选查询请求模板中的意图标识,确定所述查询请求的请求意图。
15.根据权利要求14所述的装置,其特征在于,所述查询请求模板具有关联的条件信息,所述条件信息包括以下至少一项:
命中率阈值;
与所述查询请求模板中的符号标识关联的长度范围;
其中,与所述待检索模板匹配的查询请求模板满足以下条件中的至少一项:
所述查询请求中的命中文本信息所占的长度比例大于或等于所述命中率阈值,其中,所述命中文本信息为命中标识对应的文本信息,所述命中标识为所述待检索模板在所述查询请求模板中命中的符号标识和槽位标识;
所述查询请求中与所述待检索模板中的符号标识对应的参考字符串的长度位于所述符号标识关联的长度范围内。
16.根据权利要求11至15中任一项所述的装置,其特征在于,所述处理模块具体用于:
获取所述槽位词库中的模板槽位词的最大长度和最小长度;
根据所述最大长度和最小长度,对所述汉字文本信息进行第一切词处理,使得到的每个切词的长度大于或等于所述最小长度,且小于或等于所述最大长度。
17.根据权利要求11至15中任一项所述的装置,其特征在于,所述装置还包括:
获取模块,用于获取语音查询服务的线上工作日志,所述线上工作日志包括以下信息:历史查询请求、所述历史查询请求所应用的场景、所述历史查询请求的请求意图;
所述确定模块,还用于根据所述历史查询请求,将所述历史查询请求中的L个词汇确定为所述模板槽位词;L为正整数;
所述确定模块,还用于基于所述模板槽位词、所述历史查询请求、所述历史查询请求所应用的场景、所述历史查询请求的请求意图和标识关联信息,确定所述模板槽位词的编码信息和查询请求模板;
其中,所述标识关联信息包括以下至少一项:所述模板槽位词与槽位标识之间的关联信息、所述历史查询请求所应用的场景与场景标识之间的关联信息、所述历史查询请求的请求意图与意图标识之间的关联信息、所述历史查询请求中的参考字符串与符号标识之间的关联信息;
其中,所述参考字符串包括以下至少一项:数字字符串、英文字符串、时间字符串、不包含意图相关信息的字符串。
18.根据权利要求11至15中任一项所述的装置,其特征在于,所述确定模块,具体用于:
根据所述高频词库中与所述N个切词中的至少一个切词匹配的高频槽位词所关联编码信息中的场景标识和意图标识,确定所述查询请求的场景和请求意图;
其中,所述高频槽位词包括目标用户的历史查询请求中使用频次大于或等于预设阈值的阈值,所述高频槽位词关联的编码信息包括场景标识、意图标识、槽位标识和所述高频槽位词的使用频次。
19.根据权利要求18所述的装置,其特征在于,所述处理模块,还用于在所述高频词库中未查找到与所述N个切词中的至少一个切词匹配的高频槽位词的情况下,对所述至少一个切词进行第二切词处理,得到M个二次切词,其中,M为正整数;
所述装置还包括:
更新模块,用于根据所述槽位词库中与所述M个二次切词匹配的模板槽位词,更新所述高频词库中的高频槽位词。
20.根据权利要求11至15中任一项所述的装置,其特征在于,所述装置还包括:
记录模块,用于在所述查询请求未召回的情况下,记录所述查询请求;
发送模块,用于在获取到指示信息的情况下,向服务器发送第一消息,所述第一消息包括所述查询请求,所述服务器部署有大语言模型;
接收模块,用于接收所述服务器发送的第二消息,所述第二消息包括所述查询请求对应的意图信息和槽位信息;
更新模块,用于根据所述查询请求对应的意图信息和槽位信息,更新所述槽位词库、所述高频词库中的至少一项;
其中,所述指示信息用于指示以下至少一项:恢复联网状态、剩余电量大于或等于预设的电量阈值。
21.一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;其特征在于,
所述处理器,用于读取存储器中的程序实现如权利要求1至10中任一项所述的意图识别方法中的步骤。
CN202410487710.5A 2024-04-23 意图识别方法、意图识别装置及电子设备 Pending CN118260405A (zh)

Publications (1)

Publication Number Publication Date
CN118260405A true CN118260405A (zh) 2024-06-28

Family

ID=

Similar Documents

Publication Publication Date Title
CN106776544B (zh) 人物关系识别方法及装置和分词方法
US9524291B2 (en) Visual display of semantic information
CN106601237B (zh) 交互式语音应答系统及其语音识别方法
US7937402B2 (en) Natural language based location query system, keyword based location query system and a natural language and keyword based location query system
EP3819785A1 (en) Feature word determining method, apparatus, and server
CN110297880B (zh) 语料产品的推荐方法、装置、设备及存储介质
CN111352907A (zh) 流水文件解析方法、装置、计算机设备和存储介质
US12008320B2 (en) System and method for email signature extraction from unstructured text
CN110069769B (zh) 应用标签生成方法、装置及存储设备
CN113961768B (zh) 敏感词检测方法、装置、计算机设备和存储介质
CN107832447A (zh) 用于移动终端的用户反馈纠错方法、装置及其设备
CN111552798B (zh) 基于名称预测模型的名称信息处理方法、装置、电子设备
EP2673687A2 (en) Visual display of semantic information
CN112562684A (zh) 一种语音识别方法、装置和电子设备
CN108763202A (zh) 识别敏感文本的方法、装置、设备及可读存储介质
CN113436614A (zh) 语音识别方法、装置、设备、系统及存储介质
CN113434631A (zh) 基于事件的情感分析方法、装置、计算机设备及存储介质
CN112087473A (zh) 文档下载方法、装置、计算机可读存储介质和计算机设备
CN109697224B (zh) 一种账单消息处理方法、装置和存储介质
CN118260405A (zh) 意图识别方法、意图识别装置及电子设备
US8090750B2 (en) Prompting of an end user with commands
CN114242047A (zh) 一种语音处理方法、装置、电子设备及存储介质
US20180293508A1 (en) Training question dataset generation from query data
CN112579944A (zh) 一种页面跳转处理方法、装置以及电子设备
CN111753548A (zh) 信息获取方法及装置、计算机存储介质、电子设备

Legal Events

Date Code Title Description
PB01 Publication