发明内容
为了解决现有短文本匹配方法在应用到海量规范文档检索场景中所存在的检索耗时和文档检索准确率较低的问题,本发明目的在于提供一种新型的文本匹配方法、装置、计算机设备及计算机可读存储介质,可以在应用到海量规范文档检索场景中时,从词频-逆文档频率维度、编辑距离维度和杰卡德相似系数维度等三个不同维度上对用户查询文本和已知文档标题进行相似性/差异性比对,并计算得到用户查询文本和已知文档标题在各个维度上的指标值,然后通过算法综合三个指标值得到聚合指标值,最后基于最大聚合指标值锁定匹配目标,由于该方法不需要进行模型训练,并具有较高的准确度和较低的算法复杂度,因此可以快速准确地得到检索结果,特别适用于在线环境下的文档检索。
第一方面,本发明提供了一种文本匹配方法,包括:
获取查询单词集合和多个标题单词集合,其中,所述查询单词集合与用户查询文本对应,所述多个标题单词集合与多个已知文档标题一一对应;
针对所述多个标题单词集合中的各个标题单词集合,计算得到所述查询单词集合与该标题单词集合的第一指标值、第二指标值和第三指标值,其中,所述第一指标值用于表征基于词频-逆文档频率TF-IDF计算得到的且所述查询单词集合与该标题单词集合的相似程度,所述第二指标值用于表征基于编辑距离MED计算得到的且所述查询单词集合与该标题单词集合的差异程度,所述第三指标值用于表征基于杰卡德相似系数计算得到的且所述查询单词集合与该标题单词集合的相似程度;
针对所述各个标题单词集合,计算得到对应该标题单词集合的所述第一指标值与所述第三指标值的积以及所述第二指标值与所述第三指标值的积,并从两积中取最大值,得到对应的聚合指标值;
将与最大聚合指标值对应的已知文档标题作为所述用户查询文本的匹配目标,其中,所述最大聚合指标值为多个聚合指标值中的最大值,所述多个聚合指标值与所述多个已知文档标题一一对应。
基于上述发明内容,提供了一种准确快速的文本匹配方案,即在应用到海量规范文档检索场景中时,可从词频-逆文档频率维度、编辑距离维度和杰卡德相似系数维度等三个不同维度上对用户查询文本和已知文档标题进行相似性/差异性比对,并计算得到用户查询文本和已知文档标题在各个维度上的指标值,然后通过算法综合三个指标值得到聚合指标值,最后基于最大聚合指标值锁定匹配目标,由于该方法不需要进行模型训练,并具有较高的准确度和较低的算法复杂度,因此可以快速准确地得到检索结果,特别适用于在线环境下的文档检索。
在一个可能的设计中,获取查询单词集合和多个标题单词集合,包括:
获取所述用户查询文本和所述多个已知文档标题;
对所述用户查询文本进行分词处理,得到至少一个第一单词,以及对所述多个已知文档标题中的各个已知文档标题分别进行分词处理,得到多组单词,其中,所述多组单词与所述多个已知文档标题一一对应,所述多组单词中的每组单词包含有至少一个第二单词;
将所述至少一个第一单词作为所述查询单词集合,以及针对所述多组单词中的每组单词,将所述至少一个第二单词作为对应已知文档标题的所述标题单词集合。
基于前述可能设计,可以通过对用户查询文本及多个已知文档标题进行分词操作,得到对应的单词集合,利于整个文本匹配方案的实现。
在一个可能的设计中,将所述至少一个第一单词作为所述查询单词集合,以及针对所述多组单词中的每组单词,将所述至少一个第二单词作为对应已知文档标题的所述标题单词集合,包括:
对所有的所述第一单词做统一的小写转换,得到转换处理后的第一单词,以及对所有的所述第二单词做统一的小写转换,得到转换处理后的第二单词;
将转换处理后的至少一个第一单词作为所述查询单词集合,以及针对所述多组单词中的每组单词,将转换处理后的至少一个第二单词作为对应已知文档标题的所述标题单词集合。
基于前述可能设计,可以通过对所有单词进行统一的小写转换,防止用户查询的随意性,减少后续匹配步骤所需的计算量。
在一个可能的设计中,计算得到所述查询单词集合与该标题单词集合的第一指标值,包括:
按照如下公式得到对应所述查询单词集合的查询向量VQ和对应该标题单词集合的标题向量VP:
式中,Q表示所述查询单词集合,P表示该标题单词集合,w
k表示在所述查询单词集合与该标题单词集合的且无重复单词的并集中的第k个单词,k表示介于1~K之间的自然数,K表示所述并集中的单词个数,
表示单词w
k的词频,
表示单词w
k的逆文档频率,
表示所述查询向量V
Q在第k个维度上的数值,
表示所述标题向量V
P在第k个维度上的数值;
按照如下公式计算得到所述查询单词集合与该标题单词集合的所述第一指标值:
式中,Stf-idf表示所述第一指标值。
基于前述可能设计,可以仅从相同单词维度出发,来统计所述查询单词集合中的所有相同单词对于该标题单词集合的重要程度,进而保障所述第一指标值能够精准衡量两集合的相似程度,并利于整个文本匹配方案的实现。
在一个可能的设计中,计算得到所述查询单词集合与该标题单词集合的第二指标值,包括:
按照如下公式计算得到所述查询单词集合与该标题单词集合的所述第二指标值:
式中,S
levenshtein表示所述第二指标值,q
i表示所述查询单词集合中的第i个单词,i表示介于1~n之间的自然数,n表示所述查询单词集合中的单词个数,
表示在该标题单词集合中的且与单词q
i具有最短的编辑距离的单词,p
j表示该标题单词集合中的第j个单词,j表示介于1~m之间的自然数,m表示该标题单词集合中的单词个数,f(·)表示单词间的编辑距离函数。
基于前述可能设计,可以基于现有编辑距离算法,快速得到表征将所述查询单词集合变更为该标题单词集合所需处理次数的编辑距离值,进而保障所述第二指标值能够精准衡量两集合的差异程度,并利于整个文本匹配方案的实现。
在一个可能的设计中,计算得到所述查询单词集合与该标题单词集合的第三指标值,包括:
按照如下公式计算得到所述查询单词集合与该标题单词集合的所述第三指标值:
式中,Sjaccard表示所述第三指标值,Q表示所述查询单词集合,P表示该标题单词集合,∪表示并集运算符,∩表示交集运算符,||表示获取集合的单词个数。
基于前述可能设计,可以通过在传统杰卡德相似系数算法中引入从标题单词中召回的单词个数占查询单词个数的比例,进一步降低所述第三指标值对于文本长短的敏感度,利于指标聚合和整个文本匹配方案的实现。
第二方面,本发明提供了一种文本匹配装置,包括有依次通信连接的集合获取模块、指标计算模块、指标聚合模块和目标确定模块;
所述集合获取模块,用于获取查询单词集合和多个标题单词集合,其中,所述查询单词集合与用户查询文本对应,所述多个标题单词集合与多个已知文档标题一一对应;
所述指标计算模块,用于针对所述多个标题单词集合中的各个标题单词集合,计算得到所述查询单词集合与该标题单词集合的第一指标值、第二指标值和第三指标值,其中,所述第一指标值用于表征基于词频-逆文档频率TF-IDF计算得到的且所述查询单词集合与该标题单词集合的相似程度,所述第二指标值用于表征基于编辑距离MED计算得到的且所述查询单词集合与该标题单词集合的差异程度,所述第三指标值用于表征基于杰卡德相似系数计算得到的且所述查询单词集合与该标题单词集合的相似程度;
所述指标聚合模块,用于针对所述各个标题单词集合,计算得到对应该标题单词集合的所述第一指标值与所述第三指标值的积以及所述第二指标值与所述第三指标值的积,并从两积中取最大值,得到对应的聚合指标值;
所述目标确定模块,用于在所述多个已知文档标题中,将与最大聚合指标值对应的已知文档标题作为所述用户查询文本的匹配目标,其中,所述最大聚合指标值为多个聚合指标值中的最大值,所述多个聚合指标值与所述多个已知文档标题一一对应。
在一种可能设计中,所述集合获取模块包括有依次通信连接的文本获取子模块、分词处理子模块和集合确定子模块;
所述文本获取子模块,用于获取所述用户查询文本和所述多个已知文档标题;
所述分词处理子模块,用于对所述用户查询文本进行分词处理,得到至少一个第一单词,以及对所述多个已知文档标题中的各个已知文档标题分别进行分词处理,得到多组单词,其中,所述多组单词与所述多个已知文档标题一一对应,所述多组单词中的每组单词包含有至少一个第二单词;
所述集合确定子模块,用于将所述至少一个第一单词作为所述查询单词集合,以及针对所述多组单词中的每组单词,将所述至少一个第二单词作为对应已知文档标题的所述标题单词集合。
在一个可能的设计中,所述集合确定子模块包括有通信相连的小写转换孙模块和集合确定孙模块;
所述小写转换孙模块,用于对所有的所述第一单词做统一的小写转换,得到转换处理后的第一单词,以及对所有的所述第二单词做统一的小写转换,得到转换处理后的第二单词;
所述集合确定孙模块,用于将转换处理后的至少一个第一单词作为所述查询单词集合,以及针对所述多组单词中的每组单词,将转换处理后的至少一个第二单词作为对应已知文档标题的所述标题单词集合。
在一个可能的设计中,所述指标计算模块包括有通信相连的向量获取子模块和第一指标计算子模块;
所述向量获取子模块,用于按照如下公式得到对应所述查询单词集合的查询向量VQ和对应该标题单词集合的标题向量VP:
式中,Q表示所述查询单词集合,P表示该标题单词集合,w
k表示在所述查询单词集合与该标题单词集合的且无重复单词的并集中的第k个单词,k表示介于1~K之间的自然数,K表示所述并集中的单词个数,
表示单词w
k的词频,
表示单词w
k的逆文档频率,
表示所述查询向量V
Q在第k个维度上的数值,
表示所述标题向量V
P在第k个维度上的数值;
所述第一指标计算子模块,用于按照如下公式计算得到所述查询单词集合与该标题单词集合的所述第一指标值:
式中,Stf-idf表示所述第一指标值。
在一个可能的设计中,所述指标计算模块包括有第二指标计算子模块;
所述第二指标计算子模块,用于按照如下公式计算得到所述查询单词集合与该标题单词集合的所述第二指标值:
式中,S
levenshtein表示所述第二指标值,q
i表示所述查询单词集合中的第i个单词,i表示介于1~n之间的自然数,n表示所述查询单词集合中的单词个数,
表示在该标题单词集合中的且与单词q
i具有最短的编辑距离的单词,p
j表示该标题单词集合中的第j个单词,j表示介于1~m之间的自然数,m表示该标题单词集合中的单词个数,f(·)表示单词间的编辑距离函数。
在一个可能的设计中,所述指标计算模块包括有第三指标计算子模块;
所述第三指标计算子模块,用于按照如下公式计算得到所述查询单词集合与该标题单词集合的所述第三指标值:
式中,Sjaccard表示所述第三指标值,Q表示所述查询单词集合,P表示该标题单词集合,∪表示并集运算符,∩表示交集运算符,| |表示获取集合的单词个数。
第三方面,本发明提供了一种计算机设备,包括通信相连的存储器和处理器,其中,所述存储器用于存储计算机程序,所述处理器用于读取所述计算机程序,执行如第一方面或第一方面中任意一种可能设计所述的文本匹配方法。
第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如上第一方面或第一方面中任意一种可能设计的所述文本匹配方法。
第五方面,本发明提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如上第一方面或第一方面中任意一种可能设计的所述文本匹配方法。
具体实施方式
下面结合附图及具体实施例来对本发明作进一步阐述。在此需要说明的是,对于这些实施例方式的说明虽然是用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明示例的实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
应当理解,尽管本文可能使用术语第一、第二等等来描述各种单元,但是这些单元不应当受到这些术语的限制。这些术语仅用于区分一个单元和另一个单元。例如可以将第一单元称作第二单元,并且类似地可以将第二单元称作第一单元,同时不脱离本发明示例的实施例的范围。
应当理解,对于本文中可能出现的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B三种情况;对于本文中可能出现的术语“/和”,其是描述另一种关联对象关系,表示可以存在两种关系,例如,A/和B,可以表示:单独存在A,单独存在A和B两种情况;另外,对于本文中可能出现的字符“/”,一般表示前后关联对象是一种“或”关系。
应当理解,在本文中若将单元称作与另一个单元“连接”、“相连”或“耦合”时,它可以与另一个单元直相连接或耦合,或中间单元可以存在。相対地,在本文中若将单元称作与另一个单元“直接相连”或“直接耦合”时,表示不存在中间单元。另外,应当以类似方式来解释用于描述单元之间的关系的其他单词(例如,“在……之间”对“直接在……之间”,“相邻”对“直接相邻”等等)。
应当理解,本文使用的术语仅用于描述特定实施例,并不意在限制本发明示例的实施例。若本文所使用的,单数形式“一”、“一个”以及“该”意在包括复数形式,除非上下文明确指示相反意思。还应当理解,若术语“包括”、“包括了”、“包含”和/或“包含了”在本文中被使用时,指定所声明的特征、数量、步骤、操作、单元和/或组件的存在性,并且不排除一个或多个其他特征、数量、步骤、操作、单元、组件和/或他们的组合存在性或增加。
应当理解,还应当注意到在一些备选可能设计中,所出现的功能/动作可能与附图出现的顺序不同。例如,取决于所涉及的功能/动作,实际上可以实质上并发地执行,或者有时可以以相反的顺序来执行连续示出的两个图。
应当理解,在下面的描述中提供了特定的细节,以便于对示例实施例的完全理解。然而,本领域普通技术人员应当理解可以在没有这些特定细节的情况下实现示例实施例。例如可以在框图中示出***,以避免用不必要的细节来使得示例不清楚。在其他实例中,可以不以非必要的细节来示出众所周知的过程、结构和技术,以避免使得示例实施例不清楚。
如图1~2所示,本实施例第一方面提供的所述文本匹配方法,可以但不限于适用于在文档检索响应服务器上执行,以便快速锁定匹配目标,精确输出文档检索结果,特别适用于诸如企业内部文档检索等海量规范文档检索场景中。所述文本匹配方法,可以但不限于包括有如下步骤S101~S104。
S101.获取查询单词集合和多个标题单词集合,其中,所述查询单词集合与用户查询文本对应,所述多个标题单词集合与多个已知文档标题一一对应。
在所述步骤S101中,所述用户查询文本为用户输入的且用于查询目标文档的文本信息,所述已知文档标题为在文档库中标记待检索文档的文本信息,它们均是由若干个单词构成,因此通过对所述用户查询文本和所述已知文档标题进行分词和过滤等操作,可以得到对应的单词集合,以便后续在单词层面上对所述用户查询文本与所述已知文档标题进行匹配。
S102.针对所述多个标题单词集合中的各个标题单词集合,计算得到所述查询单词集合与该标题单词集合的第一指标值、第二指标值和第三指标值,其中,所述第一指标值用于表征基于词频-逆文档频率(Term Frequency–Inverse Document Frequency,TF-IDF,其为一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度)计算得到的且所述查询单词集合与该标题单词集合的相似程度,所述第二指标值用于表征基于编辑距离(Minimum Edit Distance,MED,其是针对二个字符串的差异程度的量化量测,量测方式是看至少需要多少次的处理才能将一个字符串变成另一个字符串)计算得到的且所述查询单词集合与该标题单词集合的差异程度,所述第三指标值用于表征基于杰卡德相似系数(Jaccard Similarity Coefficient,其用于度量两个集合之间的相似性,它被定义为两个集合交集的元素个数除以并集的元素个数)计算得到的且所述查询单词集合与该标题单词集合的相似程度。
在所述步骤S102中,所述第一指标值和所述第三指标值分别表征了一种互不相同的两集合相似程度,所述第二指标值表征了一种两集合差异程度,其中,所述第一指标值可以但不限于参照词频-逆文档频率TF-IDF的定义(即统计评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度),将基于词频-逆文档频率统计得到的且所述查询单词集合中的所有单词对于该标题单词集合的重要程度作为所述第一指标值;所述第二指标值可以但不限于参照编辑距离MED的定义(即量测至少需要多少次的处理才能将一个字符串变成另一个字符串),将基于编辑距离量测得到的且将所述查询单词集合变更为该标题单词集合所需处理次数的多寡程度作为所述第二指标值;所述第三指标值可以但不限于参照杰卡德相似系数的定义(即统计两个集合交集的元素个数除以并集的元素个数的结果),将所述查询单词集合和该标题单词集合的交集单词个数除以并集的单词个数的计算结果作为所述第三指标值。
S103.针对所述各个标题单词集合,计算得到对应该标题单词集合的所述第一指标值与所述第三指标值的积以及所述第二指标值与所述第三指标值的积,并从两积中取最大值,得到对应的聚合指标值。
在所述步骤S103中,虽然所述第一指标值在词频-逆文档频率维度上会是一个余弦值,所述第二指标值在编辑距离维度上和所述第三指标值在杰卡德相似系数维度上会分别因做归一化,使得它们取值都在[0,1],但是需要注意的是在每个维度上给出的值却描述了不同程度的相似性/差异性,即使每个维度上给出相同的值,它们的相似/差异程度也是不同的,如何在不同的情况下对这三种指标值进行聚合是一个重要的问题。考虑所述第一指标值的表征含义,其值会受到词频的影响,即当用户查询文本或已知文档标题较短时,可能使每个单词的词频都为1,此时并不能很好地区分每个单词的重要程度,因此所述第一指标值会不利于计算太短的文本之间(即用户查询文本与已知文档标题之间)的相似性。而所述第二指标值与所述第一指标值相比会恰好相反,它比较适合评估较短的文本之间的差异性,因为较短的文本切出的词语有限,只需要较少步骤的计算就可以在标题单词集合中找到查询单词的映射。而所述第三指标值会是一个对文本长度无感的指标,即无论文本的长短,它总是以交集大小来确定集合差异性。因此通过采用公式max(第一指标值*第三指标值,第二指标值*第三指标值)来计算最终的聚合指标值(其中的max()表示取最大值函数),可以在文本较短时突出采用所述第二指标值与所述第三指标的积(此时一般所述第二指标值大于所述第一指标值)来综合衡量所述查询单词集合与该标题单词集合的相似性/差异性,而在文本较长时突出采用所述第一指标值与所述第三指标值的积(此时一般所述第一指标值大于所述第二指标值)来综合衡量所述查询单词集合与该标题单词集合的相似性/差异性,即无论文本长短,都可以保证指标聚合的准确性。
S104.在所述多个已知文档标题中,将与最大聚合指标值对应的已知文档标题作为所述用户查询文本的匹配目标,其中,所述最大聚合指标值为多个聚合指标值中的最大值,所述多个聚合指标值与所述多个已知文档标题一一对应。
在所述步骤S104中,由于聚合指标值最大,表明对应的已知文档标题与所述用户查询文本最接近,因此可作为匹配目标,以便将对应的文档作为检索目标文档。
由此基于前述步骤S101~S104所描述的方法,提供了一种准确快速的文本匹配方案,即在应用到海量规范文档检索场景中时,可从词频-逆文档频率维度、编辑距离维度和杰卡德相似系数维度等三个不同维度上对用户查询文本和已知文档标题进行相似性/差异性比对,并计算得到用户查询文本和已知文档标题在各个维度上的指标值,然后通过算法综合三个指标值得到聚合指标值,最后基于最大聚合指标值锁定匹配目标,由于该方法不需要进行模型训练,并具有较高的准确度和较低的算法复杂度,因此可以快速准确地得到检索结果,特别适用于在线环境下的文档检索。
本实施例在前述第一方面的技术方案基础上,还具体提供了一种分词获取单词集合的可能设计一,即获取查询单词集合和多个标题单词集合,包括但不限于有如下步骤S1011~S1013。
S1011.获取所述用户查询文本和所述多个已知文档标题。
在所述步骤S1011中,所述多个已知文档标题中的各个已知文档标题,可通过访问存有海量文档的文档库获取得到。
S1012.对所述用户查询文本进行分词处理,得到至少一个第一单词,以及对所述多个已知文档标题中的各个已知文档标题分别进行分词处理,得到多组单词,其中,所述多组单词与所述多个已知文档标题一一对应,所述多组单词中的每组单词包含有至少一个第二单词。
在所述步骤S1012中,所采用的分词处理工具可以但不限于采用结巴jieba分词工具。
S1013.将所述至少一个第一单词作为所述查询单词集合,以及针对所述多组单词中的每组单词,将所述至少一个第二单词作为对应已知文档标题的所述标题单词集合。
在所述步骤S1013中,考虑停用词(即标点符号或者无具体含义的词语,例如,“哎吆”、“什么”、“的”和“!”等等都属于停用词的范畴)对匹配不起作用,因此还需对单词集合进行停用词过滤处理,即针对所述查询单词集合中的各个所述第一单词或所述标题单词集合中的各个所述第二单词,若与至少一个预设停用词中的某个停用词相同,则在对应单词集合中剔除该单词,得到剔除后的查询单词集合或标题单词集合。所述至少一个预设停用词具体为一个可以随时维护的停用词列表,只要单词集合中出现了这些词语或标点符号,即需进行剔除处理,减少后续匹配步骤所需的计算量。此外,为了防止用户查询的随意性,将所述至少一个第一单词作为所述查询单词集合,以及针对所述多组单词中的每组单词,将所述至少一个第二单词作为对应已知文档标题的所述标题单词集合,包括但不限于有如下步骤:对所有的所述第一单词做统一的小写转换,得到转换处理后的第一单词,以及对所有的所述第二单词做统一的小写转换,得到转换处理后的第二单词;将转换处理后的至少一个第一单词作为所述查询单词集合,以及针对所述多组单词中的每组单词,将转换处理后的至少一个第二单词作为对应已知文档标题的所述标题单词集合。
由此基于前述步骤S1011~S1013所详细描述的可能设计一,可以通过对用户查询文本及多个已知文档标题进行分词操作,得到对应的单词集合,利于整个文本匹配方案的实现。此外,通过对所有单词进行统一的小写转换,可以防止用户查询的随意性,减少后续匹配步骤所需的计算量。
本实施例在前述第一方面或可能设计一的技术方案基础上,还具体提供了一种在词频-逆文档频率维度上计算第一指标值的可能设计二,即计算得到所述查询单词集合与该标题单词集合的第一指标值,包括但不显有如下步骤S1021~S1022。
S1021.按照如下公式得到对应所述查询单词集合的查询向量VQ和对应该标题单词集合的标题向量VP:
式中,Q表示所述查询单词集合,P表示该标题单词集合,w
k表示在所述查询单词集合与该标题单词集合的且无重复单词的并集中的第k个单词,k表示介于1~K之间的自然数,K表示所述并集中的单词个数,
表示单词w
k的词频,
表示单词w
k的逆文档频率,
表示所述查询向量V
Q在第k个维度上的数值,
表示所述标题向量V
P在第k个维度上的数值。
在所述步骤S1021中,所述并集中第k个单词w
k的词频
可按照如下公式进行统计:
式中,
表示单词w
k在所述查询单词集合和该标题单词集合中出现的次数,K′表示所述查询单词集合和该标题单词集合中的单词个数,由于是通过切词处理得到所述查询单词集合和该标题单词集合,因此在前述两单词集合中是允许存在重复单词的。以及针对单词w
k,可按照如下公式计算对应的逆文档频率
式中,D表示所述多个已知文档标题的所有标题单词集合,
表示包含有单词w
k的标题单词集合的个数,r表示所述多个已知文档标题的总数,C表示一个常数,例如为1,以便防止分母为零。此外,可将所述词频
与所述逆文档频率
之积作为单词w
k的TF-IDF值。
在所述步骤S1021中,举例的,若所述查询单词集合Q包含有单词A、单词B、单词C和单词D,而该标题单词集合P包含有单词B、单词D、单词E、单词F和单词G,则所述并集将会包含有单词A、单词B、单词C、单词D、单词E、单词F和单词G,并可通过常规算法计算得到单词A~G的词频和逆文档频率,由此所述查询向量VQ和所述标题向量VP将分别为一个7维向量,其中,由于所述并集中有4个单词属于所述查询单词集合Q,因此所述查询向量VQ会在第1~4维度上有对应的非零数值,而在第5~7维度上有对应的零值;以及由于所述并集中有5个单词属于所述标题单词集合P,因此所述标题向量VP会在第1维度和第3维度上有对应的零值,而在第2、4~7维度上有对应的非零数值。
S1022.按照如下公式计算得到所述查询单词集合与该标题单词集合的所述第一指标值:
式中,Stf-idf表示所述第一指标值。
由此基于前述步骤S1021~S1022所详细描述的可能设计二,可以仅从相同单词维度出发,来统计所述查询单词集合中的所有相同单词对于该标题单词集合的重要程度,进而保障所述第一指标值能够精准衡量两集合的相似程度,并利于整个文本匹配方案的实现。
本实施例在前述第一方面及可能设计一至二中任意一种的技术方案基础上,还具体提供了一种在编辑距离维度上计算第二指标值的可能设计三,即计算得到所述查询单词集合与该标题单词集合的第二指标值,包括但不限于有:按照如下公式计算得到所述查询单词集合与该标题单词集合的所述第二指标值:
式中,S
levenshtein表示所述第二指标值,q
i表示所述查询单词集合中的第i个单词,i表示介于1~n之间的自然数,n表示所述查询单词集合中的单词个数,
表示在该标题单词集合中的且与单词q
i具有最短的编辑距离的单词(即变更为单词q
i所需处理次数最少的单词),p
j表示该标题单词集合中的第j个单词,j表示介于1~m之间的自然数,m表示该标题单词集合中的单词个数,f(·)表示单词间的编辑距离函数。
在上述计算步骤中,f(·)为一个用于计算两个字符串编辑距离的现有函数。另外,针对单词q
i,可按照如下方式找到它对应的最优映射单词
(也即变更为单词q
i所需处理次数最少的单词):
由于f(Q×P)记录了任意两个查询单词与标题单词之间的编辑距离,那么最优映射单词
满足
且J≠z,z∈{1,2,3,…,m}。举例的,若所述查询单词集合Q包含有单词A、单词B、单词C和单词D,而该标题单词集合P包含有单词B、单词D、单词E和单词F,则在该标题单词集合P中,通过现有编辑距离算法和距离比较结果可以找到变更为单词A所需处理次数最少的单词为单词F(假设单词F与单词A构成最优映射关系),变更为单词B所需处理次数最少的单词为单词B(即编辑距离为零),通过现有编辑距离算法和距离比较结果可以找到变更为单词C所需处理次数最少的单词为单词E(假设单词E与单词C构成最优映射关系),变更为单词D所需处理次数最少的单词为单词D(即编辑距离为零),如此可以进一步根据现有编辑距离算法和前述计算公式得到所述第二指标值。
由此基于前述所详细描述的可能设计三,可以基于现有编辑距离算法,快速得到表征将所述查询单词集合变更为该标题单词集合所需处理次数的编辑距离值,进而保障所述第二指标值能够精准衡量两集合的差异程度,并利于整个文本匹配方案的实现。
本实施例在前述第一方面及可能设计一至三中任意一种的技术方案基础上,还具体提供了一种在杰卡德相似系数维度上计算第三指标值的可能设计四,即计算得到所述查询单词集合与该标题单词集合的第三指标值,包括但不限于有:按照如下公式计算得到所述查询单词集合与该标题单词集合的所述第三指标值:
式中,Sjaccard表示所述第三指标值,Q表示所述查询单词集合,P表示该标题单词集合,∪表示并集运算符,∩表示交集运算符,| |表示获取集合的单词个数。
在上述计算步骤中,
表示经典的杰卡德相似系数,
表示本实施例提供的提升版杰卡德相似系数,即能够从标题单词中召回的单词个数占查询单词个数的比例。举例的,若所述查询单词集合Q包含有单词A、单词B、单词C和单词D,而该标题单词集合P包含有单词B、单词D、单词E和单词F,则所述第三指标值的计算结果可为5/12。
由此基于前述所详细描述的可能设计四,可以通过在传统杰卡德相似系数算法中引入从标题单词中召回的单词个数占查询单词个数的比例,进一步降低所述第三指标值对于文本长短的敏感度,利于指标聚合和整个文本匹配方案的实现。
基于前述可能设计二~四的技术方案,通过在公司内部文档集上进行匹配实验:挑选了1000条与公司内部文档相关的查询文本,并将它们分为5组,每组200条;每组查询文本切出的单词个数依次为:第一组1-3,第二组4-6,第三组7-9,第四组10-12,第五组大于13,可得到如图2所示的三种指标在不同单词量情况下的召回率(指实际为正的样本中被预测为正样本的概率)对比示例图。从图2可以看出,所述第一指标值的确对于长文本的召回率较高,所述第二指标值对短文本的召回率较高,而所述第三指标值则对文本长度不敏感。进一步验证了在文本较短时,适合采用所述第二指标值与所述第三指标的积来综合衡量所述查询单词集合与该标题单词集合的相似性/差异性;而在文本较长时,适合采用所述第一指标值与所述第三指标值的积来综合衡量所述查询单词集合与该标题单词集合的相似性/差异性。至于在文本长度处于既不长且又不短的临界状态(例如图2中切词个数在3~4范围内)时,由于基于所述第三指标值进行文本匹配时的召回率均分别高于基于所述第一指标值和所述第二指标值进行文本匹配时的召回率,因此通过在第一指标值*第三指标值与第二指标值*第三指标值之间取最大值来作为衡量文本匹配的聚合指标值,可以使本实施例在文本匹配应用实现召回率的平滑过渡,进而可以保障聚合算法适合任意长度的文本匹配。如图2所示,基于聚合指标值进行文本匹配后的召回率明显高于基于其它指标值时的召回率,可以确保匹配准确性。此外,该方法的准确性还可采用精确率(指所有预测为正的样本中实际为正样本的概率)和F1值(指精确率与召回率的权衡指标值,有现有定义公式)等指标进行评价和验证。
如图3所示,本实施例第二方面提供了一种实现第一方面或第一方面中任意一种可能设计的所述文本匹配方法的虚拟装置,包括有依次通信连接的集合获取模块、指标计算模块、指标聚合模块和目标确定模块;
所述集合获取模块,用于获取查询单词集合和多个标题单词集合,其中,所述查询单词集合与用户查询文本对应,所述多个标题单词集合与多个已知文档标题一一对应;
所述指标计算模块,用于针对所述多个标题单词集合中的各个标题单词集合,计算得到所述查询单词集合与该标题单词集合的第一指标值、第二指标值和第三指标值,其中,所述第一指标值用于表征基于词频-逆文档频率TF-IDF计算得到的且所述查询单词集合与该标题单词集合的相似程度,所述第二指标值用于表征基于编辑距离MED计算得到的且所述查询单词集合与该标题单词集合的差异程度,所述第三指标值用于表征基于杰卡德相似系数计算得到的且所述查询单词集合与该标题单词集合的相似程度;
所述指标聚合模块,用于针对所述各个标题单词集合,计算得到对应该标题单词集合的所述第一指标值与所述第三指标值的积以及所述第二指标值与所述第三指标值的积,并从两积中取最大值,得到对应的聚合指标值;
所述目标确定模块,用于在所述多个已知文档标题中,将与最大聚合指标值对应的已知文档标题作为所述用户查询文本的匹配目标,其中,所述最大聚合指标值为多个聚合指标值中的最大值,所述多个聚合指标值与所述多个已知文档标题一一对应。
在一种可能设计中,所述集合获取模块包括有依次通信连接的文本获取子模块、分词处理子模块和集合确定子模块;
所述文本获取子模块,用于获取所述用户查询文本和所述多个已知文档标题;
所述分词处理子模块,用于对所述用户查询文本进行分词处理,得到至少一个第一单词,以及对所述多个已知文档标题中的各个已知文档标题分别进行分词处理,得到多组单词,其中,所述多组单词与所述多个已知文档标题一一对应,所述多组单词中的每组单词包含有至少一个第二单词;
所述集合确定子模块,用于将所述至少一个第一单词作为所述查询单词集合,以及针对所述多组单词中的每组单词,将所述至少一个第二单词作为对应已知文档标题的所述标题单词集合。
在一个可能的设计中,所述集合确定子模块包括有通信相连的小写转换孙模块和集合确定孙模块;
所述小写转换孙模块,用于对所有的所述第一单词做统一的小写转换,得到转换处理后的第一单词,以及对所有的所述第二单词做统一的小写转换,得到转换处理后的第二单词;
所述集合确定孙模块,用于将转换处理后的至少一个第一单词作为所述查询单词集合,以及针对所述多组单词中的每组单词,将转换处理后的至少一个第二单词作为对应已知文档标题的所述标题单词集合。
在一个可能的设计中,所述指标计算模块包括有通信相连的向量获取子模块和第一指标计算子模块;
所述向量获取子模块,用于按照如下公式得到对应所述查询单词集合的查询向量VQ和对应该标题单词集合的标题向量VP:
式中,Q表示所述查询单词集合,P表示该标题单词集合,w
k表示在所述查询单词集合与该标题单词集合的且无重复单词的并集中的第k个单词,k表示介于1~K之间的自然数,K表示所述并集中的单词个数,
表示单词w
k的词频,
表示单词w
k的逆文档频率,
表示所述查询向量V
Q在第k个维度上的数值,
表示所述标题向量V
P在第k个维度上的数值;
所述第一指标计算子模块,用于按照如下公式计算得到所述查询单词集合与该标题单词集合的所述第一指标值:
式中,Stf-idf表示所述第一指标值。
在一个可能的设计中,所述指标计算模块包括有第二指标计算子模块;
所述第二指标计算子模块,用于按照如下公式计算得到所述查询单词集合与该标题单词集合的所述第二指标值:
式中,S
levenshtein表示所述第二指标值,q
i表示所述查询单词集合中的第i个单词,i表示介于1~n之间的自然数,n表示所述查询单词集合中的单词个数,
表示在该标题单词集合中的且与单词q
i具有最短的编辑距离的单词,p
j表示该标题单词集合中的第j个单词,j表示介于1~m之间的自然数,m表示该标题单词集合中的单词个数,f(·)表示单词间的编辑距离函数。
在一个可能的设计中,所述指标计算模块包括有第三指标计算子模块;
所述第三指标计算子模块,用于按照如下公式计算得到所述查询单词集合与该标题单词集合的所述第三指标值:
式中,Sjaccard表示所述第三指标值,Q表示所述查询单词集合,P表示该标题单词集合,∪表示并集运算符,∩表示交集运算符,| |表示获取集合的单词个数。
本实施例第二方面提供的前述装置的工作过程、工作细节和技术效果,可以参见第一方面或第一方面中任意一种可能设计所述的文本匹配方法,于此不再赘述。
如图4所示,本实施例第三方面提供了一种执行第一方面或第一方面中任意一种可能设计的所述文本匹配方法的计算机设备,包括通信相连的存储器和处理器,其中,所述存储器用于存储计算机程序,所述处理器用于读取所述计算机程序,执行如第一方面或第一方面中任意一种可能设计所述的文本匹配方法。具体举例的,所述存储器可以但不限于包括随机存取存储器(Random-Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、闪存(Flash Memory)、先进先出存储器(First Input First Output,FIFO)和/或先进后出存储器(First Input Last Output,FILO)等等;所述处理器可以不限于采用型号为STM32F105系列的微处理器。此外,所述计算机设备还可以但不限于包括有电源模块、显示屏和其它必要的部件。
本实施例第三方面提供的前述计算机设备的工作过程、工作细节和技术效果,可以参见第一方面或第一方面中任意一种可能设计所述的文本匹配方法,于此不再赘述。
本实施例第四方面提供了一种存储包含第一方面或第一方面中任意一种可能设计的所述短文本匹配方法的指令的计算机可读存储介质,即所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面或第一方面中任意一种可能设计所述的文本匹配方法。其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(Memory Stick)等,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
本实施例第四方面提供的前述计算机可读存储介质的工作过程、工作细节和技术效果,可以参见第一方面或第一方面中任意一种可能设计所述的文本匹配方法,于此不再赘述。
本实施例第五方面提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面或第一方面中任意一种可能设计所述的文本匹配方法。其中,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
以上所描述的实施例仅仅是示意性的,若涉及到作为分离部件说明的单元,其可以是或者也可以不是物理上分开的;若涉及到作为单元显示的部件,其可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
最后应说明的是,本发明不局限于上述可选的实施方式,任何人在本发明的启示下都可得出其他各种形式的产品。上述具体实施方式不应理解成对本发明的保护范围的限制,本发明的保护范围应当以权利要求书中界定的为准,并且说明书可以用于解释权利要求书。