CN114595696A - 实体消歧方法、实体消歧装置、存储介质与电子设备 - Google Patents
实体消歧方法、实体消歧装置、存储介质与电子设备 Download PDFInfo
- Publication number
- CN114595696A CN114595696A CN202210209046.9A CN202210209046A CN114595696A CN 114595696 A CN114595696 A CN 114595696A CN 202210209046 A CN202210209046 A CN 202210209046A CN 114595696 A CN114595696 A CN 114595696A
- Authority
- CN
- China
- Prior art keywords
- matched
- sentence
- candidate
- current
- dictionary tree
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000004044 response Effects 0.000 claims abstract description 10
- 230000007704 transition Effects 0.000 claims description 25
- 238000012795 verification Methods 0.000 claims description 15
- 238000012216 screening Methods 0.000 claims description 14
- 238000010200 validation analysis Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 2
- 238000003058 natural language processing Methods 0.000 abstract description 3
- 238000012546 transfer Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 7
- 238000000605 extraction Methods 0.000 description 6
- 239000006260 foam Substances 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 241000269817 Centrarchidae Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
Abstract
本公开提供一种实体消歧方法、实体消歧装置、存储介质与电子设备,涉及自然语言处理技术领域。该实体消歧方法包括:确定待识别语句对应的目标意图,并获取所述目标意图的第一词典树和第二词典树,所述第一词典树包含槽位信息,所述第二词典树包含冲突句式;利用所述第一词典树确定所述待识别语句中的关键词对应的候选槽位;通过将各所述关键词对应的候选槽位进行组合,得到第一候选句式;响应于所述第一候选句式的数量大于1,利用所述第二词典树对所述第一候选句式进行匹配,以得到第二候选句式;根据所述第二候选句式得到所述待识别语句对应的目标实体。本公开提高了实体消歧的准确性与效率。
Description
技术领域
本公开涉及自然语言处理技术领域,尤其涉及一种实体消歧方法、实体消歧装置、计算机可读存储介质与电子设备。
背景技术
在自然语言处理中,由于一个词可能具有多个意思,使得实体存在歧义,为语义的识别与理解带来困难。例如,在智能机器人场景中,用户通过语音交互等方式向电子设备(如音箱、手机)输入指令,需要理解指令的语义,从而提供相应的服务。但是通常指令的文本较短,存在歧义的可能性较大,导致智能机器人无法准确理解用户的指令。相关技术中,实体消歧的准确性有待提高。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域技术人员已知的现有技术的信息。
发明内容
本公开提供一种实体消歧方法、实体消歧装置、计算机可读存储介质与电子设备,以至少在一定程度上提高实体消歧的准确性。
根据本公开的第一方面,提供一种实体消歧方法,包括:确定待识别语句对应的目标意图,并获取所述目标意图的第一词典树和第二词典树,所述第一词典树包含槽位信息,所述第二词典树包含冲突句式;利用所述第一词典树确定所述待识别语句中的关键词对应的候选槽位;通过将各所述关键词对应的候选槽位进行组合,得到第一候选句式;响应于所述第一候选句式的数量大于1,利用所述第二词典树对所述第一候选句式进行匹配,以得到第二候选句式;根据所述第二候选句式得到所述待识别语句对应的目标实体。
根据本公开的第二方面,提供一种实体消歧装置,包括:词典树获取模块,被配置为确定待识别语句对应的目标意图,并获取所述目标意图的第一词典树和第二词典树,所述第一词典树包含槽位信息,所述第二词典树包含冲突句式;候选槽位确定模块,被配置为利用所述第一词典树确定所述待识别语句中的关键词对应的候选槽位;第一候选句式确定模块,被配置为通过将各所述关键词对应的候选槽位进行组合,得到第一候选句式;第二候选句式确定模块,被配置为响应于所述第一候选句式的数量大于1,利用所述第二词典树对所述第一候选句式进行匹配,以得到第二候选句式;目标实体输出模块,被配置为根据所述第二候选句式得到所述待识别语句对应的目标实体。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的实体消歧方法及其可能的实现方式。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面的实体消歧方法及其可能的实现方式。
本公开的技术方案具有以下有益效果:
首先,确定待识别语句对应的目标意图,并获取目标意图下包含槽位信息的第一词典树和包含冲突句式的第二词典树;然后,利用第一词典树确定待识别语句中的关键词对应的候选槽位,并组合不同各关键词对应的候选槽位,得到第一候选句式;接下来,在第一候选句式不唯一的情况下,利用第二词典树对第一候选句式进行匹配,以得到第二候选句式;最后,根据第二候选句式得到待识别语句对应的目标实体。一方面,本方案结合了目标意图下的槽位信息与冲突句式,能够针对待识别语句中的关键词进行有效地槽位确定与歧义消解,从而提高实体消歧的准确性。另一方面,通过待识别语句与第一词典树匹配的方式确定候选槽位,并通过第一候选句式与第二词典树匹配的方式确定第二候选句式以实现歧义消解,利用了词典树查找效率较高的优势,能够提高实体消歧的效率。再一方面,本方案中第一词典树与第二词典树均可以基于特定意图下少量的信息而构建,无需投入大量的人力与时间成本,因此方案的实用性较高。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施方式,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本示例性实施方式中一种系统架构的示意图;
图2示出本示例性实施方式中一种实体消歧方法的流程图;
图3示出本示例性实施方式中通过第一词典树对对待识别语句进行匹配的流程图;
图4示出本示例性实施方式中对待识别语句提取关键词并确定候选槽位的示意图;
图5示出本示例性实施方式中通过第二词典树对第一候选句式进行匹配的流程图;
图6示出本示例性实施方式中通过第二词典树对第一候选句式进行匹配的示意图;
图7示出本示例性实施方式中一种实体消歧方法的示意性流程图;
图8示出本示例性实施方式中一种实体消歧装置的结构示意图;
图9示出本示例性实施方式中一种电子设备的结构示意图。
具体实施方式
现在将参考附图描述本公开的示例性实施方式。然而,示例性实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例。提供这些实施方式使得本公开将更加全面和完整,并将示例性实施方式的构思全面地传达给本领域技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
在短文本的场景中,由于短文本存在口语化严重、上下文内容不丰富等缺陷,导致文本语境理解、实体歧义消解的难度更高。此外,中文由于语言自身的特点,与英文相比,语句通常具有多种分词的方式,从而增加了实体的歧义。相关技术针对中文短文本的实体消歧效果很差。
鉴于上述一个或多个问题,本公开的示例性实施方式首先提供一种实体消歧方法,用于对待识别语句输出对应的目标实体,该目标实体可以是待识别语句的真实实体,从而帮助实现自然语言理解。本示例性实施方式中的实体消岐方法可以包括为实现实体消岐所做的其他相关处理,如实体识别、实体链接、实体统一等。
下面结合图1对本示例性实施方式运行环境的系统架构与应用场景进行示例性说明。
图1示出了系统架构的示意图,该系统架构100可以包括终端110与服务器120。其中,终端110可以是智能手机、平板电脑、个人电脑等,终端110可以接收用户输入或指定的待识别语句。服务器120可以泛指提供实体消歧相关服务的后台系统,可以是一台服务器或多台服务器形成的集群。终端110与服务器120之间可以通过有线或无线的通信链路形成连接,以进行数据交互。
在一种实施方式中,用户向终端110输入待识别语句,如用户可以唤起终端110上的智能机器人并输入语音指令,终端110将语音指令转换为文本格式的待识别语句。然后,终端110可以将待识别语句发送至服务器120,服务器120通过执行上述实体消歧方法,得到待识别语句对应的目标实体,并可以将目标实体返回终端110,使得终端110根据目标实体对用户的语音指令做出响应。因此,上述实体消歧方法的执行主体可以是服务器120。
在一种实施方式中,本示例性实施方式也可以基于终端110而单独实现。例如,终端110在获取用户输入的待识别语句后,通过执行上述实体消歧方法,得到待识别语句对应的目标实体。
在一种实施方式中,本示例性实施方式也可以基于服务器120而单独实现。例如,服务器120可以从后台数据库中获取待识别语句,并通过执行上述实体消歧方法,得到待识别语句对应的目标实体。
由上可知,本示例性实施方式中,实体消歧方法的执行主体可以是上述终端110或服务器120。本公开对此不做限定。
下面结合图2对本示例性实施方式中的实体消歧方法进行说明,图2示出了该实体消歧方法的示例性流程,可以包括以下步骤S210至S250:
步骤S210,确定待识别语句对应的目标意图,并获取目标意图的第一词典树和第二词典树,第一词典树包含槽位信息,第二词典树包含冲突句式;
步骤S220,利用第一词典树确定待识别语句中的关键词对应的候选槽位;
步骤S230,通过将各关键词对应的候选槽位进行组合,得到第一候选句式;
步骤S240,响应于第一候选句式的数量大于1,利用第二词典树对第一候选句式进行匹配,以得到第二候选句式;
步骤S250,根据第二候选句式得到待识别语句对应的目标实体。
在上述实体消歧方法中,首先,确定待识别语句对应的目标意图,并获取目标意图下包含槽位信息的第一词典树和包含冲突句式的第二词典树;然后,利用第一词典树确定待识别语句中的关键词对应的候选槽位,并组合不同各关键词对应的候选槽位,得到第一候选句式;接下来,在第一候选句式不唯一的情况下,利用第二词典树对第一候选句式进行匹配,以得到第二候选句式;最后,根据第二候选句式得到待识别语句对应的目标实体。一方面,本方案结合了目标意图下的槽位信息与冲突句式,能够针对待识别语句中的关键词进行有效地槽位确定与歧义消解,从而提高实体消歧的准确性。另一方面,通过待识别语句与第一词典树匹配的方式确定候选槽位,并通过第一候选句式与第二词典树匹配的方式确定第二候选句式以实现歧义消解,利用了词典树查找效率较高的优势,能够提高实体消歧的效率。再一方面,本方案中第一词典树与第二词典树均可以基于特定意图下少量的信息而构建,无需投入大量的人力与时间成本,因此方案的实用性较高。
下面对图2中的每个步骤进行具体说明。
参考图2,在步骤S210中,确定待识别语句对应的目标意图,并获取目标意图的第一词典树和第二词典树,第一词典树包含槽位信息,第二词典树包含冲突句式。
待识别语句是需要进行实体消岐的语句,一般的,实体消岐的目的是确定待识别语句对应的目标实体,该目标实体可用于准确理解待识别语句的语义。因此。本示例性实施方式中的实体消岐方法可用于对待识别语句进行语义识别。
本公开对于待识别语句的来源不做限定,如可以是用户通过任意方式输入的query(查询)语句,也可以是从互联网上获取的语句,如论坛中的对话语句、文章中的语句、视频中提取的语句等。
意图(intent)是指语句所要表达的目的。例如,待识别语句为“播放周星驰的美人鱼”,其对应的目标意图可以是“精准播放多媒体”。本公开对于意图识别的具体方式不做限定。在一种实施方式中,可以预先训练用于意图预测(或分类)的机器学习模型,将待识别语句输入该模型,得到意图预测的结果,即目标意图。
本示例性实施方式中,可以分别针对不同意图预先建立第一词典树和第二词典树。第一词典树包含槽位信息,第二词典树包含冲突句式。槽位信息可以包括不同的词所对应的槽位(slot),槽位可用于从语义层面上表示词的属性。例如,在“精准播放影视”的意图下,“周星驰”一词对应的槽位可以包括[director](导演)与[actor](演员),“美人鱼”一词对应的槽位可以包括[movie_name](电影名)、[tv_name](电视剧名)、[song_name](歌曲名)。冲突句式是指符合人们日常语言习惯的句式,可以由槽位与槽位的上下文所形成。例如,{播放[director]的[movie_name]}是一个冲突句式,而{播放[director]的[song_name]}不是一个冲突句式,前者符合日常说话的习惯,而后者不符合。
假设某领域A共有N个意图,M个槽位。其中Ai表示第i个意图,Ai意图下存在Mi个槽位,表示为集合Si={[slot1]、[slot2]、…、[slotMi]},Mi≥0。不同意图间可共用槽位,例如意图Ai与意图Aj可共用槽位[slot2],表示[slot2]既是意图Ai的槽位,也是意图Aj的槽位。因此M=Len(S1∪S2∪…∪SN)。不同意图间可以不共用冲突句式,即一个冲突句式可以只属于一个意图。不同的冲突句式所包含的槽位一般不完全相同。
在建立第一词典树时,可以先获取某个意图下词与槽位的对应关系,通过将这样的对应关系以树形图的形式加以表示,得到该意图的第一词典树。
在一种实施方式中,可以获取某个意图所属领域(如垂直领域)的基础词典树,该基础词典树如可以是遍历该领域的词典所生成的trie树(一种前缀树)。基础词典树包含了该领域下不同词之间的前缀关系。通过向基础词典树添加该意图下的槽位信息,得到第一词典树。例如,基础词典树中的每个叶子节点表示一个完整的词,可以向叶子节点添加该词对应的槽位,从而完成对该词-槽位的对应关系的添加,当添加全部词-槽位的对应关系后,得到第一词典树。
在建立第二词典树时,可以先获取某个意图下的冲突句式集,其包含了该意图下的所有冲突句式,其可以通过逐渐累积得到,也可以对大量的实际用户语句提取句式信息而得到。通过将冲突句式以树形图的形式加以表示,得到该意图的第二词典树。
在一种实施方式中,可以获取某个意图所属领域的基础词典树,通过向基础词典树中添加该意图下的冲突句式,得到第二词典树。例如,冲突句式可视为字符串,在基础词典树中找到某个冲突句式的结束字符对应的节点,可以向该节点添加该冲突句式,从而完成对该冲突句式的添加,当添加所有冲突句式后,得到第二词典树。
在一种实施方式中,获取某个意图下的所有冲突句式后,可以以每个冲突句式为一个字符串,建立所有字符串的词典树(如trie树),得到第二词典树。
在一种实施方式中,第一词典树和第二词典树可以是同一棵词典树,该词典树包含槽位信息和冲突句式。例如,可以获取某个意图所属领域的基础词典树,通过向基础词典树中添加槽位信息与冲突句式,得到综合词典树,该综合词典树既是第一词典树,也是第二词典树。
在一种实施方式中,第一词典树和第二词典树也可以是上述综合词典树的两个子树。例如,从综合词典树中提取包含槽位信息的节点所在的树枝,可以得到第一词典树,从综合词典树中提取包含冲突句式的节点所在的树枝,可以得到第二词典树。
在一种实施方式中,第一词典树和第二词典树中的至少一者可以是DAT(Double-Array Trie,双数组trie树)。DAT可以通过状态转移(base)数组与验证(check)数组加以表示,通过这两个数组可以实现字符串的匹配。示例性的,第一词典树可以包括第一状态转移数组、第一验证数组,第二词典树可以包括第二状态转移数组、第二验证数组。
在一种实施方式中,第一词典树和第二词典树中的至少一者可以是基于AC自动机(一种基于trie树的匹配方法)的DAT(下文简称ACDAT)。AC自动机是在trie树的基础上添加回退(fail)数组与输出(output)数组,以实现字符串的匹配。本示例性实施方式中,将AC自动机与DAT结合为ACDAT,可以通过DAT中的状态转移数组、验证数组来替代AC自动机中的trie树,即ACDAT可以体现为四个数组:状态转移数组、验证数组、回退数组、输出数组。由此可以改善trie树的空间复杂度与哈希函数的性能消耗所带来的负面影响,并且能够实现高效的状态匹配的转移、单个状态上的匹配判定以及完整字符串的匹配判定等,兼具AC自动机与DAT的优点,有利于提高字符串匹配的效率与准确性。示例性的,第一词典树可以包括第一状态转移数组、第一验证数组、第一回退数组、第一输出数组,第二词典树可以包括第二状态转移数组、第二验证数组、第二回退数组、第二输出数组。
继续参考图2,在步骤S220中,利用第一词典树确定待识别语句中的关键词对应的候选槽位。
关键词可以是待识别语句中与目标意图相关的或用户感兴趣的信息。每个关键词可以对应一个或多个槽位。当某个关键词对应多个槽位时,通常说明该关键词在目标意图下的语义不唯一(即存在歧义),因而将这些槽位称为候选槽位,后续可以从中确定一个目标槽位,以得到该关键词在待识别语句中的语义,从而实现针对该关键词的实体消歧。当某个关键词仅对应一个槽位时,通常说明该关键词在目标意图下的语义唯一,该槽位是候选槽位,也是目标槽位。
本公开对于从待识别语句中提取关键词的方式不做限定,如可以包括以下任意一种或多种的组合:
基于词典的关键词提取,词典可以是目标意图所属领域的词典,在待识别语句中查找该词典中的词,将所查找到的词作为关键词进行提取。例如可以通过目标意图所属领域的基础词典树对待识别语句进行模式匹配,以提取出关键词。该方式可以实现关键词的穷举。
基于规则的关键词提取,规则可以体现为正则表达式,在待识别语句中查找符合正则表达式的子串,从而得到待识别语句中的关键词。该方式可以提取出较为复杂的关键词(如实质为短语的关键词)。
基于模型的关键词提取,模型通常是针对某一类别的词,如人名、地名等,通过训练对应的模型,可以基于模型待识别语句中特定类别的关键词。该方式具有一定的泛化能力,可以提取出未出现过的关键词。
在一种实施方式,第一词典树可以通过对基础词典树添加槽位信息而得到,因此第一词典树包括目标意图所属领域的词典的信息,可用于提取关键词。上述利用第一词典树确定待识别语句中的关键词对应的候选槽位,可以包括以下步骤:
将待识别语句中的子串与第一词典树的节点进行匹配,当匹配成功时,将子串确定为关键词子串;
根据关键词子串确定待识别语句中的关键词,并根据与关键词子串匹配的节点对应的槽位信息确定关键词对应的候选槽位。
其中,将待识别语句作为一个字符串,该字符串中任意连续的字符形成子串。利用第一词典树可以对待识别语句进行模式匹配,如果待识别语句中的某个子串与第一词典树的某个节点匹配成功,则说明该子串为该节点所对应的词,将该子串标记为关键词子串。进而,可以根据关键词子串确定待识别语句中的关键词,例如可以将关键词子串作为关键词加以提取。并可以根据与关键词子串匹配的节点对应的槽位信息确定关键词对应的候选槽位。
举例来说,待识别语句为“播放跨时代的泡沫”,子串“跨时代”与第一词典树的节点15匹配成功,将“跨时代”作为关键词子串,得到关键词<跨时代>,节点15对应的槽位信息包括槽位[album_name](专辑名)、[song_name],由此得到关键词<跨时代>对应的候选槽位包括[album_name]、[song_name]。子串“泡沫”与第一词典树的节点27匹配成功,将“泡沫”作为关键词子串,得到关键词<泡沫>,节点27对应的槽位信息包括槽位[album_name]、[song_name],由此得到关键词<泡沫>对应的候选槽位包括[album_name]、[song_name]。
通过以上方式,能够将提取关键词与确定候选槽位合并为一个步骤(如可以称为槽位提取)加以执行,提高效率与响应速度。
在一种实施方式中,上述根据关键词子串确定待识别语句中的关键词,可以包括以下步骤:
响应于多个关键词子串间存在交集,根据关键词子串的长度对关键词子串进行筛选,以使得筛选后的各关键词子串间不存在交集。
其中,不同关键词子串间存在交集,表示不同关键词为重叠关系或包含关系。例如,待识别语句为“播放生日快乐”,通过匹配得到关键词子串“放生”、“生日”、“生日快乐”,“放生”与“生日”、“生日快乐”均为重叠关系,存在交集“生”,“生日”与“生日快乐”为包含关系,存在交集“生日”。可以从中筛选出长度最大的关键词子串“生日快乐”,提取关键词<生日快乐>,而不提取关键词<放生>与<生日>。从而避免关键词子串间的交集所造成的更多歧义。
实际应用中,可能出现更加复杂的关系,如关键词子串A与B存在交集,B与C存在交集,而A与C不存在交集的情况。对此,可以在查找到全部关键词子串后,对其进行不同的组合,得到多个关键词子串序列,每个序列中的关键词子串间不存在交集,然后从中筛选出总长度(序列中全部关键词子串的长度之和)最大的关键词子串序列,由该序列中的关键词子串得到待识别语句中的关键词。
由此,实现了局部匹配与全局最长匹配的结合,有利于提取出更加准确、更加符合待识别语句的语境的关键词。
在一种实施方式中,也可以将提取关键词与确定候选槽位作为相互独立的两个步骤来分别执行。例如,可以基于规则或模型来提取待识别语句中的关键词,然后利用第一词典树确定关键词对应的候选槽位。
在一种实施方式中,第一词典树可以是ACDAT,包括第一状态转移数组、第一验证数组、第一回退数组、第一输出数组。参考图3所示,上述将待识别语句中的子串与第一词典树的节点进行匹配,可以包括以下步骤S310至S340:
步骤S310,根据第一状态转移数组确定与待识别语句中的当前待匹配子串对应的当前待匹配节点;
步骤S320,根据第一验证数组验证当前待匹配子串与当前待匹配节点是否匹配成功;
步骤S330,当当前待匹配子串与当前待匹配节点匹配不成功时,根据第一回退数组更新当前待匹配子串与当前待匹配节点;
步骤S340,当当前待匹配子串与当前待匹配节点匹配成功时,若根据第一输出数组确定当前待匹配节点满足输出条件,则输出当前待匹配子串以作为关键词子串,并将当前待匹配子串的下一字符加入当前待匹配子串中以更新当前待匹配子串;若根据第一输出数组确定当前待匹配节点不满足输出条件,则将当前待匹配子串的下一字符加入当前待匹配子串中以更新当前待匹配子串。
在开始匹配时,通常以待识别语句中的第一个字符为最初的当前待匹配子串,并根据第一状态转移数组,从第一词典树的根节点转移至与该当前待匹配子串对应的当前待匹配节点。在匹配过程中,通常是对待识别语句进行逐个字符的匹配,如在步骤S340中,在当前待匹配子串与当前待匹配节点匹配成功时,无论是否输出关键词子串,都将当前待匹配子串加上下一字符,得到新的当前待匹配子串。例如,假设对待识别语句“播放生日快乐”中的当前待匹配子串“生日”匹配成功,加上下一字符后,将当前待匹配子串更新为“生日快”。在步骤S310中,通过第一状态转移数组可以基于上一节点快速转移到下一节点。例如,基于与子串“生日”匹配的节点s1(s1表示节点的标识,在数组中可以是下标),通过第一状态转移数组计算base[s1]+code(快)(表示字符“快”对应的编码,如可以是ASCII码),得到与“生日快”对应的节点t1的标识,相当于将当前待匹配节点由节点s1更新为节点t1。
在每次进行节点的转移后,可以通过第一验证数组验证当前待匹配节点的父节点是否为跳转至当前待匹配节点的上一节点,从而验证节点之间转移的正确性。例如,在从节点s1转移至节点t1后,可以验证节点t1的check值是否为节点s1。如果当前待匹配节点的父节点是上一节点,则说明本次节点转移正确,当前待匹配子串与当前待匹配节点匹配成功。如果当前待匹配节点的父节点不是上一节点,则说明本次节点转移不正确,当前待匹配子串与当前待匹配节点匹配不成功。
在匹配不成功的情况下,可以根据第一回退数组更新当前待匹配子串与当前待匹配节点。例如,假设对当前待匹配子串“生日快”与当前待匹配节点t1匹配不成功,根据第一回退数组找到节点t1的回退指针所指向的节点r1,两者满足r1=fail(t1),将r1节点作为当前待匹配节点,并将r1节点对应的字符串作为当前待匹配子串,如r1节点的父节点为根节点,则r1节点对应的字符串为“快”,即当前待匹配子串为“快”。由此可见,通过第一回退数组可以实现快速回退,并充分利用了已匹配的前缀信息,避免过度回退。
一般的,根据第一回退数组回退后得到的当前待匹配子串与当前待匹配节点,两者能够匹配成功,因此无需通过步骤S320进行验证,可以默认该当前待匹配子串与该当前待匹配节点匹配成功,然后执行步骤S340。
在步骤S340中,根据第一输出数组确定当前待匹配节点是否满足输出条件。其中,第一输出数组可以指示当前待匹配节点是否为叶子节点(在第一词典树中,叶子节点可以具有子节点),若是,则满足输出条件。若当前待匹配节点满足输出条件,则表明当前待匹配子串是第一词典树中的一个模式串,将其作为关键词子串加以输出,并更新当前待匹配子串。若当前待匹配节点不满足输出条件,则表明当前待匹配子串不是第一词典树中的一个模式串,仅更新当前待匹配子串而不输出关键词子串。
应当理解,图3所示的步骤可以是循环过程,当当前待匹配子串的最后一个字符为待识别语句中的最后一个字符时,无法再通过增加下一字符来更新当前待匹配字符,此时可以根据第一回退数组更新当前待匹配子串与当前待匹配节点,直到第一回退数组指向的当前待匹配节点为根节点时,整个匹配过程结束。
图4示出了对待识别语句提取关键词并确定候选槽位的示意图。待识别语句为:我想听周杰伦专辑七里香里的七里香。确定待识别语句的目标意图为“精确播放多媒体”,利用该目标意图下的第一词典树,提取出关键词<周杰伦>、<七里香>、<七里香>,并确定<周杰伦>对应的候选槽位包括[actor]、[singer],前一个<七里香>对应的候选槽位包括[album_name]、[song_name],后一个<七里香>对应的候选槽位也包括[album_name]、[song_name]。
继续参考图2,在步骤S230中,通过将各关键词对应的候选槽位进行组合,得到第一候选句式。
由于关键词对应的候选槽位的数量可能大于1,意味着关键词的语义不唯一,而待识别语句的语义可视为关键词的语义的组合。因此,通过将各关键词对应的候选槽位进行组合的方式,可以得到用于表示待识别语句的语义(此处的语义可能不是准确语义,可称为候选语义)的第一候选句式。
在一种实施方式中,可以将待识别语句中的关键词替换为其对应的候选槽位,得到第一候选句式。举例来说,对待识别语句“播放周星驰的美人鱼”进行关键词提取与候选槽位确定的结果为:关键词<周星驰>,对应候选槽位[director]和[actor],关键词<美人鱼>,对应候选槽位[movie_name]和[tv_name]。由此得到待识别语句对应的第一候选句式,如下所示:
第一候选句式1:播放[director]的[movie_name];
第一候选句式2:播放[director]的[tv_name];
第一候选句式3:播放[actor]的[movie_name];
第一候选句式4:播放[actor]的[tv_name]。
由此可见,将不同位置的关键词所对应的候选槽位进行不同的组合后,得到第一候选句式。假设从待识别语句中提取a个关键词,分别记为w1、w2、…、wa,对应的候选槽位的数量分别为k1、k2、…、ka,则第一候选句式的数量可以是k1 k2…ka。
继续参考图2,在步骤S240中,响应于第一候选句式的数量大于1,利用第二词典树对第一候选句式进行匹配,以得到第二候选句式。
如果第一候选句式的数量为1,则待识别语句的语义唯一。一般来说,待识别语句中每个关键词对应的候选槽位的数量均为1时,第一候选句式的数量为1。也就是说,每个关键词的语义唯一时,待识别语句的语义唯一。在这种情况下,可以跳过步骤S240,根据第一候选语句得到待识别语句对应的目标实体,或者将该第一候选语句作为第二候选语句,执行步骤S250。
如果第一候选句式的数量大于1,则待识别语句的语义不唯一,利用第二词典树对第一候选句式进行匹配,以确定出符合日常语言习惯的句式,得到第二候选句式。
在一种实施方式中,上述利用第二词典树从第一候选句式中筛选出第二候选句式,可以包括以下步骤:
将第一候选句式与第二词典树的节点进行匹配,根据匹配成功的第一候选句式与节点对应的冲突句式中的至少一者确定第二候选句式。
其中,在匹配第一候选句式与第二词典树的节点时,可以进行完全匹配,即使得完整的第一候选句式与第二词典树的某个节点进行匹配,也可以进行部分匹配,即使得第一候选句式中的子句式与第二词典树的某个节点进行匹配。如果匹配成功,说明节点对应的冲突句式与第一候选句式能够匹配,也就是说,该第一候选句式符合或者包含该冲突句式,可以认为该第一候选句式符合日常语言习惯。进而,根据该第一候选句式符合与该冲突句式中的至少一者确定第二候选句式。第二候选句式可以是第一候选句式,也可以是冲突句式,还可以是基于第一候选句式或冲突句式进行变形的句式。
在一种实施方式中,上述将第一候选句式与第二词典树的节点进行匹配,根据匹配成功的第一候选句式与节点对应的冲突句式中的至少一者确定第二候选句式,可以包括以下步骤:
将第一候选句式中的子句式与第二词典树的节点进行匹配,当匹配成功时,将子句式确定为已匹配子句式,将与已匹配子句式匹配的节点对应的冲突句式确定为已匹配冲突句式;
根据已匹配子句式与已匹配冲突句式中的至少一者确定第二候选句式。
其中,第一候选句式中的子句式可以是第一候选句式中的任意一段句式。例如,可以将第一候选句式作为一个字符串,需要说明的是,第一候选句式中的一个槽位可视为一个字符,如第一候选句式1:播放[actor]的[movie_name],包括播、放、[actor]、的、[movie_name]共5个字符,子句式可以是其中任意的子串。
利用第二词典树可以对第一候选句式进行模式匹配,如果第一候选句式中的某个子句式与第二词典树的某个节点匹配成功,则说明该子句式符合该节点所对应的冲突句式,将该子句式标记为已匹配子句式,将该节点对应的冲突句式标记为已匹配冲突句式,该已匹配子句式与该已匹配冲突句式具有匹配关系。进而,可以根据已匹配子句式与已匹配冲突句式中的至少一者确定第二候选句式,例如可以将已匹配子句式或已匹配冲突句式确定为第二候选句式,或者对已匹配子句式或已匹配冲突句式进行变形,得到第二候选句式,等等。
在一种实施方式中,第二词典树可以是ACDAT,包括第二状态转移数组、第二验证数组、第二回退数组、第二输出数组。参考图5所示,上述将第一候选句式中的子句式与第二词典树的节点进行匹配,当匹配成功时,将子句式确定为已匹配子句式,可以包括以下步骤S510至S540:
步骤S510,根据第二状态转移数组确定与第一候选句式中的当前待匹配子句式对应的当前待匹配节点;
步骤S520,根据第二验证数组验证当前待匹配子句式与当前待匹配节点是否匹配成功;
步骤S530,当当前待匹配子句式与当前待匹配节点匹配不成功时,根据第二回退数组更新当前待匹配子句式与当前待匹配节点;
步骤S540,当当前待匹配子句式与当前待匹配节点匹配成功时,若根据第二输出数组确定当前待匹配节点满足输出条件,则输出当前待匹配子句式以作为已匹配子句式,并将当前待匹配子句式的下一字符加入当前待匹配子句式中以更新当前待匹配子句式;若根据第二输出数组确定当前待匹配节点不满足输出条件,则将当前待匹配子句式的下一字符加入当前待匹配子句式中以更新当前待匹配子句式。
在开始匹配时,通常以第一候选句式中的第一个字符为最初的当前待匹配子句式,并根据第二状态转移数组,从第二词典树的根节点转移至与该当前待匹配子句式对应的当前待匹配节点。在匹配过程中,通常是对第一候选句式进行逐个字符的匹配,如在步骤S540中,在当前待匹配子句式与当前待匹配节点匹配成功时,无论是否输出已匹配子句式,都将当前待匹配子句式加上下一字符,得到新的当前待匹配子句式。例如,假设对第一候选句式“播放[actor]的[movie_name]”中的当前待匹配子句式“播放[actor]”匹配成功,加上下一字符后,将当前待匹配子句式更新为“播放[actor]的”。在步骤S510中,通过第二状态转移数组可以基于上一节点快速转移到下一节点。例如,基于与子句式“播放[actor]”匹配的节点s2(s2表示节点的标识,在数组中可以是下标),通过第二状态转移数组计算base[s2]+code(的)(表示字符“的”对应的编码,如可以是ASCII码),得到与“播放[actor]的”对应的节点t2的标识,相当于将当前待匹配节点由节点s2更新为节点t2。
在每次进行节点的转移后,可以通过第二验证数组验证当前待匹配节点的父节点是否为跳转至当前待匹配节点的上一节点,从而验证节点之间转移的正确性。例如,在从节点s2转移至节点t2后,可以验证节点t2的check值是否为节点s2。如果当前待匹配节点的父节点是上一节点,则说明本次节点转移正确,当前待匹配子句式与当前待匹配节点匹配成功。如果当前待匹配节点的父节点不是上一节点,则说明本次节点转移不正确,当前待匹配子句式与当前待匹配节点匹配不成功。
在匹配不成功的情况下,可以根据第二回退数组更新当前待匹配子句式与当前待匹配节点。例如,假设对当前待匹配子句式“播放[actor]的”与当前待匹配节点t2匹配不成功,根据第二回退数组找到节点t2的回退指针所指向的节点r2,两者满足r2=fail(t2),将r2节点作为当前待匹配节点,并将r2节点对应的字符串作为当前待匹配子句式,如r2节点的父节点为根节点,则r2节点对应的字符串为“的”,即当前待匹配子句式为“的”。由此可见,通过第二回退数组可以实现快速回退,并充分利用了已匹配的前缀信息,避免过度回退。
一般的,根据第二回退数组回退后得到的当前待匹配子句式与当前待匹配节点,两者能够匹配成功,因此无需通过步骤S520进行验证,可以默认该当前待匹配子句式与该当前待匹配节点匹配成功,然后执行步骤S540。
在步骤S540中,根据第二输出数组确定当前待匹配节点是否满足输出条件。其中,第二输出数组可以指示当前待匹配节点是否为叶子节点(在第二词典树中,叶子节点可以具有子节点),若是,则满足输出条件。若当前待匹配节点满足输出条件,则表明当前待匹配子句式是第二词典树中的一个模式串,将其作为已匹配子句式加以输出,并更新当前待匹配子句式。若当前待匹配节点不满足输出条件,则表明当前待匹配子句式不是第二词典树中的一个模式串,仅更新当前待匹配子句式而不输出已匹配子句式。
应当理解,图5所示的步骤可以是循环过程,当当前待匹配子句式的最后一个字符为第一候选句式中的最后一个字符时,无法再通过增加下一字符来更新当前待匹配字符,此时可以根据第二回退数组更新当前待匹配子句式与当前待匹配节点,直到第二回退数组指向的当前待匹配节点为根节点时,整个匹配过程结束。
图6示出了通过第二词典树对第一候选句式进行匹配的示意图。在第二词典树中,每个节点具有标识,如0、1、2等,表示对应的一个状态,其中0为根节点。相邻两个节点之间存在一个字符,如节点0通过字符“我”转移至节点1,可以根据第二状态转移数组实现转移。第二回退数组用于体现节点的回退指针所指向的节点,表示为图中节点处的虚线。部分节点具有对应的冲突句式,图中示出节点7、10、15、18分别对应冲突句式1、2、3、4。假设待识别语句为“我想听周杰伦专辑七里香里的七里香”,根据图4中确定的候选槽位,可以得到多个第一候选句式,其中一个第一候选句式为“我想听[singer]专辑[album_name]里的[song_name]”,在第二词典树中对该第一候选句式进行匹配,得到两个已匹配子句式“我想听[singer]专辑[album_name]”与“我想听[singer]专辑[album_name]里的[song_name]”,并得到对应的两个已匹配冲突句式{我想听[singer]专辑[album_name]}与{我想听[singer]专辑[album_name]里的[song_name]}。
由图3至图6中的任意一张或多张附图可知,本示例性实施方式可以采用ACDAT实现待识别语句的关键词提取与槽位匹配(即确定候选槽位),或实现第一候选句式与冲突句式的匹配。表1列出了ACDAT与其他几种字符匹配方法的对比。其中,DAG(Directed AcyclicGraph)+DP(Dynamic Programming)为有向无环图+动态规划,FlashText是一种字符搜索和替换算法。
表1
虽然几种方法对单一字符串匹配的耗时与内存占用相近,但是部署算法所需的资源与性能消耗不同,且进行回退的时间成本不同。ACDAT能够结合DAT的轻量化部署与AC自动机的快速回退的优点。此外,在大部分实际业务场景中,对于关键词提取与槽位匹配,局部匹配比最长匹配的容错率更高,但是对于关键词数量较多的长句等,最长匹配的准确性相对更高。因此,ACDAT的以局部匹配为主,辅以最长匹配的方式具备更高的鲁棒性。
本文中,为便于进行说明,对关键词添加符号<>、对槽位添加符号[]、对冲突句式添加符号{}。这些符号在ACDAT的构建或相关算法的实施中可以不使用,以进一步节省内存并提高效率。
在一种实施方式中,上述根据已匹配子句式与已匹配冲突句式中的至少一者确定第二候选句式,可以包括以下步骤:
根据已匹配子句式的长度信息或已匹配冲突句式的长度信息,从已匹配子句式或已匹配冲突句式中确定第二候选句式。
一般的,对于一个第一候选句式,如果从中匹配得到多个已匹配子句式或已匹配冲突句式,则可以保留长度最大(即字符最多)的那个已匹配子句式或已匹配冲突句式,将该已匹配子句式或该已匹配冲突句式确定为一个第二候选句式。
此外,对于不同的第一候选句式,得到不同的已匹配子句式或已匹配冲突句式,可以从中筛选出长度较大的已匹配子句式或已匹配冲突句式,将其确定为第二候选句式。例如,可以使第二候选句式中的槽位(或关键词)数量与第一候选句式中的槽位(或关键词)数量一致。
举例来说,对待识别语句“播放周星驰的美人鱼”进行关键词提取与候选槽位确定后,得到第一候选句式如下:
第一候选句式1:播放[director]的[movie_name];
第一候选句式2:播放[director]的[tv_name];
第一候选句式3:播放[actor]的[movie_name];
第一候选句式4:播放[actor]的[tv_name]。
利用第二词典树对上述4个第一候选句式分别进行匹配,得到4个第一候选句式中的已匹配子句式如下:
已匹配子句式1:[director]的[movie_name];
已匹配子句式2:[director]的[tv_name];
已匹配子句式3:播放[actor];
已匹配子句式4:播放[actor]。
由于第一候选句式1-4中的槽位(或关键词)数量均为2,从上述已匹配子句式1-4中筛选出槽位(或关键词)数量为2的子句式以作为第二候选句式,从而得到第二候选句式如下:
第二候选句式1:[director]的[movie_name];
第二候选句式2:[director]的[tv_name]。
在一种实施方式中,上述利用第二词典树对第一候选句式进行匹配,以得到第二候选句式,还可以包括以下步骤:
响应于与第二词典树中的节点匹配成功的第一候选句式的数量为0,将第一候选句式全部确定为第二候选句式。
一般的,在将第一候选句式与第二词典树中的节点进行完全匹配,即将整个第一候选句式与第二词典树中的节点进行匹配时,可能出现第一候选句式与任何节点均匹配不成功的情况。当然,在利用第二词典树对第一候选句式进行部分匹配(如模式匹配),即将的子句式与第二词典树中的节点进行匹配时,也可能出现第一候选句式中的任意子句式与任何节点均匹配不成功的情况,由此可以认为该第一候选句式与任何节点均匹配不成功。
如果全部第一候选句式均匹配不成功,则难以通过第二词典树进行句式的筛选,这种情况下可以将第一候选句式全部确定为第二候选句式,以通过后续处理来进行筛选。
继续参考图2,在步骤S250中,根据第二候选句式得到待识别语句对应的目标实体。
本示例性实施方式中,待识别语句对应的目标实体可以是在待识别语句的语境下,符合其语义的真实实体,包括但不限于:待识别语句中的关键词的目标槽位,即通过消歧后所保留下来的待识别语句中每个关键词对应的槽位;待识别语句的目标语义,可以是待识别语句对应的目标句式。理想情况下,待识别语句对应的目标实体可以是唯一实体,则待识别语句具有唯一的语义。但本公开对此不做限定,如在某些情况下,用户输入的待识别语句本身就具有歧义,则待识别语句对应的目标实体可以包括多种实体。
如果经过步骤S240后,仅得到一个第二候选句式,则可以将该第二候选句式中每个关键词对应的候选槽位作为每个关键词对应的目标槽位,得到每个关键词的槽位消歧结果,也可以将该第二候选句式作为待识别语句对应的目标语句,得到待识别语句的语义消歧结果。
在一种实施方式中,上述根据第二候选句式得到待识别语句对应的目标实体,可以包括以下步骤:
根据第二候选句式对关键词对应的候选槽位进行筛选,根据筛选后的候选槽位得到待识别语句对应的目标实体。
其中,第二候选句式是经过筛选后的句式,将第二候选句式中的候选槽位提取出来,其是初始的候选槽位经过筛选后的槽位,更加符合待识别语句的语境与语义。由此,可以根据这些筛选后的候选槽位确定待识别语句中每个关键词对应的目标槽位。
如果在全部的第二候选句式中,每个关键词对应的候选槽位的数量都为1,则将每个关键词对应的那一个候选槽位作为目标槽位。
然而,可能存在某一个或多个关键词对应的候选槽位的数量大于1的情况。对此,在一种实施方式中,上述根据筛选后的候选槽位得到待识别语句对应的目标实体,可以包括以下步骤:
响应于存在至少一个关键词,其对应的筛选后的候选槽位的数量大于1,根据筛选后的候选槽位优先级对筛选后的候选槽位做进一步筛选,以得到待识别语句对应的目标实体。
其中,候选槽位优先级可以通过对用户的语言习惯进行统计而预先配置。例如,在播放歌曲的场景中,用户希望播放某首歌曲的情况比希望播放某张专辑的情况更常见,因此可以设置槽位[song_name]的优先级高于槽位[album_name]。这样,在存在多个候选槽位的情况下,可以采用优先级最高的那个候选槽位作为目标槽位。结合上述示例进一步说明如下,得到上述两个第二后候选句式:
第二候选句式1:[director]的[movie_name];
第二候选句式2:[director]的[tv_name]。
由此可以确定关键词<周星驰>仅对应一个候选槽位[director],该候选槽位为目标槽位。而关键词<美人鱼>对应两个候选槽位[movie_name]、[tv_name]。假设槽位[movie_name]的优先级高于[tv_name],则进一步筛选得到一个候选槽位[movie_name],为目标槽位。从而完成对关键词<周星驰>与<美人鱼>的实体消歧,也相当于对待识别语句“播放周星驰的美人鱼”的实体消岐。
当然,本公开不限于上述候选槽位优先级的方式,也可以采用其他方式对候选槽位做进一步筛选。例如,可以统计每个关键词对应的各候选槽位在第二候选句式中出现的次数,将次数最多的那个候选槽位作为目标槽位。待识别语句中每个关键词的目标槽位可以是不唯一的。
在一种实施方式中,上述第一词典树、第二词典树、候选槽位优先级等预先配置的信息均可以进行热更新。例如,在实际应用过程中,不断收集新的槽位信息,将新的槽位信息添加至第一词典树中,并更新第一词典树,如可以更新第一状态转移数组、第一验证数组、第一回退数组、第一输出数组等。或者,不断收集新的冲突句式,将新的冲突句式添加至第二词典树中,并更新第二词典树,如可以更新第二状态转移数组、第二验证数组、第二回退数组、第二输出数组等。或者,随着收集的用户语句的增多,重新统计并确定候选槽位优先级,等等。
图7示出了本示例性实施方式中实体消歧方法的示意性流程,包括:
步骤S701,确定待识别语句对应的目标意图,获取目标意图下的第一词典树与第二词典树。
步骤S702,利用第一词典树从待识别语句中提取关键词w1、w2、…、wa,并确定每个关键词对应的候选槽位,候选槽位包括slot1、slot2、…、slotb,每个关键词可以对应其中一个或多个候选槽位。
步骤S703,将不同关键词对应的候选槽位进行组合,得到待识别语句对应的第一候选句式,包括syn1、syn2、…、sync。
步骤S704,利用第二词典树对第一候选句式进行匹配,得到与第一候选句式中的子句式所匹配的冲突句式,包括syn'1、syn'2、…、syn'd。
步骤S705,根据第二候选句式对每个关键词对应的候选槽位进行筛选,关键词w1对应的筛选后的候选槽位包括slot'11、slot'12等,w2对应的筛选后的候选槽位包括slot'21、slot'22等,wa对应的筛选后的候选槽位包括slot'a1、slot'a2等。
步骤S706,根据候选槽位优先级对上述每个关键词对应的筛选后的候选槽位做进一步筛选,得到每个关键词对应的目标槽位,关键词w1对应的目标槽位为slot'1,w2对应的目标槽位为slot'2,wa对应的目标槽位为slot'a,由此完成对待识别语句中每个关键词的实体消歧。
本公开的示例性实施方式还提供一种实体消歧装置。参考图8所示,该实体消歧装置800可以包括:
词典树获取模块810,被配置为确定待识别语句对应的目标意图,并获取目标意图的第一词典树和第二词典树,第一词典树包含槽位信息,第二词典树包含冲突句式;
候选槽位确定模块820,被配置为利用第一词典树确定待识别语句中的关键词对应的候选槽位;
第一候选句式确定模块830,被配置为通过将各关键词对应的候选槽位进行组合,得到第一候选句式;
第二候选句式确定模块840,被配置为响应于第一候选句式的数量大于1,利用第二词典树对第一候选句式进行匹配,以得到第二候选句式;
目标实体输出模块850,被配置为根据第二候选句式得到待识别语句对应的目标实体。
在一种实施方式中,上述利用第一词典树确定待识别语句中的关键词对应的候选槽位,包括:
将待识别语句中的子串与第一词典树的节点进行匹配,当匹配成功时,将子串确定为关键词子串;
根据关键词子串确定待识别语句中的关键词,并根据与关键词子串匹配的节点对应的槽位信息确定关键词对应的候选槽位。
在一种实施方式中,上述根据关键词子串确定待识别语句中的关键词,还包括:
响应于多个关键词子串间存在交集,根据关键词子串的长度对关键词子串进行筛选,以使得筛选后的各关键词子串间不存在交集。
在一种实施方式中,第一词典树还包括第一状态转移数组、第一验证数组、第一回退数组、第一输出数组。
上述将待识别语句中的子串与第一词典树的节点进行匹配,当匹配成功时,将子串确定为关键词子串,包括:
根据第一状态转移数组确定与待识别语句中的当前待匹配子串对应的当前待匹配节点;
根据第一验证数组验证当前待匹配子串与当前待匹配节点是否匹配成功;
当当前待匹配子串与当前待匹配节点匹配不成功时,根据第一回退数组更新当前待匹配子串与当前待匹配节点;
当当前待匹配子串与当前待匹配节点匹配成功时,若根据第一输出数组确定当前待匹配节点满足输出条件,则输出当前待匹配子串以作为关键词子串,并将当前待匹配子串的下一字符加入当前待匹配子串中以更新当前待匹配子串;若根据第一输出数组确定当前待匹配节点不满足输出条件,则将当前待匹配子串的下一字符加入当前待匹配子串中以更新当前待匹配子串。
在一种实施方式中,上述利用第二词典树对第一候选句式进行匹配,以得到第二候选句式,包括:
将第一候选句式与第二词典树的节点进行匹配,根据匹配成功的第一候选句式与节点对应的冲突句式中的至少一者确定第二候选句式。
在一种实施方式中,上述将第一候选句式与第二词典树的节点进行匹配,根据匹配成功的第一候选句式与节点对应的冲突句式中的至少一者确定第二候选句式,包括:
将第一候选句式中的子句式与第二词典树的节点进行匹配,当匹配成功时,将子句式确定为已匹配子句式,将与已匹配子句式匹配的节点对应的冲突句式确定为已匹配冲突句式;
根据已匹配子句式与已匹配冲突句式中的至少一者确定第二候选句式。
在一种实施方式中,第二词典树还包括第二状态转移数组、第二验证数组、第二回退数组、第二输出数组。
上述将第一候选句式中的子句式与第二词典树的节点进行匹配,当匹配成功时,将子句式确定为已匹配子句式,包括:
根据第二状态转移数组确定与第一候选句式中的当前待匹配子句式对应的当前待匹配节点;
根据第二验证数组验证当前待匹配子句式与当前待匹配节点是否匹配成功;
当当前待匹配子句式与当前待匹配节点匹配不成功时,根据第二回退数组更新当前待匹配子句式与当前待匹配节点;
当当前待匹配子句式与当前待匹配节点匹配成功时,若根据第二输出数组确定当前待匹配节点满足输出条件,则输出当前待匹配子句式以作为已匹配子句式,并将当前待匹配子句式的下一字符加入当前待匹配子句式中以更新当前待匹配子句式;若根据第二输出数组确定当前待匹配节点不满足输出条件,则将当前待匹配子句式的下一字符加入当前待匹配子句式中以更新当前待匹配子句式。
在一种实施方式中,上述根据已匹配子句式与已匹配冲突句式中的至少一者确定第二候选句式,包括:
根据已匹配子句式的长度信息或已匹配冲突句式的长度信息,从已匹配子句式或已匹配冲突句式中确定第二候选句式。
在一种实施方式中,上述根据第二候选句式得到待识别语句对应的目标实体,包括:
根据第二候选句式对关键词对应的候选槽位进行筛选,根据筛选后的候选槽位得到待识别语句对应的目标实体。
在一种实施方式中,上述根据筛选后的候选槽位得到待识别语句对应的目标实体,包括:
响应于存在至少一个关键词,其对应的筛选后的候选槽位的数量大于1,根据筛选后的候选槽位优先级对筛选后的候选槽位做进一步筛选,以得到待识别语句对应的目标实体。
上述装置中各部分的具体细节在方法部分实施方式中已经详细说明,未披露的细节内容可以参见方法部分的实施方式内容,因而不再赘述。
本公开的示例性实施方式还提供了一种计算机可读存储介质,可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。在一种可选的实施方式中,该程序产品可以实现为便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本公开的示例性实施方式还提供一种电子设备,该电子设备例如可以是上述用户端110与服务端120。该电子设备可以包括处理器与存储器。存储器存储有处理器的可执行指令,如可以是程序代码。处理器通过执行该可执行指令来执行本示例性实施方式中的实体消歧方法,如可以执行图2的方法步骤。
下面参考图9,以通用计算设备的形式对电子设备进行示例性说明。应当理解,图9显示的电子设备900仅仅是一个示例,不应对本公开实施方式的功能和使用范围带来限制。
如图9所示,电子设备900可以包括:处理器910、存储器920、总线930、I/O(输入/输出)接口940、网络适配器950。
存储器920可以包括易失性存储器,例如RAM 921、缓存单元922,还可以包括非易失性存储器,例如ROM 923。存储器920还可以包括一个或多个程序模块924,这样的程序模块924包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。例如,程序模块924可以包括上述实体消歧装置800中的各模块。
总线930用于实现电子设备900的不同组件之间的连接,可以包括数据总线、地址总线和控制总线。
电子设备900可以通过I/O接口940与一个或多个外部设备1000(例如键盘、鼠标、外置控制器等)进行通信。
电子设备900可以通过网络适配器950与一个或者多个网络通信,例如网络适配器950可以提供如3G/4G/5G等移动通信解决方案,或者提供如无线局域网、蓝牙、近场通信等无线通信解决方案。网络适配器950可以通过总线930与电子设备900的其它模块通信。
尽管图9中未示出,还可以在电子设备900中设置其它硬件和/或软件模块,包括但不限于:显示器、微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。
Claims (13)
1.一种实体消歧方法,其特征在于,包括:
确定待识别语句对应的目标意图,并获取所述目标意图的第一词典树和第二词典树,所述第一词典树包含槽位信息,所述第二词典树包含冲突句式;
利用所述第一词典树确定所述待识别语句中的关键词对应的候选槽位;
通过将各所述关键词对应的候选槽位进行组合,得到第一候选句式;
响应于所述第一候选句式的数量大于1,利用所述第二词典树对所述第一候选句式进行匹配,以得到第二候选句式;
根据所述第二候选句式得到所述待识别语句对应的目标实体。
2.根据权利要求1所述的方法,其特征在于,所述利用所述第一词典树确定所述待识别语句中的关键词对应的候选槽位,包括:
将所述待识别语句中的子串与所述第一词典树的节点进行匹配,当匹配成功时,将所述子串确定为关键词子串;
根据所述关键词子串确定所述待识别语句中的关键词,并根据与所述关键词子串匹配的所述节点对应的槽位信息确定所述关键词对应的候选槽位。
3.根据权利要求2所述的方法,其特征在于,所述根据所述关键词子串确定所述待识别语句中的关键词,还包括:
响应于多个所述关键词子串间存在交集,根据所述关键词子串的长度对所述关键词子串进行筛选,以使得筛选后的各所述关键词子串间不存在交集。
4.根据权利要求2所述的方法,其特征在于,所述第一词典树还包括第一状态转移数组、第一验证数组、第一回退数组、第一输出数组;所述将所述待识别语句中的子串与所述第一词典树的节点进行匹配,当匹配成功时,将所述子串确定为关键词子串,包括:
根据所述第一状态转移数组确定与所述待识别语句中的当前待匹配子串对应的当前待匹配节点;
根据所述第一验证数组验证所述当前待匹配子串与所述当前待匹配节点是否匹配成功;
当所述当前待匹配子串与所述当前待匹配节点匹配不成功时,根据所述第一回退数组更新所述当前待匹配子串与所述当前待匹配节点;
当所述当前待匹配子串与所述当前待匹配节点匹配成功时,若根据所述第一输出数组确定所述当前待匹配节点满足输出条件,则输出所述当前待匹配子串以作为所述关键词子串,并将所述当前待匹配子串的下一字符加入所述当前待匹配子串中以更新所述当前待匹配子串;若根据所述第一输出数组确定所述当前待匹配节点不满足输出条件,则将所述当前待匹配子串的下一字符加入所述当前待匹配子串中以更新所述当前待匹配子串。
5.根据权利要求1所述的方法,其特征在于,所述利用所述第二词典树对所述第一候选句式进行匹配,以得到第二候选句式,包括:
将所述第一候选句式与所述第二词典树的节点进行匹配,根据匹配成功的所述第一候选句式与所述节点对应的冲突句式中的至少一者确定所述第二候选句式。
6.根据权利要求5所述的方法,其特征在于,所述将所述第一候选句式与所述第二词典树的节点进行匹配,根据匹配成功的所述第一候选句式与所述节点对应的冲突句式中的至少一者确定所述第二候选句式,包括:
将所述第一候选句式中的子句式与所述第二词典树的节点进行匹配,当匹配成功时,将所述子句式确定为已匹配子句式,将与所述已匹配子句式匹配的所述节点对应的冲突句式确定为已匹配冲突句式;
根据所述已匹配子句式与所述已匹配冲突句式中的至少一者确定所述第二候选句式。
7.根据权利要求6所述的方法,其特征在于,所述第二词典树还包括第二状态转移数组、第二验证数组、第二回退数组、第二输出数组;所述将所述第一候选句式中的子句式与所述第二词典树的节点进行匹配,当匹配成功时,将所述子句式确定为已匹配子句式,包括:
根据所述第二状态转移数组确定与所述第一候选句式中的当前待匹配子句式对应的当前待匹配节点;
根据所述第二验证数组验证所述当前待匹配子句式与所述当前待匹配节点是否匹配成功;
当所述当前待匹配子句式与所述当前待匹配节点匹配不成功时,根据所述第二回退数组更新所述当前待匹配子句式与所述当前待匹配节点;
当所述当前待匹配子句式与所述当前待匹配节点匹配成功时,若根据所述第二输出数组确定所述当前待匹配节点满足输出条件,则输出所述当前待匹配子句式以作为所述已匹配子句式,并将所述当前待匹配子句式的下一字符加入所述当前待匹配子句式中以更新所述当前待匹配子句式;若根据所述第二输出数组确定所述当前待匹配节点不满足输出条件,则将所述当前待匹配子句式的下一字符加入所述当前待匹配子句式中以更新所述当前待匹配子句式。
8.根据权利要求6所述的方法,其特征在于,所述根据所述已匹配子句式与所述已匹配冲突句式中的至少一者确定所述第二候选句式,包括:
根据所述已匹配子句式的长度信息或所述已匹配冲突句式的长度信息,从所述已匹配子句式或所述已匹配冲突句式中确定所述第二候选句式。
9.根据权利要求1所述的方法,其特征在于,所述根据所述第二候选句式得到所述待识别语句对应的目标实体,包括:
根据所述第二候选句式对所述关键词对应的候选槽位进行筛选,根据筛选后的候选槽位得到所述待识别语句对应的目标实体。
10.根据权利要求9所述的方法,其特征在于,所述根据筛选后的候选槽位得到所述待识别语句对应的目标实体,包括:
响应于存在至少一个所述关键词,其对应的筛选后的候选槽位的数量大于1,根据所述筛选后的候选槽位优先级对所述筛选后的候选槽位做进一步筛选,以得到所述待识别语句对应的目标实体。
11.一种实体消歧装置,其特征在于,包括:
词典树获取模块,被配置为确定待识别语句对应的目标意图,并获取所述目标意图的第一词典树和第二词典树,所述第一词典树包含槽位信息,所述第二词典树包含冲突句式;
候选槽位确定模块,被配置为利用所述第一词典树确定所述待识别语句中的关键词对应的候选槽位;
第一候选句式确定模块,被配置为通过将各所述关键词对应的候选槽位进行组合,得到第一候选句式;
第二候选句式确定模块,被配置为响应于所述第一候选句式的数量大于1,利用所述第二词典树对所述第一候选句式进行匹配,以得到第二候选句式;
目标实体输出模块,被配置为根据所述第二候选句式得到所述待识别语句对应的目标实体。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10任一项所述的方法。
13.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210209046.9A CN114595696A (zh) | 2022-03-03 | 2022-03-03 | 实体消歧方法、实体消歧装置、存储介质与电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210209046.9A CN114595696A (zh) | 2022-03-03 | 2022-03-03 | 实体消歧方法、实体消歧装置、存储介质与电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114595696A true CN114595696A (zh) | 2022-06-07 |
Family
ID=81815492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210209046.9A Pending CN114595696A (zh) | 2022-03-03 | 2022-03-03 | 实体消歧方法、实体消歧装置、存储介质与电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114595696A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116153313A (zh) * | 2023-04-07 | 2023-05-23 | 广州小鹏汽车科技有限公司 | 语音交互方法、服务器和计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046653A (zh) * | 2019-11-14 | 2020-04-21 | 深圳市优必选科技股份有限公司 | 一种语句识别方法、语句识别装置及智能设备 |
CN111222323A (zh) * | 2019-12-30 | 2020-06-02 | 深圳市优必选科技股份有限公司 | 一种词槽抽取方法、词槽抽取装置及电子设备 |
CN111666399A (zh) * | 2020-06-23 | 2020-09-15 | 中国平安人寿保险股份有限公司 | 基于知识图谱的智能问答方法、装置和计算机设备 |
CN113707300A (zh) * | 2021-08-30 | 2021-11-26 | 康键信息技术(深圳)有限公司 | 基于人工智能的搜索意图识别方法、装置、设备及介质 |
-
2022
- 2022-03-03 CN CN202210209046.9A patent/CN114595696A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046653A (zh) * | 2019-11-14 | 2020-04-21 | 深圳市优必选科技股份有限公司 | 一种语句识别方法、语句识别装置及智能设备 |
CN111222323A (zh) * | 2019-12-30 | 2020-06-02 | 深圳市优必选科技股份有限公司 | 一种词槽抽取方法、词槽抽取装置及电子设备 |
CN111666399A (zh) * | 2020-06-23 | 2020-09-15 | 中国平安人寿保险股份有限公司 | 基于知识图谱的智能问答方法、装置和计算机设备 |
CN113707300A (zh) * | 2021-08-30 | 2021-11-26 | 康键信息技术(深圳)有限公司 | 基于人工智能的搜索意图识别方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
LEI ZHANG 等: "Joint Intent Detection and Entity Linking on Spatial Domain Queries", 《EMNLP 2020》, 20 November 2020 (2020-11-20), pages 4937 - 4947 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116153313A (zh) * | 2023-04-07 | 2023-05-23 | 广州小鹏汽车科技有限公司 | 语音交互方法、服务器和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3648099B1 (en) | Voice recognition method, device, apparatus, and storage medium | |
CN109388795B (zh) | 一种命名实体识别方法、语言识别方法及系统 | |
CN109408622B (zh) | 语句处理方法及其装置、设备和存储介质 | |
CN106537370B (zh) | 在存在来源和翻译错误的情况下对命名实体鲁棒标记的方法和系统 | |
Mairesse et al. | Stochastic language generation in dialogue using factored language models | |
US10073840B2 (en) | Unsupervised relation detection model training | |
US10210245B2 (en) | Natural language question answering method and apparatus | |
US10585924B2 (en) | Processing natural-language documents and queries | |
CN108369580B (zh) | 针对屏幕上项目选择的基于语言和域独立模型的方法 | |
US10896222B1 (en) | Subject-specific data set for named entity resolution | |
US10997223B1 (en) | Subject-specific data set for named entity resolution | |
US11514034B2 (en) | Conversion of natural language query | |
JP2021111415A (ja) | テキストテーマ生成方法、テキストテーマ生成装置、電子機器、記憶媒体およびコンピュータプログラム | |
CN109542247B (zh) | 句式推荐方法及装置、电子设备、存储介质 | |
AU2021200962A1 (en) | Model-based semantic text searching | |
CN112559689B (zh) | 一种基于车载问答的数据处理方法和装置 | |
CN111178076A (zh) | 命名实体识别与链接方法、装置、设备及可读存储介质 | |
CN108763202A (zh) | 识别敏感文本的方法、装置、设备及可读存储介质 | |
US12079211B2 (en) | Natural-language processing across multiple languages | |
CN111859013A (zh) | 数据处理方法、装置、终端和存储介质 | |
CN114595696A (zh) | 实体消歧方法、实体消歧装置、存储介质与电子设备 | |
CN116798417B (zh) | 语音意图识别方法、装置、电子设备及存储介质 | |
WO2019231635A1 (en) | Method and apparatus for generating digest for broadcasting | |
CN114970541A (zh) | 文本语义理解方法、装置、设备及存储介质 | |
JP2001101184A (ja) | 構造化文書生成方法及び装置及び構造化文書生成プログラムを格納した記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |