法律状态公告日
法律状态信息
法律状态
2022-07-19
未缴年费专利权终止 IPC(主分类):G06F17/30 专利号:ZL2014103826600 申请日:20140805 授权公告日:20180202
专利权的终止
2018-02-02
授权
授权
2015-02-04
实质审查的生效 IPC(主分类):G06F17/30 申请日:20140805
实质审查的生效
2015-01-07
公开
公开
技术领域
本发明涉及一种基于可拒绝策略的元搜索结果排序算法,属于搜索引擎方法技术领域。
背景技术
互联网的迅速发展使得网络资源急剧增加,用户如何能够有效地获取所需信息成为一个非常值得研究的课题。搜索引擎(Search Engine)是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。搜索引擎的出现大大提高了人们对互联网信息检索的能力和效率。据中国互联网络信息中心(CNNIC)2014年1月《第33次中国互联网络发展状况统计报告》的数据,中国网民搜索引擎用户规模达4.90亿,使用率为79.3%,成为互联网的基础应用之一,是网民获取信息的重要工具。
搜索引擎给人们带来便利的同时也存在着较大的问题。传统搜索引擎网络资源覆盖率较低,检索返回结果的相关度不高,而且不同搜索引擎针对同一个查询所返回结果的重叠率也很低。用户要想获得全面、准确的搜索结果,往往需要使用多个搜索引擎。
为进一步提高用户检索满意度,减少用户检索次数,提高检索覆盖率和准确率,元搜索引擎(Meta-Search Engine)应运而生。元搜索引擎提供统一检索界面,将用户的检索请求提交给多个成员搜索引擎(或源搜索引擎),并将它们的检索结果汇集在一起呈现给用户。
现有的元搜索引擎对于成员搜索引擎按照相等的权重进行调用,并对所返回的检索结果或按照先后原则直接合并排序,或按照位置进行排序,或利用相关分值进行融合排序,没有考虑到用户的实际需求、兴趣爱好以及对排序结果的浏览查看情况,等等。
发明内容
目的:为了克服现有技术中存在的不足,本发明提供一种基于可拒绝策略的元搜索结果排序算法。
技术方案:为解决上述技术问题,本发明采用的技术方案为:
一种基于可拒绝策略的元搜索结果排序算法,包括如下步骤:
步骤一:用户通过用户注册登录模块进行注册并初次登录,输入查询串q;
步骤二:元搜索引擎根据用户输入的查询串q,提取关键词,通过分发模块将关键词按照成员搜索引擎的格式分发给所调用的成员搜索引擎,收集每个成员搜索引擎返回的搜索结果;
步骤三:通过排序模块接收每个成员搜索引擎返回的搜索结果,对搜索结果计算相关度,然后依照改进的Borda函数,并结合成员搜索引擎权重进行排序,将排序后的结果返回给用户;
步骤四:通过搜索引擎权重调整模块对用户权重模型进行更新;根据用户点击等反馈信息来调整成员搜索引擎权重分配,直至拒绝调用某些成员搜索引擎。
所述用户注册登录模块包括登记用户的基本信息;所述基本信息包括地域、行业、教育程度、兴趣爱好等,可初步了解用户的偏好信 息;所述初次登录用户默认设置选择全部的成员搜索引擎,各成员搜索引擎权重相同。
所述排序模块包括对返回的搜索结果的预处理,所述预处理包括如下步骤:
步骤一:提取返回的搜索结果重要组成部分,包括网址、标题、摘要、出处、位置,并根据网址、标题、摘要、出处、位置对返回的搜索结果进行排序;
步骤二:计算查询串与搜索结果之间的相关度,主要计算查询串与标题、摘要之间的相关度;所述标题的重要程度高于摘要,计算相关度时标题和摘要所占权重不一样;所述摘要的长度大于标题的长度时,文档越长,所包含信息越多,同样关键词也可能多次出现;所述关键词第二次出现不如第一次出现的信息量大,如果某个关键词在搜索结果中反复出现,则会降低该关键词的可信度,在计算相关度时需要对其进行惩罚;
假设元搜索引擎调用的成员搜索引擎个数为m,用si(i=1,2,...,m)表示,成员搜索引擎的初始权重wi=1/m(i=1,2,...,m),构成权重向量W={w1,w2,...,wm};对于输入的查询串q进行分词,用qj(j=1,2,...,t)表示;成员搜索引擎si检索返回的结果个数为siNumber(i=1,2,...,m),成员搜索引擎si的第k个结果用ri,k(i=1,2,...,m,k=1,2,...,siNumber)表示,每个ri,k由网址、标题、摘要、相关分值和所属成员搜索引擎五部分组成;分别用数组si_Url[k]、si_Title[k]、si_Text[k]、si_Sim[k]、si_SE[k]表示,其中k=1,2,...,siNumber,i=1,2,...,m,si_SE[k]=2(i-1);去重操作 时,要去掉重复的记录,但必须把返回该记录的成员搜索引擎标记出来,这里进行加法处理,为了保证能区分不同成员搜索引擎,故对成员搜索引擎的取值进行处理,设置为2(i-1),所述i为成员搜索引擎的编号,用于保证最终结果分解的唯一性;
所述查询串q与搜索结果ri,k相关度计算步骤如下:
步骤一:计算查询串q中每个关键词qj与搜索结果ri,k标题之间的相关度,采用如下计算公式:
上式中,ri,k_title表示搜索结果ri,k的标题,num(qj,ri,k_title)表示关键词qj在搜索结果ri,k的标题中出现的次数,len(search)表示查询串search的长度,len(ri,k_title)表示标题ri,k_title的长度,α为标题的权重系数,为惩罚函数,如果关键词qj在ri,k_title中仅出现一次,则计算结果无影响,如果出现多次,则进行相应处理;
步骤二:计算关键词qj与搜索结果ri,k的摘要之间的相关度(β表示摘要的权重系数):
所述α+β=1,0<α,β<1;
步骤三:根据步骤一和步骤二计算结果,求出关键词qj与搜索结 果ri,k之间的相关度:
sim(qj,ri,k)=sim(qj,ri,k_title)+sim(qj,ri,k_text)
计算整个查询串q与搜索结果ri,k之间的相关度:
t表示查询串q包含的关键词总数,则si_Sim[k]=sim(q,ri,k)表示搜索引擎si的第k个搜索结果的相关度值;
所述改进的Borda函数公式如下:
假设成员搜索引擎si检索返回的搜索结果个数为siNumber(i=1,2,...,m),令n=s1Number+s2Number+...+smNumber,这些结果组合成一个结果集合R={r1,r2,...,rn},搜索引擎si对结果集合R建立单一评分矩阵
所述排序步骤如下:
步骤一:统计成员搜索引擎si对结果集合中rj的Borda评分 然后乘以si的权重wi和rj的相关度,即成员搜索引擎si对结果rj的最终Borda评分为
步骤二:依次改变i(i=1,2,...,m)的值,si(i=1,2,...,m)对所有结果的评分可组成总评分矩阵:
最后统计结果集合中rj的最终相关分值然后对f(rj)从大到小进行排序,将排序结果返回给用户;当进行步骤一、步骤二操作时,定义数组totalUrl[x]、totalTitle[x]、totalText[x]、totalSim[x]、totalSE[x],x=1,2,...,n;将si_Url[k]、si_Title[k]、si_Text[k]、si_Sim[k]、si_SE[k](i=1,2,...,m,k=1,2,...,siNumber)的值分别赋给定义的数组,这样就将所有的搜索结果赋给了这五个数组;
当建立评分矩阵时,按照网址进行比较,即对totalUrl[i]进行比较,如果网址相同,即totalUrl[i]=totalUrl[j],则认为是同一条记录,则将相关分值的和作为前一个结果的相关分值,totalSim[i]=totalSim[i]+totalSim[j],并将对应成员搜索引擎的值累加,即totalSE[i]=totalSE[i]+totalSE[j],然后将totalUrl[j]及相关信息清除;
当排序时,如果有两个或多个记录的最终相关分值一致,则参照成员搜索引擎的权重,权重小的排在前面;
最终返回给用户的结果中包含网址、标题、摘要、相关度和成员搜索引擎等信息。
所述搜索引擎权重调整模块包括通过用户的隐式反馈信息来调整成员搜索引擎的决策权重;
假设元搜索引擎有m个成员搜索引擎s1,s2,...,sm组成,返回的n个结果,对结果集合R={1r2,r,n进行总体评价;令xij(i=1,2,...,n;j=1,2,...,m)表示搜索引擎j对于第i个结果的评价值,得到全部搜索引擎的初始评价矩阵:
元搜索引擎的整体效用函数要参考所调用成员搜索引擎的效用函数,即元搜索引擎的效用函数应该是成员搜索引擎效用函数的函数uG(y)=f[u1(y),u2(y),...,um(y)];最简单的元搜索引擎集结函数采用的是求平均值的方法:其中xGi表示元搜索引擎对方案i的评价值;记是元搜索引擎的初始权重,其中表示第j个成员搜索引擎的初始权重,设计算每个方案的元搜索引擎平均估计值得到元搜索引擎平均估计向量 将元搜索引擎的平均估计向量作为方案的真实值,用成员搜索引擎的评价值与元搜索引擎平均估计的一致程度重新修正初始权重:
其中,是搜索引擎平均估计向量与搜索引擎评价矩阵元素乘积的累加和,是一个确定的值。对于最佳方案,若某个成员搜索引擎的评分值高,则该成员搜索引擎的权重就会加大,修正权w1反映了成员搜索引擎对相对最优方案判断的正确性,修正后的权重向量为 )权重的变化又带来元搜索引擎平均估计的变化
根据群体新的平均估计,再一次验证成员搜索引擎对相对最优方案判断的正确性,重新修正权重向量:
按照算法Xt=Xwt-1,不断修正权重向量和元搜索引擎平均估计,直到收敛为止;成员搜索引擎的最终权重向量wt=wt-1,或Xt=Xt-1;
计算方法:记XT是X的转置矩阵,根据转置矩阵的性质,上式变为 令B=XTX,得到其中wt>0,B=(bij)n×m是n×m阶矩阵,且
多次调整后,某个成员搜索引擎的权重变为零,则说明元搜索引擎不再信任该成员搜索引擎,即使用户选择了该成员搜索引擎,系统也会即拒绝调用该成员搜索引擎。
有益效果:本发明提供的基于可拒绝策略的元搜索结果排序算法,计算返回结果相关度并按照改进的社会选择函数Borda函数对结果进行排序,并根据用户的点击情况等反馈信息调整成员搜索引擎权重,改变调用策略,直至拒绝调用某个成员搜索引擎,并及时更新用户模型,提高检索精确度具有准确度高和覆盖率广的优点。
附图说明
图1为本发明的结构示意图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
如图1所示,一种基于可拒绝策略的元搜索结果排序算法,用户注册登录模块,为了更好地服务用户,为用户提供更准确的信息检索服务,在用户注册时,登记用户的基本信息,包括地域,行业,教育程度,兴趣爱好等等,初步了解用户的偏好。
用户登录时,利用存储的用户信息,验证请求登录用户的合法性,使注册用户能登录到网站上进行检索活动,并根据用户偏好信息,为用户提供相对应的检索策略,提高检索准确率。初次登录用户默认设置选择全部的成员搜索引擎,各成员搜索引擎权重相同,wi=1/m(i=1,2,...,m),m为成员搜索引擎个数。
分发模块,对用户输入的查询串q进行分词处理,提取关键词qj(j=1,2,...,t),然后将检索关键词按照成员搜索引擎的格式分发到所调用的成员搜索引擎中。
排序模块,元搜索引擎排序的目的是尽可能把用户最想要的结果信息排在前面。由于返回的结果来自多个成员搜索引擎,并且各成员搜索引擎的机制不同,导致结果组成形式各异,所以在排序前需要对返回结果进行预处理。
首先,提取返回结果重要组成部分,包括网址、标题、摘要、出处(来自哪个成员搜索引擎)和位置(在搜索引擎中的位置序号)五个部分,并充分利用这些信息来对返回结果进行排序。
其次,计算相关度。相关度是指查询串与查询结果之间关联关系 的大小,相关度的计算方法有很多种,包括布尔模型、空间向量模型、神经网络模型等方法。由于出处、位置和网址在计算相关度时没有特别的意义,所以本发明中计算相关度时采用的是计算查询串与标题、摘要之间的相关度。需要说明的是,(1)标题的重要程度高于摘要,故在计算相关度时标题和摘要所占权重不一样;(2),摘要的长度大于标题的长度,一般来说,文档越长,就具有更多的词,同样也具有更多的信息;(3)关键词第二次出现不如第一次出现的信息量大,如果某个关键词在结果中反复出现,则会降低该关键词的可信度,在计算相关度时需要对其进行惩罚。
假设元搜索引擎调用的成员搜索引擎个数为m,用si(i=1,2,...,m)表示,成员搜索引擎的初始权重wi=1/m(i=1,2,...,m),构成权重向量W={w1,w2,...,wm}。对于输入的查询串q进行分词,用qj(j=1,2,...,t)表示。成员搜索引擎si检索返回的结果个数为siNumber(i=1,2,...,m),成员搜索引擎si的第k个结果用ri,k(i=1,2,...,m,k=1,2,...,siNumber)表示,每个ri,k由网址、标题、摘要、相关分值和所属成员搜索引擎五部分组成。分别用数组si_Url[k]、si_Title[k]、si_Text[k]、si_Sim[k]、si_SE[k]表示,其中k=1,2,...,siNumber,i=1,2,...,m,si_SE[k]=2(i-1)。在后面的去重操作时,要去掉重复的记录,但必须把返回该记录的成员搜索引擎标记出来,这里进行加法处理,为了保证能区分不同成员搜索引擎,故对成员搜索引擎的取值进行处理,设置为2(i-1),所述i为成员搜索引擎的编号,这样可以保证对最终结果的分解是唯一的。假设最终结果的值为13,有13=20+0+22+23,则可以知道返回该结果的成员搜索 引擎有第1个,第3个和第4个。
查询串q与搜索结果ri,k之间相关度的计算。首先计算查询串q中每个关键词qj与搜索结果ri,k标题之间的相关度,为了提高计算速度,采用下面的计算公式:
上式中,ri,k_title表示搜索结果ri,k的标题,num(qj,ri,k_title)表示关键词qj在搜索结果ri,k的标题中出现的次数,len(search)表示查询串search的长度,len(ri,k_title)表示标题ri,k_title的长度,α为标题的权重系数,为惩罚函数,如果关键词qj在ri,k_title中仅出现一次,则计算结果无影响,如果出现多次,则进行相应处理。
同理我们可以求出关键词qj与搜索结果ri,k的摘要之间的相关度(β表示摘要的权重系数):
初始设置α=0.618,β=0.382,后面可根据经验或结果来调整α和β的值,α+β=1。
这样,利用公式(1)和(2),就可以求出关键词qj与搜索结果ri,k 之间的相关度:
sim(qj,ri,k)=sim(qj,ri,k_title)+sim(qj,ri,k_text)
计算整个查询串q与搜索结果ri,k之间的相关度:
t表示查询串q包含的关键词总数,则si_Sim[k]=sim(q,ri,k)表示搜索引擎si的第k个搜索结果的相关度值。
社会选择理论表明,群体大多数人的选择更接近于事实的真相。同样道理,对于返回的检索结果,如果出现在多个成员搜索引擎的结果中,那么它就越符合检索用户的需求,在最终的排名中就越靠前,利用改进的社会选择函数Borda函数对结果进行排序。
传统的Borda函数最初用来投票选举多名候选人。在投票时,不仅要投票者列出希望当选的候选人,而且还要针对候选人的能力进行排序。通过记分的方式来进行,通常对排名最后一位的候选人赋值一个非负整数x,排在他前面的其他候选人依次获得间隔为正整数y的得分,如x+y,x+2y,x+3y,...,x+(n-1)y,一般我们设置x=1,y=1,位置越靠前,分值就越大。最后对各候选人的得分进行累加,得分数最多的获胜。
现在我们将各个成员搜索引擎看作是“投票者”,将它们的检索结果看作是“候选人”。很明显,对于任何查询串,各个“投票者”(成员搜索引擎)将自己检索到的结果按照重要程度建立了偏好顺序并给予评分。统计各个结果的“票数”时,很显然在多个成员搜索引擎中同时出现,并且位置比较靠前的结果得到的分值最高。需要注意的是对结果分配的相关分值是根据位置关系采取线性递减的规则分 配的,但位置关系不能完全显示分值变化的规律,原有记录默认分值差别为1,实际上可能区别很大。然而,无论从相似度还是其他方面来衡量结果的相关分值时,其成员搜索引擎所检索的结果与查询串之间的相似度并不是呈直线性递减的,而是整体上呈一种并不严格的曲线递减关系,机械性分配相关分值的做法势必会影响到排序结果。如在有10条记录的结果中,排名2,3位的记录,Borda得分分别为9,8,但实际上差别不一定是1,可能是9.9与8.1,或是9.1与8.9,这样就说明虽然两条记录排名紧邻,但相关度差别很大,所以在计算记录得分的时候还要结合查询关键词与结果之间的相关度。
该算法的数学模型如下:
假设成员搜索引擎(投票者)si检索返回的结果个数为siNumber(i=1,2,...,m),令n=s1Number+s2Number+...+smNumber,这些结果组合成一个集合R=(r1,r2,...,rn),搜索引擎si给集合R建立评分矩阵
统计成员搜索引擎si对结果集合中rj的Borda评分然后乘以si的权重wi和rj的相关度,即成员搜索引擎si对结果rj的最终Borda评分为
依次改变i(i=1,2,...,m)的值,si(i=1,2,...,m)对所有结果的评分可组 成总评分矩阵:
在进行统计分值及排序操作时,定义数组totalUrl[x]、totalTitle[x]、totalText[x]、totalSim[x]、totalSE[x],x=1,2,...,n;将si_Url[k]、si_Title[k]、si_Text[k]、si_Sim[k]、si_SE[k](i=1,2,...,m,k=1,2,...,siNumber)的值分别赋给定义的数组,这样就将所有的搜索结果赋给了这五个数组。
在建立评分矩阵时,按照网址进行比较,即对totalUrl[i]进行比较,如果网址相同,即totalUrl[i]=totalUrl[j],则认为是同一条记录;则将相关分值的和作为前一个结果的相关分值,totalSim[i]=totalSim[i]+totalSim[j],并将对应成员搜索引擎的值累加,即totalSE[i]=totalSE[i]+totalSE[j],然后将totalUrl[j]及相关信息清除。
在排序时,如果有两个或多个记录的最终相关分值一致,则参照成员搜索引擎的权重,权重小的排在前面。
最终返回给用户的结果中包含网址、标题、摘要、相关度和成员搜索引擎等信息。
搜索引擎权重调整模块:记录用户的查询情况以及对返回结果的点击浏览情况。针对用户的查询情况,记录用户的兴趣偏好,记录用户经常检索与哪些主题相关的内容?根据用户对所返回结果的点击 等反馈情况(点击的结果是由哪一个或哪几个成员搜索引擎返回的、用户浏览相关网页时间长短等等信息),调整成员搜索引擎权重大小,优化用户偏好模型。如果用户对某个成员搜索引擎返回的结果很少点击或不点击,要么说明用户已经通过其他成员搜索引擎返回的结果找到了满意的检索资源,要么说明该成员搜索引擎返回的检索结果与用户的偏好差别较大,不论哪种情况都需要调整该成员搜索引擎的权重。如果以后再出现类似情况,则继续调整成员搜索引擎的权重,直至拒绝调用该搜索引擎,即使用户选择了该成员搜索引擎。而目前的元搜索引擎只是调整不同成员搜索引擎的权重,不能拒绝调用某个成员搜索引擎。
假设元搜索引擎有m个成员搜索引擎s1,s2,...,sm组成,返回的n个结果,对结果集合R={1r2,r,n进行总体评价;令xij(i=1,2,...,n;j=1,2,...,m)表示搜索引擎j对于第i个结果的评价值,得到全部搜索引擎的初始评价矩阵:
元搜索引擎的整体效用函数要参考所调用成员搜索引擎的效用函数,即元搜索引擎的效用函数应该是成员搜索引擎效用函数的函数uG(y)=f[u1(y),u2(y),...,um(y)];最简单的元搜索引擎集结函数采用的是求平均值的方法:其中xGi表示元搜索引擎对方案i的评价值;记是元搜索引擎的初始权重,其中表示第 j个成员搜索引擎的初始权重,设计算每个方案的元搜索引擎平均估计值得到元搜索引擎平均估计向量 将元搜索引擎的平均估计向量作为方案的真实值,用成员搜索引擎的评价值与元搜索引擎平均估计的一致程度重新修正初始权重:
其中,是搜索引擎平均估计向量与搜索引擎评价矩阵元素乘积的累加和,是一个确定的值。对于最佳方案,若某个成员搜索引擎的评分值高,则该成员搜索引擎的权重就会加大,修正权w1反映了成员搜索引擎对相对最优方案判断的正确性,修正后的权重向量为 权重的变化又带来元搜索引擎平均估计的变化
根据群体新的平均估计,再一次验证成员搜索引擎对相对最优方案判断的正确性,重新修正权重向量;
按照算法Xt=Xwt-1,不断修正权重向量和元搜索引擎平均估计,直到收敛为止;成员搜索引擎的最终权重向量wt=wt-1,或Xt=Xt-1;
计算方法:记XT是X的转置矩阵,根据转置矩阵的性质,上式变为令B=XTX,得到 其中wt>0,B=(bij)n×m是n×m阶矩阵,且
如经过多次调整后,某个成员搜索引擎的权重变为零,则说明元搜索引擎不再信任该成员搜索引擎,即使用户选择了该成员搜索引擎,系统也会即拒绝调用该成员搜索引擎。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
机译: 基于WEB-SERVICES的架构元搜索,用于对等协作和基于IP的语音
机译: 基于语料库的语音合成中基于摄动的合成单元搜索方法
机译: 基于语料库的语音合成中基于摄动的合成单元搜索方法