文本相关度的确定方法、查询结果的推送方法及装置
技术领域
本发明涉及网络数据处理领域,尤其涉及一种文本相关度的确定方法、查询结果的推送方法及装置。
背景技术
在利用文本(查询串)进行的查询搜索中,查询串一般都会对应多个查询结果。因此对于每一次的查询搜索,往往需要对查询串与查询结果的文本串进行相似度计算,以确定查询结果的文本串与查询串之间的相关度。然后根据该相关度来辅助对查询结果的展示排序。
目前用于度量短文本相似性的方法包括:基于最长公共子串(英文:LongestCommon Substring;缩写:LCS)的方法、以及基于词命中率的方法。举例而言,在查询串为“ABCD”的情况下,查询结果包括“ABXCD”和“AXBYCD”。其中,无论哪种查询结果,与查询串之间的最长的相同字符串的长度都是2,也即最长公共子串均为2。另外,由于词命中率不考虑查询串和查询结果的文本串的分词顺序,因此查询串“ABCD”对上述两种查询结果“ABXCD”和“AXBYCD”的词命中率也相同。
然而,对于搜索者来说,结果“ABXCD”可能是更好的搜索结果。但是基于最长公共子串和词命中率的计算方式均无法有效地对两者进行区分,从而导致部分用户主观能识别的差别无法通过计算相似度来体现。
发明内容
技术问题
有鉴于此,本发明要解决的技术问题是,如何较为准确合理地确定文本相关度。
解决方案
为了解决上述技术问题,根据本发明的一实施例,提供了一种文本相关度的确定方法,包括:对查询词进行分词处理,所述查询词对应至少一个查询结果;对各所述查询结果进行分词处理;根据所述查询词的分词结果和所述查询结果的分词结果来计算所述查询词到各所述查询结果的编辑距离;以及根据各所述编辑距离确定所述查询词与各所述查询结果之间的文本相关度。
对于上述方法,在一种可能的实现方式中,对所述查询词进行分词处理包括:将所述查询词转变成由表示的有序词序列,其中,qi是查询词Q的第i个分词结果,qi在所述查询词Q中的词权重为wqi;对所述查询结果进行分词处理包括:将所述查询结果转变成由表示的有序词序列,其中,dj是查询结果D的第j个分词结果,dj在所述查询结果D中的词权重为wdj,
对于上述方法,在一种可能的实现方式中,计算所述查询词到所述查询文本的编辑距离包括:根据来计算所述查询词Q到所述查询结果D的编辑距离EXTED(m,n),其中,EXTED(0,j)=0;EXTED(i,0)=EXTED(i-1,0)+C(add[qi]);增加操作的影响因子C(add[qi])=α×wqi;替换操作的影响因子C(replace[qi,dj])=β×(wqi+wdj);删除操作的影响因子C(delete[dj])=γ×wdj;α、β、γ为预先设定的值。
对于上述方法,在一种可能的实现方式中,确定所述查询词与所述查询文本之间的文本相关度包括:根据sim(Q,D)=1-min(EXTED(i,j))/EXTED(m,0)来确定所述查询词Q与所述查询结果D之间的文本相关度sim(Q,D)。
为了解决上述技术问题,根据本发明的另一实施例,提供了一种查询结果的推送方法,包括:根据本发明任一实施例所述的文本相关度的确定方法来确定文本相关度;以及按照所确定的文本相关度来推送查询结果。
为了解决上述技术问题,根据本发明的又一实施例,提供了一种文本相关度的确定装置,包括:第一分词模块,用于对查询词进行分词处理,所述查询词对应至少一个查询结果;第二分词模块,用于对各所述查询结果进行分词处理;计算模块,与所述第一分词模块和所述第二分词模块均连接,用于根据所述查询词的分词结果和所述查询结果的分词结果来计算所述查询词到各所述查询结果的编辑距离;以及确定模块,与所述计算模块连接,用于根据各所述编辑距离确定所述查询词与各所述查询结果之间的文本相关度。
对于上述装置,在一种可能的实现方式中,所述第一分词模块具体用于:将所述查询词转变成由表示的有序词序列,其中,qi是查询词Q的第i个分词结果,qi在所述查询词Q中的词权重为wqi;所述第二分词模块具体用于:将所述查询结果转变成由表示的有序词序列,其中,dj是查询结果D的第j个分词结果,dj在所述查询结果D中的词权重为wdj,
对于上述装置,在一种可能的实现方式中,所述计算模块具体用于:根据来计算所述查询词Q到所述查询结果D的编辑距离EXTED(m,n),其中,EXTED(0,j)=0;EXTED(i,0)=EXTED(i-1,0)+C(add[qi]);增加操作的影响因子C(add[qi])=α×wqi;替换操作的影响因子C(replace[qi,dj])=β×(wqi+wdj);删除操作的影响因子C(delete[dj])=γ×wdj;α、β、γ为预先设定的值。
对于上述装置,在一种可能的实现方式中,所述确定模块具体用于:根据sim(Q,D)=1-min(EXTED(i,j))/EXTED(m,0)来确定所述查询词Q与所述查询结果D之间的文本相关度sim(Q,D)。
为了解决上述技术问题,根据本发明的又一实施例,提供了一种查询结果的推送装置,包括:根据本发明任一实施例所述的文本相关度的确定装置,用于确定文本相关度;以及推送装置,与所述文本相关度的确定装置连接,用于按照所确定的文本相关度来推送查询结果。
有益效果
通过对查询词和与该查询词对应的查询结果进行分词处理,然后根据各自的分词结果来计算两者的文本相关度,根据本发明实施例的文本相关度的确定方法和装置计算出的文本相似度能够体现出用户对各查询结果的倾向性。另外,由于根据本发明实施例的查询结果的推送方法和装置利用上述文本相关度来进行查询结果的推送,从而可以使得用户快速准确地获取所期望的查询结果,相比现有技术更为准确合理。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1示出根据本发明一实施例的文本相关度的确定方法的流程图;
图2示出根据本发明一实施例的查询结果的推送方法的流程图;
图3示出根据本发明一实施例的文本相关度的确定装置的结构框图;
图4示出根据本发明一实施例的查询结果的推送装置的结构框图;
图5示出了本发明的又一实施例的文本相关度的确定装置/查询结果的推送装置的结构框图。
具体实施方式
以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
实施例1
图1示出根据本发明一实施例的文本相关度的确定方法的流程图。如图1所示,该确定方法可以包括:
步骤S100、对查询词进行分词处理,所述查询词对应至少一个查询结果;
步骤S200、对各所述查询结果进行分词处理;
步骤S300、根据所述查询词的分词结果和所述查询结果的分词结果来计算所述查询词到各所述查询结果的编辑距离;以及
步骤S400、根据各所述编辑距离确定所述查询词与各所述查询结果之间的文本相关度。
需要说明的是,上述的查询词可以是文本,因此也称作查询串或者查询文本串。上述的查询结果可以是用于描述与查询词对应的网络资源属性的描述文本、例如标题或者标签等,也可以称作查询结果的文本串或者查询结果串。网络资源可以包括但不限于视频资源、音频资源、文本资源、网页资源、以及网络商城的商品资源等能够在网络系统中获取的资源。
在本实施例中,通过对查询词及其对应的查询结果进行分词处理,然后根据分词结果来计算查询词及其对应的查询结果的文本相关度。由此计算出的文本相似度能够体现出用户对各查询结果的倾向性,从而使得用户可以快速准确地获取所期望的查询结果,相比现有技术更为准确合理。
实施例2
本实施例用于说明上述实施例1的一种可能的实现方式。在本实施例的文本相关度的确定方法中,步骤S100中对查询词进行分词处理可以包括:将所述查询词转变成由表示的有序词序列。其中,qi是查询词Q的第i个分词结果,qi在所述查询词Q中的词权重为wqi,其中,本领域技术人员应能理解,m是正整数,i表示从1到m之间的任意整数,qi表示查询词Q的分词结果中的第i个有序词。
举例而言,通过对查询词“好听的歌曲”进行分词处理,可以转变成包括“好听”、“的”、“歌曲”的有序词序列。其中,可以将第2个有序词“的”的词权重设置为比第1个有序词“好听”和第3个有序词“歌曲”小,而将第1个有序词“好听”的词权重设置为比第3个有序词“歌曲”小。并且,这3个有序词的词权重之和为1。
类似地,在本实施例所述的文本相关度的确定方法中,步骤S200中对查询结果进行分词处理可以包括:将所述查询结果转变成由表示的有序词序列。其中,dj是查询结果D的第j个分词结果,dj在所述查询结果D中的词权重为wdj,与对查询词的上述说明类似地,本领域技术人员应能理解,n是正整数,j表示从1到n之间的任意整数,dj表示查询结果D的分词结果中的第j个有序词。这里不再对查询结果具体举例。
这样,根据通过本发明上述实施例所述的方法获得的分词结果,来计算查询词和查询结果之间的文本相关度,能够使得所计算出的文本相似度相比现有技术更为准确合理,以体现出用户主观上对各查询结果的倾向性,从而使得用户可以快速准确地获取所期望的查询结果。
实施例3
本实施例在实施例2的基础上,进一步说明上述文本相关度的确定方法的可能的实现方式。在本实施例所述的文本相关度的确定方法中,步骤S300中计算查询词到查询文本的编辑距离可以包括:根据来计算查询词Q到查询结果D的编辑距离EXTED(m,n)。
其中,EXTED(0,j)=0;EXTED(i,0)=EXTED(i-1,0)+C(add[qi]);增加操作的影响因子C(add[qi])=α×wqi;替换操作的影响因子C(replace[qi,dj])=β×(wqi+wdj);删除操作的影响因子C(delete[dj])=γ×wdj;α、β、γ为预先设定的值。
需要说明的是,编辑距离(英文:Edit Distance)还可以称为Levenshtein距离,可以指两个字串之间,由一个转成另一个所需的最少编辑操作次数。其中,许可的编辑操作包括将一个字符替换成另一个字符、插入一个字符、以及删除一个字符。一般来说,编辑距离越小,两个字串的相似度越大。
举例而言,根据经验,进行增加编辑(也即add操作)要比删除编辑(也即delete操作)的影响更大,而删除编辑要比替换编辑(也即replace操作)的影响更大。例如,可以将α、β、γ预先设置为1.0、0.5、0.7,并且已知查询词“AC”的分词结果“A”和“C”的词权重分别为0.4和0.6,查询结果“ABC”的分词结果“A”、“B”和“C”的词权重分别为0.2、0.3和0.5,则查询词“AC”到查询结果“ABC”的编辑距离的具体计算过程如下。
首先,在i=0的情况下,根据EXTED(0,j)=0,将下述表1中i=0的这一行所有单元格全部赋值为0。
然后,在j=0的情况下,根据EXTED(i,0)=EXTED(i-1,0)+C(add[qi])对下述表1中j=0的这一列的各单元格进行赋值。其中,对于i=1、j=0的单元格,值为0+1.0×0.4=0.4。对于i=2、j=0的单元格,值为0.4+1.0×0.6=1.0。
最后,在i≥1,j≥1j=0的情况下,根据对下述表1中的其它单元格(例如i=1、2的行与j=1、2、3的列对应的各单元格)进行赋值。其中,对于i=1、j=1的单元格,EXTED(i-1,j)+C(add[qi])=0+1.0×0.4=0.4,EXTED(i-1,j-1)+C(replace[qi,dj])=0+0.5×(0.4+0.2)=0.3,EXTED(i,j-1)+C(delete[dj])=0.4+0.7×0.2=0.54,将三者中最小的值0.3作为该单元格中的值。对于其它单元格,计算方法与i=1、j=1的单元格相同,这里不再详述。由此递推计算,得出如表1所示的编辑距离。
表1编辑距离
|
#(j=0) |
A(j=1) |
B(j=2) |
C(j=3) |
#(i=0) |
0 |
0 |
0 |
0 |
A(i=1) |
0.4 |
0.3 |
0.35 |
0.4 |
C(i=2) |
1.0 |
0.8 |
0.75 |
0.9 |
以上以词权重以及各编辑操作(增加、替换和删除)影响因子的具体数值为例对编辑距离的计算进行了说明,但本发明应不限于此。本领域技术人员应能理解,各编辑操作影响因子的具体数值不限于上述的经验值,可以通过机器学习等方式对各编辑影响因子进行自适应地调节。
这样,根据通过本发明上述实施例所述的方法获得的编辑距离,来计算查询词和查询结果之间的文本相关度,能够使得所计算出的文本相似度相比现有技术更为准确合理,以体现出用户主观上对各查询结果的倾向性,从而使得用户可以快速准确地获取所期望的查询结果。
实施例4
本实施例在实施例3的基础上,进一步说明上述文本相关度的确定方法的可能的实现方式。在本实施例所述的文本相关度的确定方法中,步骤S400中确定查询词与查询文本之间的文本相关度可以包括:根据sim(Q,D)=1-min(EXTED(i,j))/EXTED(m,0)来确定所述查询词Q与所述查询结果D之间的文本相关度sim(Q,D)。另外,也可以不简写上述公式,而写成sim(Q,D)=sim(<q1,q2,…,qm>,<w1,w2,…,wn>)=1-ext_ed(<q1,q2,…,qm>,<w1,w2,…,wn>)。
仍以实施例3中的表1为例,其中,min(EXTED(i,j))=0.3,EXTED(m,0)=1,则文本相关度sim(Q,D)为0.7。文本相关度越大,则查询词与查询结果之间的相关性越大。
实现本发明实施例所述的文本相关度的确定方法的计算过程伪码的一种示例如下:
这样,根据通过本发明上述实施例所述的方法计算查询词和查询结果之间的文本相关度,能够使得所计算出的文本相似度相比现有技术更为准确合理,以体现出用户主观上对各查询结果的倾向性,从而使得用户可以快速准确地获取所期望的查询结果。
需要补充说明的是,背景技术中提及的基于最长公共子串的方法以及基于词命中率的方法还存在如下问题:在进行一个查询串较长(分词结果数大于等于4)的短文本搜索时,存在很多模糊查询(非完全命中或者连续全命中)的情况,无法有效地对之进行区分,从而导致此部分用户主观能识别的差别无法通过计算相似度体现。
为此,如在实施例1-4中所述,本发明提出了一种基于文本分词结果的扩展文本编辑距离来度量文本相似度的方法。该方法与通常的文本编辑距离的计算方法不同。本发明更关注查询串,计算单元为词并引入词权重。对于结果文本中完全包含查询串的情况,即使前后还包含其他文本也认为是一个好的结果。所以本发明在计算中取结果文本的任意子串的编辑距离的最小值的归一化值作为最终的编辑距离值。根据本发明的文本相关度确定方法不仅能够解决所有现有技术(例如基于LCS的方法)能解决的搜索中文本相似度计算问题,同时还能解决许多现有技术的方案无法解决的问题。另外,本发明提出的改进算法具有与现有技术的原有算法相同的时间复杂度(O(m*n))。另外,本发明所提出的技术方案常用于搜索中文本串的相似度度量,尤其适用于短文本相似度的实时计算。
实施例5
图2示出根据本发明一实施例的查询结果的推送方法的流程图。如图2所示,该推送方法可以包括:
步骤S500、确定查询词与各查询结果之间的文本相关度,其中可以根据上述实施例1-4中任一实施例的文本相关度的确定方法来确定所述文本相关度,这里对具体的确定步骤和所能实现的效果不再赘述;以及
步骤S600、按照所确定的文本相关度来推送查询结果。举例而言,查询词Q与查询结果D1、查询结果D2和查询结果D3相对应,并且根据步骤S500计算出查询词Q与各查询结果之间的文本相关度分别为0.3、0.5和0.7,则用户在利用查询词Q进行查询搜索的情况下,按照文本相关度从高到低的顺序来推送这些查询结果。例如在搜索结果页面上顺次显示查询结果D3、查询结果D2和查询结果D1。
这样,由于利用相比现有技术更为准确合理、并能够体现出用户主观上对各查询结果的倾向性的文本相关度来进行查询结果的推送,根据本发明实施例的查询结果的推送方法可以使得用户快速准确地获取所期望的查询结果。
实施例6
图3示出根据本发明一实施例的文本相关度的确定装置500的结构框图。如图3所示,该确定装置可以包括:
第一分词模块100,用于对查询词进行分词处理,所述查询词对应至少一个查询结果;
第二分词模块200,用于对各所述查询结果进行分词处理;
计算模块300,与第一分词模块100和第二分词模块299均连接,用于根据所述查询词的分词结果和所述查询结果的分词结果来计算所述查询词到各所述查询结果的编辑距离;以及
确定模块400,与计算模块300连接,用于根据各所述编辑距离确定所述查询词与各所述查询结果之间的文本相关度。
上述的第一分词模块100、第二分词模块200、计算模块300和确定模块400的具体实现机理可参见实施例1中对步骤S100至S400的说明,并且,根据本发明上述实现方式的文本相关度的确定装置500能够获得与实施例1相同的有益效果,这里不再赘述。
在一种可能的实现方式中,第一分词模块100具体可以用于:将所述查询词转变成由表示的有序词序列,其中,qi是查询词Q的第i个分词结果,qi在所述查询词Q中的词权重为wqi;第二分词模块200具体可以用于:将所述查询结果转变成由表示的有序词序列,其中,dj是查询结果D的第j个分词结果,dj在所述查询结果D中的词权重为wdj,
这种实现方式的第一分词模块100和第二分词模块200的具体实现机理可参见实施例2中对步骤S100和S200的进一步具体说明,并且,根据本发明这种实现方式的文本相关度的确定装置500能够获得与实施例2相同的有益效果,这里不再赘述。另外,本领域技术人员应能理解,本发明的确定装置500还可以只包括一个分词模块,该分词模块能够实现第一分词模块100和第二分词模块200的功能。
在一种可能的实现方式中,计算模块300具体可以用于:根据 来计算所述查询词Q到所述查询结果D的编辑距离EXTED(m,n),其中,EXTED(0,j)=0;EXTED(i,0)=EXTED(i-1,0)+C(add[qi]); 增加操作的影响因子C(add[qi])=α×wqi;替换操作的影响因子C(replace[qi,dj])=β×(wqi+wdj);删除操作的影响因子C(delete[dj])=γ×wdj;α、β、γ为预先设定的值。
这种实现方式的计算模块300的具体实现机理可参见实施例3中对步骤S300的进一步具体说明,并且,根据本发明这种实现方式的文本相关度的确定装置500能够获得与实施例3相同的有益效果,这里不再赘述。
在一种可能的实现方式中,确定模块400具体可以用于:根据sim(Q,D)=1-min(EXTED(i,j))/EXTED(m,0)来确定所述查询词Q与所述查询结果D之间的文本相关度sim(Q,D)。这种实现方式的确定模块400的具体实现机理可参见实施例4中对步骤S400的进一步具体说明,并且,根据本发明这种实现方式的文本相关度的确定装置500能够获得与实施例4相同的有益效果,这里不再赘述。
实施例7
图4示出根据本发明一实施例的查询结果的推送装置700的结构框图,如图4所示,该装置可以包括:
根据实施例6中任一实现方式的文本相关度的确定装置500,用于确定文本相关度;以及
推送装置700,与文本相关度的确定装置500连接,用于按照所确定的文本相关度来推送查询结果。
上述的文本相关度的确定装置500和推送装置600的具体实现机理可参见实施例6中对步骤S500和S600的说明,并且,根据本发明上述实现方式的查询结果的推送装置700能够获得与实施例6相同的有益效果,这里不再赘述。
实施例8
图5示出了本发明又一实施例的文本相关度的确定装置/查询结果的推送装置1100的结构框图。所述文本相关度的确定装置/查询结果的推送装置1100可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。
所述文本相关度的确定装置/查询结果的推送装置1100包括处理器(processor)1110、通信接口(Communications Interface)1120、存储器(memory)1130和总线1140。其中,处理器1110、通信接口1120、以及存储器1130通过总线1140完成相互间的通信。
通信接口1120用于与网络设备通信,其中网络设备包括例如虚拟机管理中心、共享存储等。
处理器1110用于执行程序。处理器1110可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器1130用于存放文件。存储器1130可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1130也可以是存储器阵列。存储器1130还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码,该程序具体可用于实现上述实施例1-4中所述的文本相关度的确定方法所包括的各步骤,以及/或者用于实现上述实施例5所述的查询结果的推送方法所包括的各步骤。
本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的非易失性存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。