查询扩展方法和装置以及相关检索词库转让专利

申请号 : CN200710097501.6

文献号 : CN100595759C

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 童征宇汤帜

申请人 : 北大方正集团有限公司北京方正阿帕比技术有限公司北京大学

摘要 :

本发明公开一种查询扩展方法和装置以及相关检索词库,为解决现有的搜索系统不能进行自动高效地查询扩展,为用户的检索行为提供有效的支持的问题而发明。本发明包括:将用户的查询行为记录按照该用户的身份标识和访问时间划分为至少一个查询事件和查询单元;周期性地计算所述各个查询单元或者查询事件中的检索词之间的相关度,根据计算出的检索词之间的相关度对相关检索词库进行更新;在相关检索词库中检索与用户查询时所输入的检索词的相关度接近的相关检索词,形成查询扩展结果。本发明可应用于各种搜索系统,有效辅助用户进行查询,减轻用户的查询负担,提高用户的搜索效率。

权利要求 :

1、一种查询扩展的方法,其特征在于,包括如下步骤:

(A)将用户的查询行为记录按照该用户的身份标识和访问时间划分为至少 一个查询单元,所述查询单元包括至少一个查询事件;

(B)周期性地计算同一个查询单元、不同的两个查询事件中的检索词之间 的相关度,或者任意两个查询事件中的检索词之间的相关度,根据计算出的检 索词之间的相关度对相关检索词库进行更新;

(C)在相关检索词库中检索与用户查询时所输入的检索词之间的相关度最 大的相关检索词,形成查询扩展结果。

2、根据权利要求1所述的查询扩展的方法,其特征在于,所述步骤(A)中, 查询行为记录包括:用户查询时输入的检索词以及对查询结果点击访问的条目; 所述身份标识为IP地址。

3、根据权利要求2所述的查询扩展的方法,其特征在于,若同一IP地址用 户的两个相邻查询事件之间的时间相隔小于一定的时间阈值,则该两个查询事 件属于同一个查询单元。

4、根据权利要求1所述的查询扩展的方法,其特征在于,所述步骤(B)中, 计算同一个查询单元、不同的两个查询事件中的检索词之间的相关度的方法为: Weight ( W in , W jm ) = WeightFactor ( W in , W jm ) × OldWeight ( W in , W jm ) p × ( a - 1 ) + 1 a 其中,且j>i,Win表示第i次查询时的第n 个检索词,Wjm表示第j次查询时的第m个检索词;OldWeight(Win,Wjm)是检索词Win 和Wjm之间的旧的相关度,OldWeight(Win,Wjm)p的取值为(0,1),p为大于零的实数, a为大于2的自然数。

5、根据权利要求4所述的查询扩展的方法,其特征在于,所述p的值为1。

6、根据权利要求1或4或5所述的查询扩展的方法,其特征在于,所述步 骤(B)中,计算任意两个查询事件中的检索词之间的相关度的方法包括:通过 计算新查询事件和旧查询事件中用户对查询结果点击访问的条目的相似度,反 推查询事件中检索词之间的相关度,其方法为: Sim ( S new , S old ) = Common ( S new . CDoc , S old . Cdoc ) Max ( S new . CDoc , S old . Cdoc ) 其中,Snew为新查询事件,Sold为旧查询事件,Sim(Snew,Sold)为新查询事件和旧 查询事件中用户对查询结果点击访问的条目的相似度,Snew.CDoc表示在新查询 事件中用户对查询结果点击访问的条目的ID列表;Sold.Cdoc表示在旧查询事件 中用户对查询结果点击访问的条目的ID列表;Common(Snew.CDoc,Sold.Cdoc)是新查 询事件和旧查询事件的查询结果中用户点击的具有相同ID的条目的数量, Max(Snew.CDoc,Sold.Cdoc)为新查询事件与旧查询事件中用户对查询结果点击访问 的条目数量的最大者。

7、根据权利要求6所述的查询扩展的方法,其特征在于,如果Sim(Snew,Sold)的 值超过系统预设的阈值,则进一步计算新查询事件与旧查询事件中检索词之间 的相关度,其方法为: Weight ( W newi , W oldj ) = Sim ( S new , S old ) × OldWeight ( W newi , W oldj ) q × ( a - 1 ) + 1 a 其中,Wnewi为新查询事件中输入的第i个检索词,Woldj为旧查询事件中输入 的第j个检索词,Weight(Wnewi,Woldj)为检索词Wnewi与Woldj的相关度, OldWeight(Wnewi,Woldj)为检索词Wnewi与Woldj的旧的相关度,OldWeight(Wnewi,Woldj)q的 取值为(0,1),q为大于零的实数,a为大于2的自然数。

8、根据权利要求7所述的查询扩展的方法,其特征在于,所述q的值为1。

9、根据权利要求8所述的查询扩展的方法,其特征在于,所述步骤(B)中, 根据计算出的检索词之间的相关度对相关检索词库进行更新的方法包括:如果计算出的一对检索词之间的相关度已经存储在相关检索词库中,则提高 所述已经存储在相关检索词库中的该对检索词之间的相关度值,否则,在相关 检索词库中增加该对检索词。

10、根据权利要求9所述的查询扩展的方法,其特征在于,在所述根据计算 出的检索词之间的相关度对相关检索词库进行更新的步骤之后,还包括调节相 关检索词库的步骤:若相关检索词库中的具有相关度的一对检索词在一定的时间间隔内没有被 访问过,则降低该对检索词之间的相关度值。

11、根据权利要求10所述的查询扩展的方法,其特征在于,所述降低该对 检索词之间的相关度值的方法为:

Weight = n × OldWeight - 1 n - 1 其中,OldWeight为该对检索词的旧的相关度值,n为大于2的自然数。

12、根据权利要求1所述的查询扩展的方法,其特征在于,所述查询扩展结 果为经过排序的查询扩展结果,所述排序方法包括:按照用户查询时所输入的 检索词分别与所述相关检索词的相关度值的大小进行排序。

13、根据权利要求1所述的查询扩展的方法,其特征在于,所述查询扩展结 果为经过排序的查询扩展结果,所述排序方法包括:按照所述相关检索词的权重值的大小进行排序,相关检索词的权重值的计算 方法为:w=s×1g(n+1);

其中,s为用户查询时输入的检索词与相关检索词的相关度,n为所述相关 检索词的被检索次数。

14、根据权利要求13所述的查询扩展的方法,其特征在于,所述步骤(C) 中,查询扩展的结果可与用户查询时输入的检索词结合构建新的查询表达式, 或直接作为查询表达式,直接提交给用户使用;

或者查询扩展的结果以“或”的关系与用户查询时输入的检索词组合,作为 查询表达式参与本次查询,并将得到的查询结果展示给用户。

15、根据权利要求1所述的查询扩展的方法,其特征在于,所述步骤(A) 之前还包括:搜索系统将用户的查询行为记录存储在该搜索系统的日志文件中, 并对该日志文件进行过滤。

16、根据权利要求1所述的查询扩展的方法,其特征在于,所述步骤(B) 中,周期为一天。

17、一种查询扩展装置,其特征在于,包括:

查询行为记录划分单元,用于将用户的查询行为记录按照该用户的身份标识 和访问时间划分为至少一个查询单元,所述查询单元包括至少一个查询事件;

相关度计算单元,用于周期性地计算同一个查询单元、不同的两个查询事件 中的检索词之间的相关度,或者任意两个查询事件中的检索词之间的相关度;

相关检索词库更新单元,用于根据计算出的检索词之间的相关度对相关检索 词库进行更新;

检索单元,用于在相关检索词库中检索与用户查询时所输入的检索词之间的 相关度最大的相关检索词,形成查询扩展结果。

18、根据权利要求17所述的查询扩展装置,其特征在于,还包括:相关检 索词库调节单元,用于根据所述检索单元形成的查询扩展结果,降低相关检索 词库中的在一定的时间间隔内没有被访问过的一对检索词的相关度值。

19、根据权利要求17所述的查询扩展装置,其特征在于,所述相关检索词 库包括:

检索词存储单元,用于存储用户查询行为记录中的查询时所输入的检索词;

相关度值存储单元,用于存储所述检索词存储单元中检索词之间的相关度 值;

最后访问时间记录单元,用于记录所述相关度值存储单元中具有相关度的检 索词的最后访问时间。

20、根据权利要求19所述的查询扩展装置,其特征在于,所述相关度值存 储单元中检索词序号按照升序或者降序排列。

21、根据权利要求19或20所述的查询扩展装置,其特征在于,所述最后访 问时间记录单元中,具有相关度的检索词的最后访问时间按照访问时间先后顺 序排列。

说明书 :

技术领域

本发明涉及信息检索领域的查询扩展技术,特别涉及查询扩展方法和装置以 及相关检索词库。

背景技术

随着计算机信息技术和互联网技术的快速发展,网络上电子化信息的内容和 数量急剧增长。面对电子信息的海洋,搜索系统成为了人们有效地利用网络资 源的重要工具。现有主流的搜索系统基本都采用了全文检索技术,全文检索技 术的原理是:将要检索的内容分割成较短的文字序列,然后生成每个文字序列 中所包含字符串的索引。当用户输入检索词或语句后,也同样进行分割,与索 引进行比较,然后将匹配的词汇所属的文章链接列表显示给用户。
全文检索技术根据应用领域分为两类:互联网搜索引擎和专业检索系统。
互联网搜索引擎面向的是Internet上大量杂乱无章的网页,主要目的是找 到一些有用的参考信息和屏蔽一些有害信息,尽量把有用的网页排在前面。
而专业检索系统要求查询结果具备高查全率和高查准率,信息相对而言是经 过整理的有用信息,在要求高查准率的同时要求高查全率。查全率是指系统在 进行某一检索时,检索出的相关资料量与系统资料库中相关资料总量的比率, 反映查到的信息的全面性;而查准率则是保证我们找到最有用资料的关键,是 系统在进行某一检索时,检索出的有用资料数量与检索出资料总量的比率。
当然,对于大部分用户来说,主要是应用互联网搜索引擎这样的搜索工具进 行搜索信息,在用户搜索信息时,搜索引擎通过用户输入的检索词进行匹配, 将匹配的结果列表ID显示给用户,但用户的搜索存在以下两个问题:
(1)由于汉语中存在大量同义词和多义词,以及中文表达方式的多样性, 用户在构建查询表达式时使用的检索词往往不尽规范,与搜索系统文档索引所 使用的词或者词组有很大差别,造成信息检索中的“表达差异”问题。
(2)用户在进行查询时,使用的检索词数量不多,通常为1~2个,无法详 细具体地描述用户的信息需求;尤其是当用户并不明确自己的信息需求时,以 上的问题就显得更加突出。
在这种情况下,用户的初始查询通常是不精确的、不够专业和不完全的,这 样的查询得到的结果无法很好地满足用户的需求。
现有的搜索系统为了解决上述问题,采用查询扩展(Query Expansion)技 术,查询扩展技术通过展示与用户输入的检索词相关的其它相关检索词,帮助 用户重新构造准确有效的查询表达式,这在一定程度上弥补用户的表达可能与 候选段落的差别,尽可能以较小的遗漏检索出用户所需要的候选文档。使得用户 的检索更加准确,减轻了用户负担(所谓用户负担是指用户在检索过程中付出 精力的总和)。对于大部分的非专业用户和“我不知道我想要什么,但是当我看 到它时我就知道了”的信息需求者,更能有效地提高他们的检索效率。
但是,这种提供查询扩展功能的搜索系统在实际使用经验中仍发现存在如下 问题:
一是目前的中文搜索引擎通过统计用户输入的检索词和检索次数,构建一个 检索词库。当用户搜索信息时,根据用户所输入的检索词的字符在这个检索词 库中进行匹配查询,然后根据字符的匹配情况和查询结果的被检索次数进行排 序,将排序的结果作为查询扩展的结果提交给用户。如用户输入“电脑”,则在 查询扩展的结果里会出现“电脑报”、“电脑报价”、“笔记本电脑”等与“电脑” 相关的检索词;这种方式方便、直观,能给用户提示可能的相关检索词,但是 得到的查询扩展结果仍然受到用户最初选择的检索词的制约,不适合网络上快 速增长的新词,也无法满足人们对新闻类的、随时间变化的关联词的需求,进 而用户的查询效率无法得到保障。
二是以PubMed等为代表专业检索系统。它通过专业人员来编纂一部词典, 在词典中定义了同义词、相关词等各种词汇之间的关系。借助这部词典来进行 查询扩展,达到高查全率和高查准率,且起到规范用户的查询用词,辅助用户 查询的作用。但这种方法需要专业人员来编纂词典,定义各种词汇之间的关系, 耗时长,维护费用高,一般只适用于专业领域的搜索系统或者专题数据库查询 系统,而不适用于大数据量的非专业领域的搜索系统。另外,这种方法也同样 不适合网络上快速增长的新词,也无法处理新闻类的、随时间变化的关联词。
综上所述,在通用的搜索系统上目前还没有比较好的方法,可以针对用户搜 索所存在的问题,而进行自动高效地查询扩展,为用户的检索行为提供有效的 支持。

发明内容

针对上述现有技术中存在的问题,本发明的目的是提供一种查询扩展方法和 装置以及相关检索词库。利用该相关检索词库进行查询扩展,辅助用户进行查 询,减轻用户的查询负担,提高用户的搜索效率。
为实现上述目的,本发明提供一种查询扩展方法,采用如下方案,包括:
(A)将用户的查询行为记录按照该用户的身份标识和访问时间划分为至少 一个查询单元,所述查询单元包括至少一个查询事件;
(B)周期性地计算同一个查询单元、不同的两个查询事件中的检索词之间 的相关度,或者任意两个查询事件中的检索词之间的相关度,根据计算出的检 索词之间的相关度对相关检索词库进行更新;
(C)在相关检索词库中检索与用户查询时所输入的检索词之间的相关度最 大的相关检索词,形成查询扩展结果。
上述步骤(A)中,查询行为记录包括:用户查询时输入的检索词以及对查询 结果点击访问的条目;所述身份标识为IP地址。
上述查询单元包括至少一个查询事件,若同一IP地址用户的两个相邻查询 事件之间的时间相隔小于一定的时间阈值,则该两个查询事件属于同一个查询 单元。
上述步骤(B)中,计算同一个查询单元、不同的两个查询事件中的检索词 之间的相关度的方法为:
Weight ( W in , W jm ) = WeightFactor ( W in , W jm ) × OldWeight ( W in , W jm ) p × ( a - 1 ) + 1 a
其中,且j>i,Win表示第i次查询时的第 n个检索词,Wjm表示第j次查询时的第m个检索词;OldWeight(Win,Wjm)是检索词 Win和Wjm之间的旧的相关度,OldWeight(Win,Wjm)p的取值为(0,1),p为大于零的实 数,a为大于2的自然数。
较佳的,p的值为1。
上述步骤(B)中,计算任意两个查询事件中的检索词之间的相关度的方法包 括:通过计算新查询事件和旧查询事件中用户对查询结果点击访问的条目的相似 度,反推查询事件中检索词之间的相关度,其方法为:
Sim ( S new , S old ) = Common ( S new . CDoc , S old . Cdoc ) Max ( S new . CDoc , S old . Cdoc )
其中,Snew为新查询事件,Sold为旧查询事件,Sim(Snew Sold)为新查询事件和旧 查询事件中用户对查询结果点击访问的条目的相似度,Snew.CDoc表示在新查询 事件中用户对查询结果点击访问的条目的ID列表;Sold.Cdoc表示在旧查询事件 中用户对查询结果点击访问的条目的ID列表;Common(Snew.CDoc,Sold.Cdoc)是新查 询事件和旧查询事件的查询结果中用户点击的具有相同ID的条目的数量, Max(Snew.CDoc,Sold.Cdoc)为新查询事件与旧查询事件中用户对查询结果点击访问 的条目数量的最大者。
如果Sim(Snew,Sold)的值超过系统预设的阈值,则进一步计算新查询事件与旧查 询事件中检索词之间的相关度,其方法为:
Weight ( W newi , W oldj ) = Sim ( S new , S old ) × OldWeight ( W newi , W oldj ) q × ( a - 1 ) + 1 a
其中,Wnewi为新查询事件中输入的第i个检索词,Woldj为旧查询事件中输入 的第j个检索词,Weight(Wnewi,Woldj)为检索词Wnewi与Woldj的相关度, OldWeight(Wnewi,Woldj)为检索词Wnewi与Woldj的旧的相关度,OldWeight(Wnewi,Woldj)q的 取值为(0,1),q为大于零的实数,a为大于2的自然数。
较佳的,q的值为1。
上述步骤(B)中,根据计算出的检索词之间的相关度对相关检索词库进行 更新的方法包括:
如果计算出的一对检索词之间的相关度已经存储在相关检索词库中,则提高 所述已经存储在相关检索词库中的该对检索词之间的相关度值,否则,在相关 检索词库中增加该对检索词。
在所述根据计算出的检索词之间的相关度对相关检索词库进行更新的步骤 之后,还包括调节相关检索词库的步骤:
若相关检索词库中的具有相关度的一对检索词在一定的时间间隔内没有被 访问过,则降低该对检索词之间的相关度值。
所述降低该对检索词之间的相关度值的方法为:
Weight = n × OldWeight - 1 n - 1
其中,OldWeight为该对检索词的旧的相关度值,n为大于2的自然数。
上述步骤(C)中,所述查询扩展结果为经过排序的查询扩展结果,所述排 序方法包括:按照用户查询时所输入的检索词分别与所述相关检索词的相关度 值的大小进行排序。
上述步骤(C)中,所述查询扩展结果为经过排序的查询扩展结果,所述排 序方法包括:按照所述相关检索词的权重值的大小进行排序,相关检索词的权重 值的计算方法为:w=s×1g(n+1);
其中,s为用户查询时输入的检索词与相关检索词的相关度,n为所述相关 检索词的被检索次数。
上述步骤(C)中,查询扩展的结果可与用户查询时输入的检索词结合构建 新的查询表达式,或直接作为查询表达式,直接提交给用户使用;
或者查询扩展的结果以“或”的关系与用户查询时输入的检索词组合,作为 查询表达式参与本次查询,并将得到的查询结果展示给用户。
上述步骤(A)之前还包括:搜索系统将用户的查询行为记录存储在该搜索 系统的日志文件中,并对该日志文件进行过滤。
上述步骤(B)中,周期可为一天。
为达到上述目的,本发明还提供一种查询扩展装置,包括:
查询行为记录划分单元,用于将用户的查询行为记录按照该用户的身份标识 和访问时间划分为至少一个查询单元,所述查询单元包括至少一个查询事件;
相关度计算单元,用于周期性地计算同一个查询单元、不同的两个查询事件 中的检索词之间的相关度,或者任意两个查询事件中的检索词之间的相关度;
相关检索词库更新单元,用于根据计算出的检索词之间的相关度对相关检索 词库进行更新;
检索单元,用于在相关检索词库中检索与用户查询时所输入的检索词之间的 相关度最大的相关检索词,形成查询扩展结果。
上述的查询扩展装置,还可包括:相关检索词库调节单元,用于根据所述检 索单元形成的查询扩展结果,降低相关检索词库中的在一定的时间间隔内没有 被访问过一对检索词的相关度值。
其中,所述相关检索词库,包括:
检索词存储单元,用于存储用户查询行为记录中的查询时所输入的检索词;
相关度值存储单元,用于存储所述检索词存储单元中检索词之间的相关度 值;
最后访问时间记录单元,用于记录所述相关度值存储单元中具有相关度的检 索词的最后访问时间。
上述相关度值存储单元中检索词序号按照升序或者降序排列。
上述最后访问时间记录单元中,具有相关度的检索词的最后访问时间按照访 问时间先后顺序排列。
本发明通过对用户在搜索系统上所进行的查询和访问行为进行分析和学习, 来更新相关检索词库,并根据相关检索词库中检索词之间语意上的相关度进行 查询扩展,辅助用户进行查询,减轻用户的查询负担,大大提高了用户的查准 率和查全率。

附图说明

图1为本发方法的总体实现流程图;
图2为本发明方法的较佳实施例的流程示意图;
图3为图2所示方法的更进一步优化的实施例流程示意图;
图4为本发明方法的查询流程示意图;
图5为本发明的查询扩展效果界面图;
图6为本发明的装置的结构示意图;
图7为图6所示装置的进一步优化的实施例结构示意图;
图8为本发明相关检索词库的结构示意图。

具体实施方式

为了使本发明的目的、方案以及效果更加清楚,下面结合附图对本发明方案 的实施方式进行详细描述:
本发明的查询扩展方法总体实现流程如图1所示,包括:
(S1)将用户的查询行为记录按照该用户的身份标识和访问时间划分为至少 一个查询单元,所述查询单元包括至少一个查询事件;
(S2)周期性地计算同一个查询单元、不同的两个查询事件中的检索词之间 的相关度,或者任意两个查询事件中的检索词之间的相关度;
(S3)根据计算出的检索词之间的相关度对相关检索词库进行更新;
(S4)在相关检索词库中检索与用户查询时所输入的检索词之间的相关度最 大的相关检索词,形成查询扩展结果
上述方法通过对用户在搜索系统上所进行的查询和访问行为进行分析和学 习,来更新相关检索词库,并根据相关检索词库中检索词之间语意上的相关度 进行查询扩展,辅助用户进行查询,减轻用户的查询负担,大大提高了用户的 查准率和查全率。
下面结合附图2对上述方法的第一种具体实施流程进行描述:
上述步骤(S1)中,用户查询行为记录包括:用户查询时输入的检索词以及 对查询结果点击访问的条目。
步骤(S1)在具体实施过程中可以具体为:
(S11)搜索系统将用户的查询行为记录存储在该搜索系统的文本格式的日 志文件中,首先对文本格式的日志文件进行过滤,仅保留用户查询时所输入的 检索词以及对查询结果点击访问的条目记录,使得需要处理的数据量大大减少, 进而提高系统的处理效率。
(S12)对过滤后的日志文件进行分析和学习,按照该用户的IP地址和访问 时间将该用户的查询行为记录划分为至少一个查询事件和查询单元。
查询单元是用户的信息需要得到满足的过程,将同一个IP用户检索时所持 续使用的时间段,记录为一个查询单元。
搜索系统进一步以查询单元中的每次查询为单位进行划分,得到更小的查询 单位称为查询事件,包括用户输入检索词和点击访问相应的查询结果条目。
因此,查询单元包括至少一个查询事件,可以以同一IP用户的两个相邻查 询事件之间相隔的时间作为判断它们是否属于同一个查询单元的依据,即若同 一IP用户的两个相邻查询事件之间的时间相隔小于一定的时间阈值,则该两个 查询事件属于同一个查询单元。
查询单元中的多个查询事件所进行的查询是用户不断根据先前的查询结果 调整检索词的过程,因此一个查询单元中所进行的多次查询被认为是相关的。
图1所示流程中的步骤(S2)中,检索词之间的相关度可以通过下述两种方 式实现:
(S21A)周期性地计算同一个查询单元、不同的两个查询事件中的检索词之 间的相关度,其方法如下:
Weight ( W in , W jm ) = WeightFactor ( W in , W jm ) × OldWeight ( W in , W jm ) p × ( a - 1 ) + 1 a
其中,且j>i,Win表示第i次查询时的第n 个检索词,Wjm表示第j次查询时的第m个检索词;OldWeight(Win,Wjm)是检索词Win 和Wjm之间的旧的相关度,OldWeight(Win,Wjm)p的取值为(0,1),p为大于零的实数, a为大于2的自然数。最优的,p的值为1。
(S21B)周期性地计算任意两个查询事件中的检索词之间的相关度,其方法 如下:通过计算新查询事件和旧查询事件中用户对查询结果点击访问的条目的 相似度,反推查询事件中检索词之间的相关度,其方法为:
Sim ( S new , S old ) = Common ( S new . CDoc , S old . Cdoc ) Max ( S new . CDoc , S old . Cdoc )
其中,Snew为新查询事件,Sold为旧查询事件,Sim(Snew,Sold)为新查询事件和旧 查询事件中用户对查询结果点击访问的条目的相似度,Snew.CDoc表示在新查询 事件中用户对查询结果点击访问的条目的ID列表;Sold.Cdoc表示在旧查询事件 中用户对查询结果点击访问的条目的ID列表;Common(Snew.CDoc,Sold.Cdoc)是新查 询事件和旧查询事件的查询结果中用户点击的具有相同ID的条目的数量, Max(Snew.CDoc,Sold.Cdoc)为新查询事件与旧查询事件中用户对查询结果点击访问 的条目数量的较大者。
如果Sim(Snew,Sold)的值超过系统预设的阈值,则进一步计算新查询事件与旧查 询事件中检索词之间的相关度,否则不进行下述方法的计算;
进一步计算新查询事件与旧查询事件中检索词之间的相关度的方法为:
Weight ( W newi , W oldj ) = Sim ( S new , S old ) × OldWeight ( W newi , W oldj ) q × ( a - 1 ) + 1 a
其中,Wnewi为新查询事件中输入的第i个检索词,Woldj为旧查询事件中输入 的第j个检索词,Weight(Wnewi,Woldj)为检索词Wnewi与Woldj的相关度, OldWeight(Wnewi,Woldj)为检索词Wnewi与Woldj的旧的相关度,OldWeight(Wnewi,Woldj)q的 取值为(0,1),q为大于零的实数,a为大于2的自然数。最优的,q的值为1。
当然,上述两种计算检索词之间相关度的方法不局限于此,还可以将(S21A) 所述的计算方法和(S21B)所述的计算方法结合起来,以使计算出来的检索词 的相关度更加全面准确,用户进行查询时,能够为用户提供更加全面准确的查 询扩展结果。
步骤(S21A)以及步骤(S21B)中,周期可以选定为一天,一般可选择在搜 索系统服务器比较空闲的凌晨进行。
图1所示流程中的步骤(S3)中,根据计算出的检索词之间的相关度对相关 检索词库进行更新的方法包括:
(S31)如果计算出的一对检索词之间的相关度已经存储在相关检索词库中, 则提高所述已经存储在相关检索词库中的该对检索词之间的相关度值,否则, 在相关检索词库中增加该对检索词。
如图3所示,在步骤(S31)中,更新相关检索词库之后还可以进一步对该 相关检索词库进行调节,对相关检索词库进行调节的方法包括:
(S32)若相关检索词库中的具有相关度的一对检索词在一定的时间间隔内 没有被访问过,则降低该对检索词之间的相关度值。
降低该对检索词之间的相关度值的方法为:
Weight = n × OldWeight - 1 n - 1
其中,OldWeight为该对检索词的旧的相关度值,n为大于2的自然数。
该步骤中,一定的时间间隔在实施过程中可以被定为15天。用户查询行为 记录中包含着各种噪声数据。对于那些长时间不被访问的检索词(即噪声数据), 逐渐降低其相关度,从而减轻噪声数据对系统的影响。
如“玉米”、“凉粉”等检索词在“超级女生”比赛的热潮中共现的频率极高, 但是在热潮过去之后,共现的可能性微乎其微。因此,对于相关检索词库中的 在一定时间内没有被访问的相关检索词,逐渐降低其相关度,直至最后相关度 降为0。从而降低这些短时间内频繁出现,之后很长时间内极少出现的检索词对 系统的影响。
但是对于相关度固定为1的检索词,不进行降低其相关度的计算。
下面结合图4对图1所示流程中的步骤(S4)的具体实施过程进行详细说明, 包括:
(S41)用户查询时,通过搜索引擎输入检索词;
(S42)通过相关检索词库得到查询扩展结果;
(S43)显示查询结果访问条目ID和查询扩展结果;
(S44)判断查询结果是否满意,若满意,完成检索,否则,根据查询扩展 结果重新构造新的查询表达式再次进行查询。
在步骤(S43)中,可以按照一定的顺序排列查询扩展结果,更加方便用户 进行查询,查询扩展结果的排序方法可以为:按照用户查询时所输入的检索词 分别与相关检索词的相关度值的大小进行排序。
为了使查询扩展的结果更加符合用户的需求,查询扩展结果的排序方法还可 以为:按照相关检索词的权重值的大小进行排序,相关检索词的权重值的计算方 法为:w=s×1g(n+1);
其中,s为用户查询时输入的检索词与相关检索词的相关度,n为相关检索 词的被检索次数。
还可以进一步将检索词被检索的热门程度作为查询扩展结果排序的依据。
查询扩展结果的效果界面如图5所示:用户通过搜索引擎输入检索词“电脑”, 则查询扩展的结果为:“大型机”、“服务器”、“工作站”、“计算机”等,而不是 只显示出包含“电脑”二字的查询扩展结果,这在一定程度突破了用户最初输 入的检索词的制约;大型机”、“服务器”、“工作站”、“计算机”这些词被称为 相关检索词,这些词按照其相关度大小或者相关度与被检索次数结合起来进行 排序,能够更好地满足用户对信息的实际需求,提高了用户的查询效率。
现有的查询扩展方法中,查询扩展的结果没有参与到本次的检索中,是直接 将查询扩展的结果展示给用户,由用户选择查询扩展结果中的检索词后再进行 检索。而本发明的查询扩展方法中,查询扩展的结果可与用户查询时输入的检 索词结合构建新的查询表达式,或直接作为查询表达式,直接提交给用户使用;
或者查询扩展的结果以“或”的关系与用户查询时输入的检索词组合,作为 查询表达式参与本次查询,并将得到的查询结果展示给用户。
采用本发明所述的方法,可以方便快捷地通过学习日志文件,进而对相关检 索词库进行自动增补更新,从而根据检索词之间的语意关联关系进行查询扩展, 且不需要大量的人工干预,辅助用户进行查询,减轻用户的查询负担,进而提 高用户对信息的查准率和查全率。
配合上述查询扩展的方法,本发明还提供一种查询扩展装置,其结构如图6 所示,包括:
查询行为记录划分单元61,用于将用户的查询行为记录按照该用户的身份标 识和访问时间划分为至少一个查询单元,所述查询单元包括至少一个查询事件;
相关度计算单元62,用于周期性地计算同一个查询单元、不同的两个查询事 件中的检索词之间的相关度,或者任意两个查询事件中的检索词之间的相关度;
相关检索词库更新单元63,用于根据计算出的检索词之间的相关度对相关检 索词库进行更新;
检索单元64,用于在相关检索词库中检索与用户查询时所输入的检索词之间 的相关度最大的相关检索词,形成查询扩展结果。
更进一步的,如图7所示,本发明的查询扩展装置还包括:相关检索词库调 节单元65,用于根据所述检索单元形成的查询扩展结果,降低相关检索词库中 的在一定的时间间隔内没有被访问过一对检索词的相关度值。
另外,在本发明的查询扩展方法中所使用的相关检索词库的结构如图8所示, 包括:
检索词存储单元81,用于存储用户的查询行为记录中的查询时所输入的检索词;
相关度值存储单元82,用于存储所述检索词存储单元中检索词之间的相关度值;
最后访问时间记录单元83,用于记录所述相关度值存储单元中具有相关度的 检索词的最后访问时间。
其具体结构如下表所示:
  名称   类型   说明   Word   Navchar   检索词   WordID   Int   Key,递增
表1
  名称   类型   说明   相关度ID   Int   Key,递增   WordID 1   Int   表1中的检索词对应的ID   WordID 2   Int   表1中的检索词对应的ID   Weight   Double   检索词之间的相关度,在(0,1]区间内
表2
  名称   类型   说明   相关度ID   Int   表2中的相关度ID   LastAccessTime   DateTime   最后一次被访问的时间
表3
上述表1对应检索词存储单元;表2对应相关度值存储单元;表3对应最后 访问时间记录单元。
其中,在上述表2中,即相关度值存储单元中检索词序号按照升序或者降序 排列,即WordID 1>WordID 2的顺序或者WordID 1<WordID 2的顺序。
在上述表3中,即最后访问时间记录单元中,具有相关度的检索词的最后访 问时间按照访问时间先后顺序排列,这样可以提高数据的访问速度。
现将本发明的技术效果说明如下:
现有的主流搜索系统基本都采用了全文检索技术,缺乏搜索经验的用户在选 择检索词来构建检索表达式时,经常会遇到困难,而通过搜索系统提供查询扩 展,可以提高检索效果。本发明所述的方法,通过收集用户查询行为记录,对 其进行分析学习以发现检索词之间的关联关系,自动增补相关检索词库,从而 根据检索词之间的语意关联关系进行查询扩展,且不需要大量的人工干预;有 效辅助用户进行准确高效的查询;且采用本发明的方法,不需要投入大量的人 力对相关检索词库进行整理,适用于大数据量、大访问量的搜索系统,大大提 高了用户的查询效率,即实现了高查准率和高查全率。
上述的较佳实施例仅用于对本发明的技术方案进行具体说明,熟悉此技术领 域的技术人员应当可在不脱离本发明的精神与原则下对本发明进行等效目的的 变更与修改,该等变更与修改,均应涵盖于本发明所界定的保护范围之中。