CN109815475B - 文本匹配方法、装置、计算设备及系统 - Google Patents
文本匹配方法、装置、计算设备及系统 Download PDFInfo
- Publication number
- CN109815475B CN109815475B CN201711174221.0A CN201711174221A CN109815475B CN 109815475 B CN109815475 B CN 109815475B CN 201711174221 A CN201711174221 A CN 201711174221A CN 109815475 B CN109815475 B CN 109815475B
- Authority
- CN
- China
- Prior art keywords
- text
- signature
- texts
- candidate
- item
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种文本匹配方法、装置、计算设备及系统,其中,所述方法包括:计算文本集合对应的至少一个签名索引项;确定所述至少一个签名索引项分别相对各自索引的不同文本的重要程度;基于所述重要程度,筛选每个文本的候选文本;计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。本申请实施例提供的技术方案降低了计算量,提高文本匹配效率。
Description
技术领域
本申请实施例涉及自然语言处理技术领域,尤其涉及一种文本匹配方法、装置、计算设备及系统。
背景技术
在信息检索、人机对话、高频问题发现以及舆情监控等应用中,存在从海量文本中查找与每个文本匹配的TOP-K相似文本的需求,从而基于每个文本的相似文本可以进行文本聚类,以将相似的文本聚类在一起,实现批量处理操作等。其中,TOP-K相似文本是指基于相似度,确定的与某个文本最相似的K个文本。
由上述描述可知,为了查找与每个文本匹配的相似文本,需要在海量文本中遍历计算每个文本与其它各个文本的相似度,文本集合中的任意两个文本均需要计算相似度,计算量非常大,影响匹配效率。
发明内容
本申请实施例提供一种文本匹配方法、装置、计算设备及系统,用以解决现有技术中由于文本相似度计算量大,导致文本匹配效率低的技术问题。
第一方面,本申请实施例中提供了一种文本匹配方法,包括:
计算文本集合对应的至少一个签名索引项;
确定所述至少一个签名索引项分别相对各自索引的不同文本的重要程度;
基于所述重要程度,筛选每个文本的候选文本;
计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
第二方面,本申请实施例中提供了一种文本匹配装置,包括:
第一计算模块,用于计算文本集合对应的至少一个签名索引项;
第二计算模块,用于确定所述至少一个签名索引项分别相对各自索引的不同文本的重要程度;
筛选模块,用于基于所述重要程度,筛选每个文本的候选文本;
文本匹配模块,用于计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
第三方面,本申请实施例中提供了一种计算设备,包括一个或多个存储器以及一个或多个处理器;
所述一个或多个存储器存储一条或多条计算机指令;所述一条或多条计算机指令由所述一个或多个处理器调用并执行;
所述一个或多个处理器用于:
计算文本集合对应的至少一个签名索引项;
确定所述至少一个签名索引项分别相对各自索引的不同文本的重要程度;
基于所述重要程度,筛选每个文本的候选文本;
计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
第四方面,本申请实施例中提供了一种集群系统,包括多个物理机器;每一个物理机器包括一个或多个存储器以及一个或多个处理器;所述一个或多个存储器存储一条多条计算机指令;所述一条或多条计算机指令由所述一个或多个处理器调用并执行;
所述多个物理机器采用映射归纳Map Reduce方式执行如下操作:
计算文本集合对应的至少一个签名索引项;
确定所述至少一个签名索引项分别相对各自索引的不同文本的重要程度;
基于所述重要程度,筛选每个文本的候选文本;
计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
本申请实施例中,首先计算文本集合对应的至少一个签名索引项,其中,每个签名索引项可以索引文本集合中的至少一个文本。每个签名索引项索引的不同文本之间可以认为相似度相对较高。之后计算该至少一个签名索引项分别相对各自索引的各个文本的重要程度,从而基于该至少一个签名索引项分别在不同文本中的重要程度,首先进行预选,筛选出每个文本的候选文本,从而计算文本相似度时,仅需要计算每个文本与其候选文本的相似度即可以获得每个文本的相似文本,可以大大降低计算量,提高文本匹配效率。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请提供的一种文本匹配方法一个实施例的流程图;
图2示出了本申请提供的一种文本匹配方又一个实施例的流程图;
图3a示出了本申请提供的一种文本匹配方又一个实施例的流程图;
图3b示出了本申请在一个实际应用中文本匹配的示意图;
图4示出了本申请提供的一种文本匹配装置一个实施例的结构示意图;
图5示出了本申请提供的一种文本匹配装置又一个实施例的结构示意图;
图6示出了本申请提供的一种计算设备一个实施例的结果示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本申请的技术方案可以应用于在信息检索、人机对话、高频问题发现以及舆情监控等应用场景中,在这些应用场景中存在大规模的文本相似度的计算,以从海量文本中查找每个文本匹配的TOP-K相似文本的需求。
例如在人机对话场景中,应用机器学习技术时,需要大量的带标签的训练数据,训练数据通常来自于历史记录的用户问题。现有技术中,需要对海量的用户问题人工打标签,费时费力。因此发明人想到可以首先对海量文本进行相似度分析,根据文本之间的相似度对文本聚类,从而就可以对同一类的文本进行批量打标签。
而由于海量文本进行相似度分析计算量非常大,为了解决这一技术问题,发明人经过一系列研究提出了本申请的技术方案。在本申请实施例中,首先计算文本集合对应的至少一个签名索引项,每个签名索引项与文本之间存在对应关系,每个签名索引项可以索引至少一个文本。每个签名索引项索引的不同文本之间可以认为相似度相对较高。之后计算该至少一个签名索引项分别相对各自索引的各个文本的重要程度,从而基于该至少一个签名索引项分别在不同文本中的重要程度,可以首先进行预选,筛选出每个文本的候选文本,从而计算文本相似度时,仅需要计算每个文本与其候选文本的相似度即可以获得每个文本的相似文本,而无需将每个文本与文本集合中其它各个文本均计算一遍相似度,可以大大降低计算量,提高文本匹配效率。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请提供的一种文本匹配方法一个实施例的流程图,该方法可以包括以下几个步骤:
101:计算文本集合对应的至少一个签名索引项。
其中,文本集合由多个文本构成。每个签名索引项与文本集合中的文本之间存在对应关系,每个签名索引项可以索引至少一个文本。签名索引项可以由签名片段以及签名片段在文本中的位置信息构成,签名片段可以由文本签名划分获得,文本签名可以由文本向量转化获得。
因此,可选地,所述计算文本集合对应的至少一个签名索引项可以包括:
计算文本集合中每个文本的文本签名;
划分每个文本签名为至少一个签名片段;
由每个签名片段及其在不同文本中的位置信息构成签名索引项。
其中,文本签名可以采用LSH((Locality-Sensitive Hashing,局部敏感哈希)或者SimHash(一种签名生成算法)算法获得,当然也可以采用其他方式实现,下面实施例中会详细介绍。
作为一种可选方式,可以首先将每个文本量化为文本向量,再将文本向量的各维数据归一化,来获得由归一化数据构成的文本签名。
因此,该计算文本集合中每个文本的文本签名可以包括:
计算文本集合中每个文本的文本向量;
将每个文本向量的各维数据进行归一化,转化为文本签名。
其中,将各维数据进行归一化可以是将各位数据转换为数值0/1,如果任一维数据大于0,则将其转换为数值1,如果小于等于0,则将其转换为数值0,也即最终获得的文本签名形成一个二进制数据。
例如,一个8维的文本向量为[0.2,0.3,-0.1,0.4,0.15,-0.05,-0.7,-0.4],归一化获得的一个8位的文本签名即为11011000。
其中,每个文本的文本签名的维度相同,在实际应用,可以具体是将每个文本转换为64位的文本签名。为了方便描述,在本文之前或之后的描述,通常以8位进行举例说明,本领域技术人员可以理解的是,这不是对本申请技术方案的具体限定。
其中,如果任意两个文本的文本签名相似,通常可以认为该任意两个文本的相似度较高。
其中,划分每个文本签名为至少一个签名片段具体可以是将每个文本签名进行平均划分,也即每个文本签名划分的段数以及每个签名片段的位数相同。其中,划分段数和/签名片段的位数可以预先设定。
例如,对于一个8位的文本签名11011000,平均划分为2段,即为1101和1000。
在实际应用中,对于一个64位的文本签名通常是平均划分为8个签名片段。
其中,如果任意两个文本存在至少一个相同的签名片段,可以认为该任意两个文本相较于不存在相同签名片段的情况,相似度较高。
由于一个文本签名划分获得的签名片段可能相同,例如文本签名10001000,两个签名片段均为1000,为了实现有效区分,可以结合签名片段在文本中的位置信息,生成签名索引项。
其中,位置信息可以采用阿拉伯数字进行依次编号,例如1、2、3……等。1即是指第一个签名片段,2即是第二个签名片段。
作为一种可选方式,该签名索引项可以表示为(签名片段,位置信息),例如对于8位的文本签名11011000,其划分的两个签名片段1101和1000分别对应的签名索引项可以是(1101,1)以及(1000,2)。
为了提高计算性能,作为另一种可选方式,由于签名片段也形成一个二进制数据,因此可以签名片段转换为十进制数据,并将位置信息作为最后一位。因此,所述由每个签名片段及其在不同文本中的位置信息构成签名索引项可以包括:
将每个签名片段转换为十进制数据;
将每个签名片段在每一文本中的位置信息,添加至其十进制数据的最后一位,获得签名索引项。
例如,对于签名片段1101,其对应的十进制数据为:1×23+1×22+0×21+1×20=13,该签名片段的位置信息为1,则构成的签名索引项即为:131。
其中,获得每个文本的签名索引项之后,可以建立签名索引项与文本之间的倒排索引关系,从而基于每个签名索引项可以获知其索引的不同文本。
例如假设文本集合中包括d1、d2、d3以及d4四个文本,d1的文本签名为11011000,其签名索引项为(1101,1)以及(1000,2);d2的文本签名为11011001,其签名索引项为(1101,1)以及(1001,2);d3的文本签名为10011111,其签名索引项为(1101,1)以及(1111,2);d4的文本签名为00011111,其签名索引项为(0001,1)以及(1111,2)。
建立签名索引项与文本的倒排索引关系即为:
(1102,1)→[d1,d2];
(1000,2)→[d1;
(1001,2)→[d2];
(1001,1)→[d3];
(1111,1)→[d3,d4];
(0001,1)→[d4]。
也即可以确定每个签名索引项索引的不同文本,例如签名索引项(1102,1)索引的文本包括d1及d2。
102:确定所述至少一个签名索引项分别相对各自索引的不同文本的重要程度。
103:基于所述重要程度,筛选每个文本的候选文本。
发明人在实现本申请技术方案的过程中发现,如果任意两个文本如果没有相同签名索引项可以认为相似性很小,可以忽略不计,而相同签名索引项数目越多,就表明越相似。因此也可以将与每个文本至少具有一个相同的签名索引项的文本作为候选文本,也即每个签名索引项索引的不同文本互为彼此的候选文本,以过滤掉与每个文本没有相同签名索引项的文本。但是这种方式选择出来的候选文本仍然数量庞大。因此,本申请实施例中,基于每个文本的签名索引项相对其索引的不同文本的重要程度,可以从文本集合中筛选获得每个文本的候选文本,进行相似判断的初步筛选。
由于对于一个文本,其对应的多个签名索引项对于文本进行相似判断时的所起的作用大小不同,因此,本申请实施例中,可以首先计算每个文本中的签名索引项的重要程度,由于一个签名索引项可以索引多个文本,也即计算每个签名索引项相对其索引的不同文本的重要程度。一个签名索引项在一个文本中的重要程度越高,其对于该文本的作用越大。
对于任意两个文本,如果存在相同的签名索引项,如果该相同的签名索引项对于各自文本的重要程度都很大,则该任意两个文本相似度相对较高,而如果该相同的签名索引项对于一个文本的重要程度很大,而对于另一个文本的重要程度很少,则该任意两个文本相似度相对较低。
且对于每个签名索引项索引的各个文本中,如果该签名索引项相对某些文本的重要程度较低,则在某些文本中该签名索引项可以忽略不计。
其中,基于重要程度,筛选每个文本的候选文本可以由多种实现方式,在下面实施例中会详细进行介绍。
104:计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
获得每个文本的候选文本之后,只需计算每个文本与其候选文本的相似度即可以,而无需与文本集合中的全部文本进行计算。
基于相似度,即可以按照相似度由高到低的顺序,选择K个文本作为其相似文本,也即TOP-K相似文本。其中,K为正整数,结合实际需求设定。
本申请实施例中,由于仅需要计算每个文本与其候选文本的相似度即可以获得每个文本的相似文本,而无需将每个文本与文本集合中其它各个文本均计算一遍相似度,可以大大降低计算量,提高文本匹配效率。
在实际应用中,为了进一步提高计算性能,进一步提高文本匹配效率,本申请实施例的技术方式可以应用于分布式集群系统中,分布式集群系统可以采用Map(映射)Reduce(归纳)架构。在Map Reduce架构中,由多个Map节点以及多个Reduce节点构成,Map节点负责数据分类,获得key-value(键值)对,key即表示类型,再将键值对分发至Reduce节点,保证同一类别数据被分配给同一个Reduce节点进行处理即可。
因此上述每一个步骤操作均可以采用MapReduce方式执行。
作为一种可能的实现方式,步骤101~步骤102的执行操作计算量较少,对处理性能要求不高,因此可以由任意Map节点执行
对于步骤103,可以由任意Map节点确定每个文本作为key,文本集合以及签名索引项的重要程度为value;将键值对分发给任意Reduce节点,由每个Reduce节点基于签名索引项的重要程度,筛选获得其接收到的每个文本的候选文本。
对于步骤104,可以由任意Map节点确定每个文本作为key,每个文本的候选文本作为value;将键值对分发给任意Reduce节点,由每个Reduce节点计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
当然,为了减少网络传输数据量,Map节点向Reduce节点可以不传输文本本身,而是文本标识,例如UUID,以降低传输量。
当然,由于相似度计算的计算量很大,步骤104的操作可以由任意Map节点触发由一个或多个计算节点构成的分布式计算系统执行,计算节点可以为具备计算能力的计算机设备,在下面实施例中会详细进行介绍。
其中,在某些实施例中,所述基于所述重要程度,筛选每个文本的候选文本可以包括:
按照所述重要程度从大到小的顺序进行筛选,获得每个签名索引项索引的第一数量的文本构成的预选集;
基于每个签名索引项索引的预选集,确定每个文本的候选文本。也即对于每个签名索引项索引的不同文本,按照该签名索引项在该不同文本中的重要程度从大到小的顺序进行排序,并按照该排序结果,取前N个文本,为了方便描述,由每个签名索引项索引的该N个文本形成的文本集合命名为预选集。其中,N表示所述第一数量,其为正整数,且N大于K。
由于对于每个签名索引项索引的不同文本中,如果该签名索引项相对某些文本的重要程度较低,对于相似判断起到的作用较小,则在某些文本中该签名索引项可以忽略不计。本实施例中据此可以首先进行初步预选,获得每个签名索引项索引的第一数量的文本构成的预选集,从而可以基于每个签名索引项索引的预选集,确定每个文本的候选文本。
作为一种可选方式,所述基于每个签名索引项索引的预选集,确定每个文本的候选文本可以是:
基于每个签名索引项索引的预选集,确定与每个文本具有相同签名索引项的候选文本。其中,该相同的签名索引项包括至少一个。
也即针对每个文本,将其不同签名索引项索引的预选集中文本作为候选文本。也就是说该每个签名索引项索引的预选集中的各个文本互为彼此的候选文本。例如对于一个文本的L个签名索引项对应有预选集,每个预选集中包括N个文本,则从L*N个文本,去掉重复文本,剩余的即为该文本的候选文本。
作为另一种可选方式,为了进一步降低计算量,由于为了保证准确度,第一数量往往比较大,仅是将从每个签名索引项索引的预选集,确定与每个文本具有相同签名索引项的文本作为候选文本,候选文本的数量仍然比较多。
因此,如图2中所示的文本匹配方法的又一个实施例,该方法可以包括以下几个步骤:
201:计算文本集合中每个文本的文本签名。
202:划分每个文本签名为至少一个签名片段。
203:由每个签名片段及其在不同文本中的位置信息构成签名索引项。
204:确定每个签名索引项相对其索引的不同文本的重要程度。
205:按照所述重要程度从大到小的顺序进行筛选,获得每个签名索引项索引的第一数量的文本构成的预选集。
206:基于每个签名索引项索引的预选集,确定与每个文本具有相同签名索引项的初选文本。
207:计算每个文本与其任一初选文本具有相同签名索引项的共有个数。
208:按照所述共有个数从大到小的顺序,从每个文本的初选文本中筛选第二数量的候选文本。
209:计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
本实施例中,将从每个签名索引项索引的预选集,确定的与每个文本具有相同签名索引项的文本作为初选文本,每个文本与其初选文本具有至少一个相同的签名索引项。
而由于对于任意两个文本,如果具有相同的签名索引项的数目越多,表明该任意两个文本越相似,因此可以计算每个文本与其初选文本具有相同签名索引项的共有个数,该共有个数也即是具有相同的签名索引项的数目。从而再根据所述共有个数从大到小的顺序进行进一步的筛选,从每个文本的初选文本中选择前M个初选文本作为候选文本。其中,M表示该第二数量,为正整数,M大于K且小于N。
其中,K值可以预先设定,第一数量N以及第二数量M可以结合K值大小进行设置,在实践中,K值可以为100,第一数量N为10000,第二数量M为1000。
经过进一步的筛选,可以每个文本的候选文本数量进一步降低,从而可以进一步降低计算量,提高文本批量的效率。
其中,本实施例中,如果采用Map Reduce方式,作为一种可能的实现方式:
步骤201~步骤204的执行操作计算量较少,对处理性能要求不高,因此可以由任意Map节点执行;
对于步骤205:可以由任意Map节点确定签名索引项作为key、签名索引项索引的各个文本以及签名索引项在各个文本中的重要程度作为value,将键值对分发至任意Reduce节点,由每个Reduce节点按照重要程度从大到小的顺序进行筛选,获得其接收到的由每个签名索引项索引的第一数量的文本构成的预选集;从而即可以获得每个签名索引项索引的预选集。
对于步骤206~步骤208的操作可以在一个Map Reduce阶段完成,具体的:
由任意Map节点确定每个文本作为key,文本集合以及每个签名索引项索引的预选集作为value,将键值对分发至任意Reduce节点;由每个Reduce节点基于每个签名索引项索引的预选集,确定与其接收到的每个文本具有相同签名索引项的初选文本;计算每个文本与其初选文本具有相同签名索引项的共有个数;按照所述共有个数从大到小的顺序,从每个文本的初选文本中筛选第二数量的候选文本。
根据各个Reduce节点的处理结果,即可以获得每个文本的候选文本。
作为又一种可选方式,为了进一步降低计算量,所述基于每个签名索引项索引的预选集,确定每个文本的候选文本可以包括:
基于每个签名索引项索引的预选集,确定与每个文本具有相同索引项的初选文本;
根据每个文本与其任一初选文本的相同签名索引项,在所述任一初选文本中的重要程度,计算所述任一初选文本相对每个文本的总重要程度;
按照所述总重要程度由大到小的顺序,从每个文本中初选文本中筛选第二数量的候选文本。
其中,可选地,可以是将每个文本与其任一初选文本共有的相同签名索引项,在所述任一初选文本中的重要程度进行叠加,获得所述任一初选文本相对每个文本的总重要程度;
其中,如果每个文本对应的多个初选文本的总重要程度相同,则可以按照相同签名索引项的共有个数由大到小的顺序进行选择。
例如文本d1的初选文本包括d2、d3以及d4;
d1与d2共有的相同签名索引项包括A和B,A相对d2的重要程度为0.2,B相对d2的重要程度为0.6;则d2的总重要程度可以为0.2+0.6=0.8;
d1与d3共有的相同签名索引项包括C,C相对d3的重要程度为0.6;d3的总重要程度也即为0.6;
d1与d4的共有的相同签名索引项包括A、B以及C,A相对d4的重要程度为0.2;B相对d4的重要程度为0.3;C相对d4的重要程度为0.1,则d4的总重要程度可以为0.2+0.3—+0.1=0.6;
假设第二数量为2,由于d3与d4的总重要程度相同,但是d1与d4的共有的相同签名索引项的个数大于d1与d3共有的相同签名索引项的个数。因此可以获得d1的候选文本为:d2以及d4。
作为又一种可选方式,为了进一步降低计算量,所述基于每个签名索引项索引的预选集,确定每个文本的候选文本可以包括:
基于每个签名索引项索引的预选集,确定与每个文本具有相同签名索引项的初选文本;
计算每个文本与其任一初选文本针对相同签名索引项的重要程度差值;
基于所述重要程度差值,从每个文本的初选文本确定候选文本。
也即将从每个签名索引项索引的预选集,确定的与每个文本具有相同签名索引项的文本作为初选文本,每个文本与其初选文本具有至少一个相同的签名索引项。
由于一个文本中的签名索引项重要程度决定了该签名索引项对于文本进行相似判断时的作用大小。重要程度越大,表明该签名索引项的作用越大。
而如果任意两个文本存在相同的签名索引项,但是相同的签名索引项在各自文本中的重要程度相差较大,相对于重要程度相差较小的情况,相似可能性会比较小。据此可以对每个文本的初选文本进行进一步的筛选,基于每个文本与其初选文本针对相同签名索引项的重要程度差值,来选择候选文本。
其中,基于所述重要程度差值,从每个文本的初选文本中确定候选文本可以包括:
如果每个文本与其任一个初选文本具有一个相同的签名索引项,如果所述文本与所述任一个初选文本的重要程度差值小于第一预设值,确定所述任一个初选文本为候选文本;
如果每个文本与其任一个初选文本具有多个相同的签名索引项,计算每个文本与其任一个初选文本针对每个相同的签名索引项的重要程度差值,获得多个重要程度差值;
计算所述多个重要程度差值的平均值;
如果所述平均值所述小于第二预设值,确定所述任一个初选文本为候选文本。
此外,如果每个文本与其任一个初选文本具有多个相同的签名索引项,计算每个文本与其任一个初选文本针对每个相同签名索引项的重要程度差值,获得多个重要程度差值之后,可以是如果所述多个重要程度差值均小于所述第二预设值或者所述多个重要程度差值中存在预设数量的重要程度差值小于第二预设值,则也可以确定所述任一个初选文本为候选文本。
在上述一个或多个实施例中,如果文本集合中每个文本的文本签名由其文本向量进行归一化转换获得时,作为一种可选方式,文本向量的计算可以按照如下方式实现:
将文本集合中每个文本进行分词,获得每个文本对应的至少一个词串;
计算每个词串的词向量;
将每个文本中各个词串的词向量加权平均,获得每个文本的文本向量。
每个词串的词向量长度以及维度均相同,将各个词向量中同一位置处的数据进行加权平均,即获得文本向量的对应该位置的数据。
例如,假设一个文本由两个词串构成,每个词串的词向量分别为[0.1,-0.1,0.1,-0.3,0.25,0.1,-0.1,0.7]以及[0.2,-0.4,0.1,0.5,0.15,-0.2,-0.1,0.3],假设每个词串的词向量的权重系统均为0.5,也即将词向量进行加和平均,获得的文本向量即为[0.15,-0.25,0.1,0.1,0.2,-0.05,-0.1,0.5],
也即文本向量中的第一维数据0.15=(第一词向量的第一维数据0.1+第二个词向量的第一维数据0.2)/2,依次类推,即可以计算获得文本向量中的各维数据。
获得文本向量之后,根据各维数据的数值正负进行归一化,即可以获得文本签名。本申请实施例中,文本签名的位数与文本向量的维度相同,文本向量的维度与词向量的维度相同。
此外,在某些实施例中,所述计算每个词串的词向量可以包括:
从预训练的词表中查找每个词的词向量;
其中,所述预训练的词表可以按照如下方式预先获得:
将各个训练文本进行分词,获得由各个训练文本的词串构成的词表;
计算词表中每个词串的词向量,对应保存在所述词表中。
该训练文本与文本集合同属同一个领域,训练文本规模很大,可以为千万级或者亿万级别。所建立的词表中的各个词串由各个训练文本分词获得。其中,每个词串的词向量可以采用Word2Vec(一种用于获取词向量的工具包)技术或者FastText(一种快速文本分类器)技术实现,使得生成的词向量结合了上下文,因此获得的词向量的每一个维度都隐含着语义信息。
且文本向量可以由词向量进行加权平均获得,使得文本向量也即含语义信息。相较于SimHash算法和LSH算法,文本向量具有语义特性,从而寻找候选文本时,不仅可以找到包含相同字词的文本,同时也可以找到表述不同但是语义相同的文本,例如在电商领域中“要真人”和“找客服”表述不一样,但是语义是相同的。从而可以进一步保证文本匹配的准确度,避免遗漏。
其中,将文本集合中的每个文本进行分词,获得每个文本对应的至少一个词串,从预训练的词表中查找每个词串的词向量时,若任一词串不包含在词表中,也即不存在该任一词串对应的词向量时,则可以将该任一个词串从文本中舍弃,不采用其来计算文本向量,或者可以将该任一个词串随机赋予一个词向量。
例如,以″身高170,体重65kg″这个文本为例,我们首先进行分词获得的词串包括“身高”,“170”,“,”,“体重”,“65kg”。
假设词表中只含有“身高”和“体重”这两个词串,则对于其它词串即可以丢弃,仅根据“身高”和“体重”这两个词串的词向量计算文本向量。
此外,对文本集合中的每个文本进行分词之前,可以首先去除无意义的符号或标点,对无需区分的词串,例如数字以及链接等可以采用预设词表示以进行归一化处理。
此外,在某些实施例中,所述确定所述至少一个签名索引项相对各自索引的不同文本的重要程度可以包括:
针对每个签名索引项索引的任一文本,计算每个签名索引项的签名片段在所述任一文本中的向量值占比;
将每个签名索引项的签名片段在所述任一文本中的向量值占比,作为所述每个签名索引项相对所述任一文本的重要程度。
其中,每个签名索引项的签名片段在所述任一文本中的向量值占比可以是基于所述每个签名索引项的签名片段对应的各维数据构成的向量以及所述任一文本的文本向量计算获得。
由于文本签名是基于各维数据的数值正负进行归一化获得的,该向量值占比表明了每个签名索引项的签名片段对应的各维数据构成的向量相对于0的偏移程度,以及与其索引文本的文本向量相对0的偏移程度的比值
具体的可以将签名片段对应的各维数据的模值之和除以文本向量的各维数据的模值之和。
例如[0.15,-0.25,0.1,0.1,0.2,-0.05,-0.1,0.5],签名为10111001。假设该文本签名分成两个签名片段,第1个签名片段1011以及第2个签名段1001,签名索引项分别为(1101,1)以及(1001,2)。其中,对于签名索引项(1101,1)其签名片段1101的向量即为[0.15,-0.25,0.1,0.1],则签名索引项相对该文本的重要程度可以为:(|0.15|+|-0.25|+|0.1|+|0.1|)/(|0.15|+|-0.25|+|0.1|+|0.1|+|0.2|+|-0.05|+|-0.1|+|-0.5|)=0.6/1.45=0.4138,其中“||”表示取绝对值。
当然,还可以采用其他计算方式来计算签名索引项相对其索引的文本的重要程度,例如可以计算签名索引项的签名片段对应的各维数据的平方和与其索引文本的文本向量中各维数据的平方和的比值,作为该签名索引项相对其索引文本的重要程度。
本申请实施例中,确定出文本集合中每个文本的候选文本之后,需要计算每个文本与其候选文本的相似度,以此来选取每个文本的相似文本。
其中,为了提高计算性能,可以由单独的计算系统计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
因此,在某些实施例中,所述计算每个文本与其候选文本的相似度,以获得每个文本的相似文本可以包括:
将每个文本的文本向量及其候选文本的文本向量发送至计算系统;
触发所述计算系统计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
此外,由于直接传输文本向量会导致数据传输量很大。为了降低数据传输量,在某些实施例中,所述计算每个文本与其候选文本的相似度,以获得每个文本的相似文本可以包括:
将所述词表、每个文本及其候选文本传输至计算系统;
触发所述计算系统基于所述词表计算获得每个文本及其候选文本的文本向量,并基于所述文本向量计算获得每个文本及其候选文本的相似度,以获得每个文本的相似文本。
也即不直接传输文本向量,而是传输词表,由计算节点基于词表,计算获得每个文本及其候选文本的文本向量,再计算文本相似度。
其中,基于所述词表计算获得每个文本及其候选文本的文本向量可以是:
将每个文本及其候选文本分别进行分词,获得每个文本的词串及其候选文本的词串;从所述词表中查找每个词串的词向量;从而对于每个文本将其各个词串的词向量加权平均,即文本向量。
由于如果直接传输文本向量,文本向量的维度较高,每一维都是浮点数字(即需要4个字节32位进行存储),假设每个文本与其每个候选文本形成一个候选句对,假设有50亿个候选句对,每个文本向量为64维,则需要传输的数据量至少为50亿*64*4=1280GB。
而如果直接传输文本以及词表,对于50亿个候选句对的数据传输量为50亿×32×2=32GB,其中,每个句子用长度为32的字符串UUID标记,每个字符占用2字节,按照链式方式存储。词表的数据传输量为(V=103451)×64×4×≈0.02GB,其中V表示词表大小,C为计算节点个数,词向量维度为64,每个维度用4字节浮点数表示。可知,相较于直接传输文本向量,通过传输词向量的方式可以大大降低数据传输量。
此外,为了进一步降低数据传输量,由于词表中包括的词串较多,而文本集合中各个文本分词获得词串可能小于词表中的词串数量。
因此,所述计算每个文本与其候选文本的相似度,以获得每个文本的相似文本可以是:
将所述文本集合对应的词向量集、每个文本及其候选文本传输至计算系统;
触发所述计算系统基于所述词向量集,计算获得每个文本及其候选文本的文本向量,并基于所述文本向量计算获得每个文本及其候选文本的相似度,以获得每个文本的相似文本。
其中,文本集合对应的词向量集可以基于各个文本分词获得的词串查找词表获得。该词向量集中包括不同词串及其词向量。
此外,为了提高计算效率,所述计算每个文本与其候选文本的相似度,以获得每个文本的相似文本可以包括:
由每个文本及其候选文本形成一候选句集,以获得多个候选句集;
将所述多个候选句集分发至多个计算节点;
将所述文本集合对应的词向量集分别发送至所述多个计算节点;
触发每个计算节点基于所述词向量集计算接收到的每个文本及其候选文本的文本向量,并基于所述文本向量计算接收到的每个文本及其候选文本的相似度,以获得接收到的每个文本的相似文本。
其中,将多个候选句集分发至多个计算节点可以是将多个候选句集平均分发至多个计算节点,例如文本集合包括4个文本,每个文本及其候选文本形成一个候选句集,可以对应获得4个候选句集,可以将前两个候选句集发送至一个计算节点,而将后两个候选句集发送至另一个计算节点。
当然也可以结合计算节点的计算性能,向每个计算计算节点分配合适数量的候选句集。计算节点可以为具备计算能力的计算机设备。
由于如果文本d1为文本d2的候选文本,那么文本d2也可能为文本d1的候选文本。采用本申请实施例的技术方案,可能存在任意两个文本重复计算相似度的问题出现。
因此,为了进一步降低计算量,所述将所述多个候选句集分发至多个计算节点可以包括:
针对任一个候选句集,判断是否存在已发送的候选句对;
如果存在,从所述任一个候选句集中删除所述候选句对中的候选文本;
将执行删除操作之后的候选句集发送至相应的计算节点。
也即每个候选句集中,每个文本与其每个候选文本均构成一个候选句对。已发送候选句对从已发送的候选句集中查找获得的。
例如文本d1的候选文本包括d2、d3、d4、d5以及d6;
文本d5的候选文本包括d1、d7、d8、d9。
如果文本d1及其候选文本d2、d3、d4、d5以及d6发送至计算节点进行计算。当请求发送文本d5时,可知d5与d1形成的候选句对已经发送,则将d1从d5的候选文本删除,再将d5及其候选文本d7、d8、d9发送至相应的计算节点。
此外,如果直接传输文本向量,则可以将每个文本的文本向量与其候选文本的文本向量形成一个向量集,获得多个向量集;将所述多个向量集分发至多个计算节点;触发每个计算节点基于接收到的每个文本的文本向量及其候选文本的文本向量,计算接收到的每个文本与其候选文本的相似度,以获得接收到的每个文本的相似文本。
其中,上述一个或多个实施例中,计算每个文本与其候选文本的相似度可以采用文本向量之间的余弦距离、汉明距离、欧式距离等表示。
可选地,作为又一个实施例,所述计算每个文本与其候选文本的相似度,以获得每个文本的相似文本可以包括:
将每个文本与其候选文本分别进行归一化,获得各自的归一化向量;
计算每个文本的归一化向量与其候选文本的归一化向量的向量点积;
将所述向量点积作为每个文本与其候选文本的相似度;
按照相似度由大到小的顺序,获得每个文本的相似文本。
例如,假设文本d1的文本向量为[0.1,0.2],其候选文本d2的文本向量为[0.3,0.4],文本d1的归一化向量为[0.4472,0.8944],文本d2的归一化向量为[0.6,0.8],其中,0.4472=0.1/sqrt(0.1×0.1+0.2×0.2),sqrt表示开平方根,其他以此类推。
向量点积为0.4472×0.6+0.8944×0.8=0.7483。因此文本d1与文本d2的相似度为0.7483。
在一个实际应用中,本申请实施例的技术方案可以应用于利用机器学习技术实现的人机对话场景中,利用机器学习算法可以训练获得语言模型,而语言模型的获得依赖于大量的带有标签的训练数据,而训练数据通常来自于历史记录的用户问题,现有技术中需要人工逐一设置标签,工作量较大,效率也慢。
因此,本申请实施例中文本集合可以是指用户问题集。通过本申请实施例可以快速获得在用户问题集中,每个问题的相似问题,从而实现问题聚类,可以实现对同一类的用户问题批量设置标签,提高标签设置的效率。
其中,基于每个问题的相似文本,进行问题聚类的方式与现有技术相同,本申请不再赘述。
本申请实施例的技术方案可以适用于对长文本或者短文本的文本匹配,特别适用于短文本之间的文本匹配,短文本也即是句子。文本向量也即为句子向量,文本签名也即句子签名。
下面为短文本为例,对本申请实施例的技术方案进行描述。
图3a为本申请实施例提供的一种文本匹配方法又一个实施例的流程图,该方法可以包括以下几个步骤:
301:将句子集合中每个句子进行分词,获得每个句子对应的至少一个词串;
302:从预训练的词表中查找每个词串的词向量;
303:将每个句子中各个词串的词向量加权平均,获得每个句子的句子向量。
其中,该预训练的词表可以按照如下方式预先获得:
将语料库中各个训练句子进行分词,获得由各个训练句子的词串构成的词表;
计算所述词表中每个词串的词向量,对应保存在所述词表中。
304:将每个句子向量的各维数据进行归一化,转换为句子签名,并划分每个句子签名为至少一个签名片段。
305:由每个签名片段及其在不同句子中的位置信息构成签名索引项;
可选地,将每个签名片段转换为十进制数据;
将每个签名片段在每一句子中的位置信息,添加至其十进制数据的最后一位,获得签名索引项。
306:计算每个签名索引项相对其索引的不同句子的重要程度。
可选地,可以是针对每个签名索引项索引的任一句子,计算每个签名索引项的签名片段在所述任一句子中的向量值占比;
将每个签名索引项的签名片段在所述任一句子中的向量值占比,作为所述每个签名索引项相对所述任一句子的重要程度。
307:按照所述重要程度从大到小的顺序进行筛选,获得每个签名索引项索引的第一数量的文本构成的预选集;
308:基于每个签名索引项索引的预选集,确定与每个句子具有相同索引项的初选句子。
309:根据每个句子与其任一初选句子的相同签名索引项,在所述任一初选句子中的重要程度,计算所述任一初选句子相对每个句子的总重要程度;
具体的,可以是将每个句子与其任一初选句子共有的相同签名索引项,在所述任一初选句子中的重要程度进行叠加,获得所述任一初选文本相对每个句子的总重要程度。
310:按照所述总重要程度从大到小的顺序,从每个句子的初选句子中筛选第二数量的候选句子。
311:由每个句子及其候选句子形成一候选句集,以获得多个候选句集。
312:将所述多个候选句集分发至多个计算节点。
313:将所述句子集合对应的词向量集分别发送至所述多个计算节点。
其中步骤312步骤313的操作可以同时进行。
其中,该句子集合对应的词向量集,由各个句子分词获得的词串的词向量构成,其中,各个句子分词获得的词串的词向量从词表中查询获得。
314:触发每个计算节点基于所述词向量集计算接收到的每个句子及其候选句子的句子向量,并基于所述句子向量计算接收到的每个句子及其候选句子的相似度,以获得接收到的每个句子的相似句子。
通过本申请实施例的技术方案,文本向量可以基于含有语义信息的词向量形成,文本签名通过进行语义哈希,将文本向量归一化获得,使得文本签名能够更好的刻画文本的意义,从而可以找到与每个文本表述不同但是意思相同的候选文本。
另外,本申请实施例基于签名索引项的重要程度,实现了每个文本的候选文本的高效筛选,首先从签名索引项索引的不同文本中筛选获得由N个文本构成的预选集,之后,再根据与每个文本具有的相同签名索引项的数目多少,筛选获得每个文本的M个候选文本,大大降低了计算量。
其中,本实施例中,如果采用Map Reduce方式,如图3b中所示,作为一种可能的实现方式:
步骤301~步骤306的执行操作计算量较少,对处理性能要求不高,因此可以由任意Map节点执行,获得每个签名索引项相对其索引的不同句子的重要程度。图3b中的第一阶段,以d1、d2、d3三个句子为例进行说明,d1的签名索引项包括A、C、E,d2的签名索引项包括A、D、E,d3的签名索引项包括B、D、E,其中,A相对d1的重要程度为w1 A,C相对d1的重要程度为w1 C,E相对d1的重要程度为w1 E;A相对d2的重要程度为w2 A,D相对d2的重要程度为w2 D,,E相对d2的重要程度为w2 E;B相对d3的重要程度为w3 B,D相对d3的重要程度为w3 D,E相对d3的重要程度为w3 E。
对于步骤307,可以由任意Map节点确定签名索引项作为key、签名索引项索引的各个句子以及签名索引项在各个句子中的重要程度作为value,将键值对分发至任意Reduce节点,由每个Reduce节点按照重要程度从大到小的顺序进行筛选,获得其接收到的由每个签名索引项索引的第一数量的文本构成的预选集;从而合并各个Reduce节点即可以获得每个签名索引项索引的预选集。如图3b中的第二阶段所示,假设获得A索引的预选集包括d1以及d2,B索引的预选集包括d3,C索引的预选集包括d1,D索引的预选集包括d2以及d3,E索引的预选集包括d1、d2以及d3。
对于步骤308~步骤310的操作在一个Map Reduce阶段完成,可以由任意Map节点确定每个句子作为key,句子集合以及每个签名索引项索引的预选集作为value;将键值对分发给任意Reduce节点,由每个Reduce节点基于每个签名索引项索引的预选集,确定与其接收到的每个句子具有相同签名索引项的初选句子;将每个句子与其任一初选句子共有的相同签名索引项,在所述任一初选句子中的重要程度进行叠加,获得所述任一初选句子相对每个句子的总重要程度;按照所述总重要程度由大到小的顺序,从每个句子的初选句子中筛选第二数量的候选句子。综合各个Reduce节点的处理结果,即可以获得文本集合中每个句子的候选句子文本。如图3b中所示第三阶段中,d1的初选句子包括d2以及d3,其中,d1与d2具有两个共有的签名索引项,因此d2相对d1的总重要程度为w2 A+w2 E,d3相对d1的总重要程度即为w3 E;d2的初选句子包括d1以及d3,且与d1以及d3分别共有两个签名索引项,d1相对d2的总重要程度为w1 A+w1 E,d3相对d2的总总重要程度为w3 D+w3 E;d3的初选句子包括d1以及d2,且与d2共有两个签名索引项,则d1相对d3的总重要程度为w1 E,d2相对d3的总重要程度为w2 D+w2 E;按照总重要程度由大到小的顺序,即可以获得每个句子的候选句子,假设d1的候选句子包括d2;d2的候选句子包括d3;d3的候选句子包括d2。
步骤311~步骤314的操作,可以由任意Map节点执行。该计算节点可以为具备计算能力的计算机设备。如图3b中的第四阶段,由任意Map节点将多个候选句集分发至多个计算节点,并将词向量集分别发送至所述多个计算节点。
图4为本申请提供的一种文本匹配装置一个实施例的结构示意图,该装置可以包括:
第一计算模块401,用于计算文本集合对应的至少一个签名索引项。
作为一种可选方式,所述第一计算模块可以包括:
签名计算单元,用于计算文本集合中每个文本的文本签名;
签名划分单元,用于划分每个文本签名为至少一个签名片段;
索引项确定单元,用于由每个签名片段及其在不同文本中的位置信息构成签名索引项。
其中,可选地,所述签名计算单元可以具体用于计算文本集合中每个文本的文本向量;将每个文本向量的各维数据进行归一化,转换为文本签名。
其中,将各维数据进行归一化可以是将各位数据转换为数值0/1,如果任一维数据大于0,则将其转换为数值1,如果小于等于0,则将其转换为数值0,也即最终获得的文本签名形成一个二进制数据。
所述文本签名由二进制数据组成时,所述索引项确定单元可以具体用于将每个签名片段转换为十进制数据;将每个签名片段在每一文本中的位置信息,添加至其十进制数据的最后一位,获得签名索引项。
第二计算模块402,用于确定所述至少一个签名索引项分别相对各自索引的不同文本的重要程度。
筛选模块403,用于基于所述重要程度,筛选每个文本的候选文本。
文本匹配模块404,用于计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
可选地,所述文本匹配模块可以具体用于:将每个文本与其候选文本分别进行归一化,获得各自的归一化向量;计算每个文本的归一化向量与其候选文本的归一化向量的向量点积;将所述向量点积作为每个文本与其候选文本的相似度;按照相似度由大到小的顺序,获得每个文本的相似文本。
本申请实施例中,由于仅需要计算每个文本与其候选文本的相似度即可以获得每个文本的相似文本,而无需将每个文本与文本集合中其它各个文本均计算一遍相似度,可以大大降低计算量,提高文本匹配效率。
此外,作为又一个实施例,如图5所示,与图4不同之处在于,所述筛选模块403可以包括:
预选单元501,用于按照所述重要程度从大到小的顺序进行筛选,获得每个签名索引项索引的第一数量的文本构成的预选集;
候选单元502,用于基于每个签名索引项索引的预选集,确定每个文本的候选文本。
作为一种可选方式,所述候选单元可以具体用于:
基于每个签名索引项索引的预选集,确定与每个文本具有相同索引项的初选文本;
计算每个文本与其初选文本具有相同签名索引项的共有个数;
按照所述共有个数从大到小的顺序,从每个文本的初选文本中筛选第二数量的候选文本。
作为另一种可选方式,所述候选单元可以具体用于:
基于每个签名索引项索引的预选集,确定与每个文本具有相同索引项的候选文本。
作为又一种可选方式,所述候选单元可以具体用于:
基于每个签名索引项索引的预选集,确定与每个文本具有相同索引项的初选文本;
根据每个文本与其任一初选文本的相同签名索引项,在所述任一初选文本中的重要程度,计算所述任一初选文本相对每个文本的总重要程度;
按照所述总重要程度由大到小的顺序,从每个文本中初选文本中筛选第二数量的候选文本。
作为又一种可选方式,所述候选单元可以具体用于:
基于每个签名索引项索引的预选集,确定与每个文本具有相同签名索引项的初选文本;
计算每个文本与其任一初选文本针对相同签名索引项的重要程度差值;
基于所述重要程度差值,从每个文本的初选文本中确定候选文本。
其中,在某些实施例中,所述签名计算单元计算文本集合中每个文本的文本向量可以具体是将文本集合中每个文本进行分词,获得每个文本对应的至少一个串;计算每个词串的词向量;将每个文本中各个词串的词向量加权平均,获得每个文本的文本向量。
在某些实施例中,所述签名计算单元计算每个词串的词向量具体是从预训练的词表中查找每个词串的词向量;
所述装置还可以包括:
预训练模块,用于将各个训练文本进行分词,获得由各个训练文本的词串构成的词表;计算所述词表中每个词串的词向量,对应保存在所述词表中。
其中,在某些实施例中,所述第二计算模块可以具体用于:针对每个签名索引项索引的任一文本,计算每个签名索引项的签名片段在所述任一文本中的向量值占比;将每个签名索引项的签名片段在所述任一文本中的向量值占比,作为所述每个签名索引项相对所述任一文本的重要程度。
具体的可以将签名片段对应的各维数据的模值之和与文本向量的各维数据的模值之和的比值,作为向量值占比。
本申请实施例中,确定出文本集合中每个文本的候选文本之后,需要计算每个文本与其候选文本的相似度,以此来选取每个文本的相似文本。
其中,为了提高计算性能,在某些实施例中,所述文本匹配模块具体用于:将所述文本集合对应的词向量集、每个文本及其候选文本传输至计算系统;
触发所述计算系统基于所述词向量集计算获得每个文本及其候选文本的文本向量,并基于所述文本向量计算获得每个文本及其候选文本的相似度,以获得每个文本的相似文本。
此外,由于直接传输文本向量会导致数据传输量很大。为了降低数据传输量,在某些实施例中,所述文本匹配模块可以具体用于:
由每个文本及其候选文本形成一候选句集,以获得多个候选句集;
将所述多个候选句集分发至多个计算节点;
将所述文本集合对应的词向量集分别发送至所述多个计算节点;
触发每个计算节点基于所述词向量集计算接收到的每个文本及其候选文本的文本向量,并基于所述文本向量计算接收到的每个文本及其候选文本的相似度,以获得接收到的每个文本的相似文本。
其中,每个计算节点计算文本相似度可以是将其接收到每个文本与其候选文本分别进行归一化,获得各自的归一化向量;计算其接收到的每个文本的归一化向量与其候选文本的归一化向量的向量点积;将所述向量点积作为其接收到的每个文本与其候选文本的相似度;按照相似度由大到小的顺序,获得每个文本的相似文本。
需要说明的是,图4或图5所述的文本匹配装置可以执行图1~图3任一图示实施例所述的文本匹配方法,其实现原理和技术效果不再赘述。对于上述实施例中的文本匹配装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在一个可能的设计中,图4或图5所示实施例的文本匹配装置可以实现为一计算设备。
如图6所示,该计算设备可以包括一个或多个存储器601以及一个或多个处理器602;
所述一个或多个存储器601存储一条或多条计算机指令;所述一条或多条计算机指令由所述一个或多个处理器602调用并执行;
所述一个或多个处理器602用于:
计算文本集合对应的至少一个签名索引项;
确定所述至少一个签名索引项分别相对各自索引的不同文本的重要程度;
基于所述重要程度,筛选每个文本的候选文本;
计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
可选地,所述一个或多个处理器可以用于实现上述任一实施例所述的文本匹配方法。
其中,存储器被配置为存储各种类型的数据以支持计算设备的操作。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器可以为一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器、CPU或其他电子元件实现,用于执行上述方法。
当然,计算设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。
输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。
通信组件被配置为便于计算设备和其他设备之间有线或无线方式的通信。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现上述图1~图3任一图示实施例所述的文本匹配方法。
为了提高计算性能,本发明技术方案可以采用Map Reduce方式执行,因此本申请实施例还提供一种集群系统,由多个物理机器构成;该多个物理机器采用Map Reduce架构部署。每一个物理机器包括一个或多个存储器以及一个或多个处理器;所述一个或多个存储器存储一条多条计算机指令;所述一条或多条计算机指令由所述一个或多个处理器调用并执行;
所述多个物理机器采用Map Reduce方式执行如下操作:
计算文本集合对应的至少一个签名索引项;
确定所述至少一个签名索引项分别相对各自索引的不同文本的重要程度;
基于所述重要程度,筛选每个文本的候选文本;
计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
其中,在任一个物理机器中可以部署Map Reduce的调度节点;
在每一个物理机器中可以部署一个或多个Map节点,和/或一个或多个Reduce节点;
其中,调度节点分别与各个map节点以及各个reduce节点连接,用以调度并控制各个map节点以及各个reduce节点。
所述多个物理机器采用Map Reduce方式具体执行如下操作:
调度节点控制任意Map节点计算文本集合对应的至少一个签名索引项;确定所述至少一个签名索引项分别相对各自索引的不同文本的重要程度;
调度节点控制任意Map节点确定每个文本作为key,文本集合以及签名索引项的重要程度作为value;将键值对分发给任意Reduce节点;控制每个Reduce节点基于签名索引项的重要程度,筛选获得其接收到每个文本的候选文本。
调度节点控制任意Map节点将每个文本作为key,每个文本的候选文本以及文本签名作为value;将键值对分发给任意Reduce节点;控制每个Reduce节点计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
当然,可选地,还可以是调度节点控制任意Map节点由每个文本及其候选文本形成一候选句集,获得多个候选句集;将所述多个候选句集分发至多个计算节点;将所述文本集合对应的词向量集分别发送至所述多个计算节点;触发每个计算节点基于所述词向量集计算接收到的每个文本及其候选文本的文本向量,并基于所述文本向量计算接收到的每个文本及其候选文本的相似度,以获得接收到的每个文本的相似文本,以此来进一步提高计算效率。
采用Map Reduce方式,可以实现大规模的并行计算,减少计算时间,提高计算效率,进一步保证文本匹配的效率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (18)
1.一种文本匹配方法,其特征在于,包括:
计算文本集合对应的至少一个签名索引项;
基于所述至少一个签名索引项的签名片段,确定所述至少一个签名索引项分别相对各自索引的不同文本的重要程度;所述重要程度用于表示所述签名索引项对其索引的文本进行相似度计算时所起的作用,所述重要程度越高,所述作用越大;
基于所述重要程度,筛选每个文本的候选文本;
计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
2.根据权利要求1所述的方法,其特征在于,所述基于所述重要程度,筛选每个文本的候选文本包括:
按照所述重要程度从大到小的顺序进行筛选,获得每个签名索引项索引的第一数量的文本构成的预选集;
基于每个签名索引项索引的预选集,确定每个文本的候选文本。
3.根据权利要求2所述的方法,其特征在于,所述基于每个签名索引项索引的预选集,确定每个文本的候选文本包括:
基于每个签名索引项索引的预选集,确定与每个文本具有相同索引项的初选文本;
计算每个文本与其任一初选文本具有相同签名索引项的共有个数;
按照所述共有个数从大到小的顺序,从每个文本的初选文本中筛选第二数量的候选文本。
4.根据权利要求2所述的方法,其特征在于,所述基于每个签名索引项索引的预选集,确定每个文本的候选文本包括:
基于每个签名索引项索引的预选集,确定与每个文本具有相同索引项的初选文本;
根据每个文本与其任一初选文本的相同签名索引项,在所述任一初选文本中的重要程度,计算所述任一初选文本相对每个文本的总重要程度;
按照所述总重要程度由大到小的顺序,从每个文本的初选文本中筛选第二数量的候选文本。
5.根据权利要求2所述的方法,其特征在于,所述基于每个签名索引项索引的预选集,确定每个文本的候选文本包括:
基于每个签名索引项索引的预选集,确定与每个文本具有相同索引项的候选文本。
6.根据权利要求2所述的方法,其特征在于,所述基于每个签名索引项索引的预选集,确定每个文本的候选文本包括:
基于每个签名索引项索引的预选集,确定与每个文本具有相同签名索引项的初选文本;
计算每个文本与其任一初选文本针对相同签名索引项的重要程度差值;
基于所述重要程度差值,从每个文本的初选文本中确定候选文本。
7.根据权利要求1所述的方法,其特征在于,所述计算文本集合对应的至少一个签名索引项包括:
计算文本集合中每个文本的文本签名;
划分每个文本签名为至少一个签名片段;
由每个签名片段及其在不同文本中的位置信息构成签名索引项。
8.根据权利要求7所述的方法,其特征在于,所述计算文本集合中每个文本的文本签名包括:
计算文本集合中每个文本的文本向量;
将每个文本向量的各维数据进行归一化,转换为文本签名。
9.根据权利要求8所述的方法,其特征在于,所述计算文本集合中每个文本的文本向量包括:
将文本集合中每个文本进行分词,获得每个文本对应的至少一个词串;
计算每个词串的词向量;
将每个文本中各个词串的词向量加权平均,获得每个文本的文本向量。
10.根据权利要求9所述的方法,其特征在于,所述计算每个词串的词向量包括:
从预训练的词表中查找每个词串的词向量;
所述预训练的词表按照如下方式预先获得:
将各个训练文本进行分词,获得由各个训练文本的词串构成的词表;
计算所述词表中每个词串的词向量,对应保存在所述词表中。
11.根据权利要求10所述的方法,其特征在于,所述计算每个文本与其候选文本的相似度,以获得每个文本的相似文本包括:
将所述文本集合对应的词向量集、每个文本及其候选文本传输至计算系统;
触发所述计算系统基于所述词向量集计算获得每个文本及其候选文本的文本向量,并基于所述文本向量计算获得每个文本及其候选文本的相似度,以获得每个文本的相似文本。
12.根据权利要求10所述的方法,其特征在于,所述计算每个文本与其候选文本的相似度,以获得每个文本的相似文本包括:
由每个文本及其候选文本形成一候选句集,以获得多个候选句集;
将所述多个候选句集分发至多个计算节点;
将所述文本集合对应的词向量集分别发送至所述多个计算节点;
触发每个计算节点基于所述词向量集计算接收到的每个文本及其候选文本的文本向量,并基于所述文本向量计算接收到的每个文本及其候选文本的相似度,以获得接收到的每个文本的相似文本。
13.根据权利要求1所述的方法,其特征在于,所述确定所述至少一个签名索引项分别相对各自索引的不同文本的重要程度包括:
针对每个签名索引项索引的任一文本,计算每个签名索引项的签名片段在所述任一文本中的向量值占比;
将每个签名索引项的签名片段在所述任一文本中的向量值占比,作为所述每个签名索引项相对所述任一文本的重要程度。
14.根据权利要求7所述的方法,其特征在于,所述文本签名由二进制数据组成;
所述由每个签名片段及其在不同文本中的位置信息构成签名索引项包括:
将每个签名片段转换为十进制数据;
将每个签名片段在每一文本中的位置信息,添加至其十进制数据的最后一位,获得签名索引项。
15.根据权利要求1所述的方法,其特征在于,所述计算每个文本与其候选文本的相似度,以获得每个文本的相似文本包括:
将每个文本与其候选文本分别进行归一化,获得各自的归一化向量;
计算每个文本的归一化向量与其候选文本的归一化向量的向量点积;
将所述向量点积作为每个文本与其候选文本的相似度;
按照相似度由大到小的顺序,获得每个文本的相似文本。
16.一种文本匹配装置,其特征在于,包括:
第一计算模块,用于计算文本集合对应的至少一个签名索引项;
第二计算模块,用于基于所述至少一个签名索引项的签名片段,确定所述至少一个签名索引项分别相对各自索引的不同文本的重要程度;所述重要程度用于表示所述签名索引项对其索引的文本进行相似度计算时所起的作用,所述重要程度越高,所述作用越大;
筛选模块,用于基于所述重要程度,筛选每个文本的候选文本;
文本匹配模块,用于计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
17.一种计算设备,其特征在于,包括一个或多个存储器以及一个或多个处理器;
所述一个或多个存储器存储一条或多条计算机指令;所述一条或多条计算机指令由所述一个或多个处理器调用并执行;
所述一个或多个处理器用于:
计算文本集合对应的至少一个签名索引项;
基于所述至少一个签名索引项的签名片段,确定所述至少一个签名索引项分别相对各自索引的不同文本的重要程度;所述重要程度用于表示所述签名索引项对其索引的文本进行相似度计算时所起的作用,所述重要程度越高,所述作用越大;
基于所述重要程度,筛选每个文本的候选文本;
计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
18.一种集群系统,其特征在于,包括多个物理机器;每一个物理机器包括一个或多个存储器以及一个或多个处理器;所述一个或多个存储器存储一条多条计算机指令;所述一条或多条计算机指令由所述一个或多个处理器调用并执行;
所述多个物理机器采用映射归纳Map Reduce方式执行如下操作:
计算文本集合对应的至少一个签名索引项;
基于所述至少一个签名索引项的签名片段,确定所述至少一个签名索引项分别相对各自索引的不同文本的重要程度;所述重要程度用于表示所述签名索引项对其索引的文本进行相似度计算时所起的作用,所述重要程度越高,所述作用越大;基于所述重要程度,筛选每个文本的候选文本;
计算每个文本与其候选文本的相似度,以获得每个文本的相似文本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711174221.0A CN109815475B (zh) | 2017-11-22 | 2017-11-22 | 文本匹配方法、装置、计算设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711174221.0A CN109815475B (zh) | 2017-11-22 | 2017-11-22 | 文本匹配方法、装置、计算设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109815475A CN109815475A (zh) | 2019-05-28 |
CN109815475B true CN109815475B (zh) | 2023-03-21 |
Family
ID=66601241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711174221.0A Active CN109815475B (zh) | 2017-11-22 | 2017-11-22 | 文本匹配方法、装置、计算设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109815475B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159493B (zh) * | 2019-12-25 | 2023-07-18 | 乐山师范学院 | 一种基于特征权重的网络数据相似度计算方法与系统 |
CN112836008B (zh) * | 2021-02-07 | 2023-03-21 | 中国科学院新疆理化技术研究所 | 基于去中心化存储数据的索引建立方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1790321A (zh) * | 2005-10-28 | 2006-06-21 | 北大方正集团有限公司 | 一种用于海量文本快速相似搜索的方法 |
CN106156154A (zh) * | 2015-04-14 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 相似文本的检索方法及其装置 |
CN106372202A (zh) * | 2016-08-31 | 2017-02-01 | 北京奇艺世纪科技有限公司 | 文本相似度计算方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008146456A1 (ja) * | 2007-05-28 | 2008-12-04 | Panasonic Corporation | 情報探索支援方法および情報探索支援装置 |
-
2017
- 2017-11-22 CN CN201711174221.0A patent/CN109815475B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1790321A (zh) * | 2005-10-28 | 2006-06-21 | 北大方正集团有限公司 | 一种用于海量文本快速相似搜索的方法 |
CN106156154A (zh) * | 2015-04-14 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 相似文本的检索方法及其装置 |
CN106372202A (zh) * | 2016-08-31 | 2017-02-01 | 北京奇艺世纪科技有限公司 | 文本相似度计算方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109815475A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959246B (zh) | 基于改进的注意力机制的答案选择方法、装置和电子设备 | |
US9442929B2 (en) | Determining documents that match a query | |
CN108573045B (zh) | 一种基于多阶指纹的比对矩阵相似度检索方法 | |
US20180276528A1 (en) | Image Retrieval Method Based on Variable-Length Deep Hash Learning | |
WO2021093755A1 (zh) | 问题的匹配方法及装置、问题的回复方法及装置 | |
US11507601B2 (en) | Matching a first collection of strings with a second collection of strings | |
WO2020224097A1 (zh) | 智能语义文档推荐方法、装置及计算机可读存储介质 | |
CN109670163B (zh) | 信息识别方法、信息推荐方法、模板构建方法及计算设备 | |
CN111159485B (zh) | 尾实体链接方法、装置、服务器及存储介质 | |
CN110619051B (zh) | 问题语句分类方法、装置、电子设备及存储介质 | |
WO2020114100A1 (zh) | 一种信息处理方法、装置和计算机存储介质 | |
CN110879834B (zh) | 一种基于循环卷积网络的观点检索系统及其观点检索方法 | |
US20220114186A1 (en) | System and method for automatic persona generation using small text components | |
US9852177B1 (en) | System and method for generating automated response to an input query received from a user in a human-machine interaction environment | |
WO2023138188A1 (zh) | 特征融合模型训练及样本检索方法、装置和计算机设备 | |
CN111868710A (zh) | 搜索大规模非结构化数据的随机提取森林索引结构 | |
US11562234B2 (en) | Dynamically determining schema labels using a hybrid neural network encoder | |
US20230123941A1 (en) | Multiscale Quantization for Fast Similarity Search | |
CN107977670A (zh) | 决策树和贝叶斯算法的突发事件分类分级方法、装置及系统 | |
US10706030B2 (en) | Utilizing artificial intelligence to integrate data from multiple diverse sources into a data structure | |
CN109815475B (zh) | 文本匹配方法、装置、计算设备及系统 | |
CN113505190B (zh) | 地址信息修正方法、装置、计算机设备和存储介质 | |
CN113434636A (zh) | 基于语义的近似文本搜索方法、装置、计算机设备及介质 | |
CN111061876A (zh) | 事件舆情数据分析方法及装置 | |
CN115205085A (zh) | 通信地址联想方法及其装置、设备、介质、产品 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |