判断一组查询关键字或词在网页中位置相关性的方法

文档序号:6654844阅读:274来源:国知局
专利名称:判断一组查询关键字或词在网页中位置相关性的方法
技术领域
本发明涉及信息检索技术领域,特别是中英文Web搜索引擎系统的信息检索技术。
为了提高搜索引擎的服务质量,通常搜索引擎系统在输出结果时都要考虑查询项所包含的关键字(词)在被检索网页中的位置相关性。例如,如果判断出这些关键字(词)在网页中是连在一起的,即网页中包含与查询项关键字(词)排列顺序相同的信息,则在查询结果输出时把这样的网页放在前面;有的搜索引擎系统则更干脆地只输出完全匹配用户查询项的网页。为了判断这些关键字(词)在网页中的位置是否连在一起,通常有两种办法1、完全字符串匹配;2、网页分析时记录下各个关键字(词)在网页中出现的位置,然后根据位置信息判断位置相关性。
第一种方法简单,但需要保存整个网页内容。这不但会浪费太多的存储空间,且效率太低,由于WWW上存放了超过10亿个网页,若对这近10亿个网页都进行查询项字符串匹配,则查询速度会慢得让用户无法忍受。而目前公开了查询项位置相关性分析技术的搜索引擎系统是美国的Google系统(参见S.Brin和L.Page所发表的论文The Anatomy of a Large-Scale Hypertextual Web Search Engine,In proceedings of 7th World Wide Web Conference,1998)。Google维护了世界上最大的Web信息数据库,目前也是世界上最知名的搜索引擎之一。Google为了判断查询项中各个关键字(词)之间的位置相关性采用了第二种方法。
Google系统由网页搜集器、索引器以及检索器3部分组成。搜集器负责搜集网页并对之进行分析处理。在分析一个网页时,需要记录有哪些关键字(词)在文章中出现,这些字(词)在网页中出现了多少次,以及每次出现时该字(词)在文章中的位置。这样就得到了如图1所示的前向索引表。索引器根据前向索引表又可以生成倒排索引表,如图2所示。当用户提交一个查询项时,Google的检索器首先把该查询项分解为若干个关键字或词(除非该查询项本身就是一个关键词),并且根据倒排索引表找出包含了所有这些关键字或词的网页;然后计算这些网页的权值,并根据这些权值进行排序输出。在计算权值时,也要根据倒排索引表中记录的各个关键字(词)在网页中的位置来计算其位置相关性,相关性越高,附加权值也就越高,相应的网页排在前面的可能性也就越大。
而Google所采用的第二种方法,也存在空间复杂度和时间复杂度太高的缺点。首先,在该方法下,需要记录每个关键字在网页中出现的每个位置,空间复杂度很高;其次,检索器在依据这些关键字在网页中的位置判断查询项中各个关键字(词)的位置是否挨在一起时,需要进行大量的比较操作,时间复杂度也很高,会影响系统性能。事实上,Google为了降低空间复杂度和时间复杂度,它对记录的位置信息进行了限制,即它只考虑了每篇网页的前4K个关键字(词)的位置信息。即使是这样处理后,它的空间复杂度和时间复杂度仍然很高,且带来另外的缺点,即无法判断网页中第4K个关键字(词)之后出现的关键字(词)的位置相关性,这将影响检索质量。我们所要解决的问题就是在对判断位置相关性的准确率影响不大的基础上,存储尽可能少的信息以降低空间复杂度,同时这些信息又能够有利于在极短的时间内对位置相关性做出判断,即具有较低的时间复杂度。
为了避免Google系统为判断位置相关性所导致的较大的时间复杂度和空间复杂度,我们设计了另外一种判断一组查询关键字(词)在网页中位置相关性的方法。
本发明的内容与技术方案如下在搜索引擎系统分析网页时,首先要提取关键词和关键字。在我们的方法中,不再记录这些高频字(词)在网页中每次出现的位置,代替地,我们为每个关键字(词)只确定出其前面一个相邻字(或词)和后面一个相邻字(或词)。当用户提交查询请求时,检索器可以根据搜集网页时记录的位置信息判断在用户查询词中相邻的字(词)在网页中是否也相邻。如果相邻,则将网页的权值适当提高。这样在查询结果中,保持用户查询词中相邻关系的网页将会排在前面。
确定一个网页中某关键字(词)的前向相邻字(词)和后向相邻字(词)的主要依据是频率。虽然位于一个关键字或词之前且与该关键字(词)相邻的关键字词很多,但通常有一个与该关键字(词)相邻次数最多,我们把它作为关键字(词)的前向相邻字(词)。类似地,我们可以计算出一个关键字(词)的后向相邻字(词)。
具体地确定某关键字(词)的前向相邻字(词)和后向相邻字(词)的步骤是搜集器首先从头至尾地扫描网页,对出现的句子做词语切分处理,得到一组在网页中出现的关键字/词,对每一个进行编号;记录每个字/词在网页中首次出现的次序,并且记录相邻的字/词之间的位置相邻信息,即前向相邻字(词)以及后向相邻字(词)的编号;搜集器的扫描过程结束时,对每个关键字/词,根据记录下的其前/后向相邻字/词以及它们各自出现了多少次,以出现次数最多的前/后向相邻字/词作为其最终的前/后向相邻字/词。搜集器以最终的前/后向相邻字/词的信息来构造带位置相关性信息的前向索引表(图3)。索引器根据带位置相关性信息的前向索引表生成带位置相关性信息的倒排索引表(图4)。在今后检索时,检索器就通过索引器生成的带位置相关性信息的倒排索引表中某关键字(词)的前/后向相邻字/词信息判断所查询关键字(词)在网页中的位置相关性。
说明书


图1、Google搜索引擎系统的前向索引表图2、Google搜索引擎系统的倒排索引表在图1和图2中docid是网页标识符;wordid是关键字(词)的标识符;hit是wordid对应的关键字(词)在docid对应的网页中的位置(占2个字节);nbits是wordid对应的关键字(词)在docid对应的网页中出现的次数(即用来表明有多少个hit);ndocs是包含了wordid对应的关键字(词)的网页数。
图3、带位置相关性的前向索引表图4、带位置相关性的倒排索引表在图3和图4中,docid代表相应的网页编号,wordid代表某个关键字(词)在词典中的编号,my_no表示一个关键字(词)(其在词典中的编号为wordid)在网页中的编号;prev_no表示该关键字(词)前向相邻字(词)在网页中的编号,next_no表示该关键字(词)后向相邻字(词)在网页中的编号。
图5应用本方法的通用Web搜索引擎系统结构中第(1)个模块表示网页的搜集器,第(2)个模块表示原始数据库,第(3)个模块表示索引器,第(4)个模块表示索引数据库,第(5)个模块表示检索器,第(6)个模块表示用户接口。
图6、带位置相关性的前向索引表示例下面结合实施例进行进一步地说明。
假设下面一段文字是某个网页的内容。
“天网”搜索引擎新课题组成员领域负责人李晓明项目负责人李晓明王建勇项目开发人员单松巍谢正茂赵江华闫宏飞陈 华罗 昶郭 琳龚笔宏搜集器(图5中的第1个模块)的切词处理后得到一个关键字(词)序列{天网、搜索引擎、新、课题、组、成员、领域、负责、人、李、晓、明、项目、负责、人、李、晓、明、王、建、勇、项目、开发、人、员、单、松、巍、谢、正、茂、赵、江、华、闫、宏、飞、陈、华、罗、昶、郭、琳、龚、笔、宏},其中不同的关键字(词)及其编号序列为{天网(1)、搜索引擎(2)、新(3)、课题(4)、组(5)、成员(6)、领域(7)、负责(8)、人(9)、李(10)、晓(11)、明(12)、项目(13)、王(14)、建(15)、勇(16)、开发(17)、员(18)、单(19)、松(20)、巍(21)、谢(22)、正(23)、茂(24)、赵(25)、江(26)、华(27)、闫(28)、宏(29)、飞(30)、陈(31)、罗(32)、昶(33)、郭(34)、琳(35)、龚(36)、笔(37)}。进而搜集器可以依据上述信息构造出该网页的前向索引表(图6),并将之存于图5中的第2个模块,即原始数据库中。有了如图6所示的前向索引表后,索引器(图5的第3个模块)可以很简单地生成倒排索引表,并存放于图5的第4模块,即索引数据库中。当用户提交一个查询请求后,用户接口(图5的第6个模块)截获该请求,并转发给检索器(图5中的第5模块),由它根据位置相关性信息判断该查询项所分解的若干个关键字(词)在网页中的位置是否相邻,继而根据位置相关程度来影响该网页在输出结果中的排序。
下面举几个例子来说明检索器是如何判断位置相关性的。若用户查“陈华”,由于“陈”字的后向相邻字的编号为27可以判断“陈“与“华”是相邻的(“华”的编号为27);当查“龚笔宏”时,可知“笔”字的前向相邻字编号为36(即“龚”的编号),后向相邻字的编号为29(即“宏”的编号),可以推断出“龚”“笔”“宏”3个字是完全位置相关的。
本发明的优点与积极效果在于同现有的判断位置相关性的方法相比,我们所提出的判断一组查询关键字或词在网页中位置相关性的方法具有如下优点与积极效果1.有较低的空间复杂度,能够节省存储空间。在该方法下,针对某个网页的每个被提取的关键字(词),只需记录3个与位置相关性有关的信息。而在Google的方法中,它需要记录一个关键字(词)在网页中所有出现的位置。通常来讲被选出的关键字(词)在网页中可能出现的频率很高,有的甚至出现上百次或上千次,而为记录一个关键字(词)的每一次出现的位置需要大于13bits的存储(Google用了16bits),可见Google的方法所需的空间开销要远大于本方法。
2.具有较低的时间复杂度,能够提高查询响应速度。在本方法中,可以根据网页中出现的每个关键字(词)的前向相邻字(词)和后向相邻字(词)非常快捷地判断两个查询关键字(词)是否相邻。而在Google的方法下,需要取出相应的两个查询关键字(词)在网页中的所有位置信息,再根据这些位置信息判断位置相关性,需要大量的比较操作,会影响查询速度。
3.易于处理少数高频字(词)所引起的大索引问题。不管是中文还是英文网页中都包含一些高频字(或词),如“的”、“中”等,这些高频字(词)在网页中出现的几率非常大。据统计,每300万个网页中有多于200万个网页包含了“的”字。换句话讲,在图2中“的”字对应的索引项的数目大于200万(即其ndocs>200万),一旦用户查询一个这样的关键字(词),所消耗的时间将会感到无法忍受。一种解决办法是把这些少量的关键字(词)配置为忽略字(词)这样做有其合理的一方面,因为用户很少单独查询这类高频字(词)。但简单地这样处理,则会引起新的问题。比如,如果用户查“金大中”,由于“中”字被忽略,搜索引擎会把所有出现“金大”的网页返回,而且会造成其它的人名如“金大洋”排在输出结果的前面,使查询的准确度大大降低。然而我们可以利用位置相关性很好地解决这一问题即虽然我们忽略了“中”字,但我们可以根据“大”字的后向相邻字(词)Qafter来判断出“大”字后面是“中”字,进而提高网页权值,使该网页位置提前,提高查询准确度。而对于Google的方法若把“中”字等高频字配置为忽略字,则由于没有“中”字的位置信息,将无法判断“金大中”的完全位置相关性,其查询准确度将会降低。
4.准确率较高。本方法是依据统计规律分析得出的,能够把绝大多数的查询字(词)的位置相关性表示出来。而Google为了节省空间,只记录了一个网页中前4096个关键字(词)的位置信息,因而当用户查询的关键字(词)落在网页的前4096个关键字(词)之后时,将无法准确的判断位置相关性。
为了测试我们的方法的效果,我们把部分验证报告(取自2000年12月18日北京大学“天网”搜索引擎的测试结果)列于表1中。可以看出,查“金大中”时,共检索出106607篇文章,其中前1777篇文章为位置完全相关的文章;查“莫斯科郊外的晚上”,共查出66篇文章,其中前57篇为位置完全相关的文章;查“曙光1000”,共返回248篇文章,其中前32篇为位置完全相关的文章;而查“五道口”,共查出4075篇文章,其中只有前758篇是位置完全相关的文章。我们这里举的查询项例子分别为人名、歌曲名、产品名以及地名,用户总是希望这些查询项在网页中是连在一起出现的,否则将毫无意义。利用我们的方法能够把位置完全相关的文章找出来,并放于输出结果的最前面,提高了查询结果输出的合理性。
表1、位置相关性的部分测试结果

权利要求
1.一种判断一组查询关键字或词在网页中位置相关性的方法,应用该方法的相应的搜索引擎系统主要包括网页搜集器、索引器以及检索器3个部分,其特征在于为每个关键字或关键词计算出其前面一个相邻字/词和后面一个相邻字/词;当用户提交查询请求时,检索器判断在用户查询关键字/词中相邻的字/词在网页中是否也相邻;如果完全相邻,则将网页的权值适当提高,根据权值输出查询结果。
2.根据权利要求1所述的判断一组查询关键字或词在网页中位置相关性的方法,其特征在于依据频率确定关键字或关键词的前向相邻字/词和后向相邻字/词。
3.根据权利要求1或2所述的判断一组查询关键字或词在网页中位置相关性的方法,其特征在于搜集器首先从头至尾地扫描网页,对出现的句子做词语切分处理,得到一组在网页中出现的关键字/词,记录每个字/词在网页中首次出现的次序,并且记录相邻的字/词之间的位置相邻信息。
4.根据权利要求3所述的判断一组查询关键字或词在网页中位置相关性的方法,其特征在于搜集器的扫描过程结束时,对每个关键字/词,根据记录下的其前/后向相邻字/词以及它们各自出现了多少次,以出现次数最多的前/后向相邻字/词作为其最终的前/后向相邻字/词。
5.根据权利要求4所述的判断一组查询关键字或词在网页中位置相关性的方法,其特征在于搜集器以最终的前/后向相邻字/词的信息来构造带位置相关性信息的前向索引表。
6.根据权利要求5所述的判断一组查询关键字或词在网页中位置相关性的方法,其特征在于索引器根据带位置相关性信息的前向索引表生成带位置相关性信息的倒排索引表。
7.根据权利要求6所述的判断一组查询关键字或词在网页中位置相关性的方法,其特征在于当用户提交一个查询项时,检索器首先把该查询项分解为若干个关键字或词,然后根据索引器生成的带位置相关性信息的倒排索引表找出包含了所有这些关键字/词的网页,计算这些网页的权值;并且根据带位置相关性信息的倒排索引表中的位置相关性信息判断这些查询字/词在这些网页中是否位置完全相邻,若相邻则把相应网页的权值提高,最后把查询结果排序输出。
全文摘要
一种判断一组查询关键字或词在网页中位置相关性的方法,其特征在于:搜索引擎系统为每个关键字或词计算出其在网页中的前向相邻字/词和后向相邻字/词;依据上述信息判断在用户查询项中相邻的字/词是否在网页中也相邻;如果完全相邻,则将网页的权值适当提高,根据权值输出查询结果。该方法具有较低的时间、空间复杂度,易于处理少数高频字/词所引起的大索引问题,并具有较高的查询准确率。
文档编号G06F17/30GK1306258SQ0110913
公开日2001年8月1日 申请日期2001年3月9日 优先权日2001年3月9日
发明者王建勇, 李晓明, 谢正茂, 单松巍, 赵江华 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1