使用词汇关联增强搜索引擎查询性能的方法和系统的制作方法

文档序号:6558090阅读:507来源:国知局
专利名称:使用词汇关联增强搜索引擎查询性能的方法和系统的制作方法
技术领域
本发明涉及基于计算机的电子信息检索(IR)。本发明尤其涉及具有索引器模块的电子信息检索(IR)方法和系统,该索引器模块具有包括潜在搜索项和相关登记表(posting list)的反向索引(inverted index)。
背景技术
现有技术的IR系统的基本结构和功能在图1中示出。该系统除对于本发明而言不太相关的其他单元之外还包含搜索引擎,该搜索引擎包括web爬行器(crawler)模块10、解析器或标记识别器(tokenizer)模块12、索引器模块14、索引存储器16,该索引存储器根据逻辑模式来存储包括上述搜索项的数据;该系统进一步包括分级模块18、搜索模块20,最后包含发出查询和接收来自IR系统的结果的客户机。
具体来说,独立于用户查询地爬行(crawl)搜索文档库(因特网等),并且按照例如前述“反向索引”的数据结构来索引所爬行的文档,该数据结构在每行中包括索引条目,该索引条目由潜在搜索项,和含有文档标识信息的相关登记表组成,该信息表示在哪个文档中找到搜索项并且可选地包括有关在相应文档中所述搜索项出现的位置的进一步信息。
图2描绘了在前述反向索引数据结构内的两个单条目上的“剖面”视图。左列定义了所谓词汇表,并且包括可能的搜索项22,例如“IBM”或“服务器(SERVER)”。右列被称为登记表24。一个搜索项的登记表条目26包括a)文档标识信息,例如编号或URL,以及可选地类似于b)相对相应文档的开始处的偏移的进一步信息。
例如对于“IBM”,登记表中的第一条目涉及文档ID 0003,其第52页第13行。图2中描绘的其它参考和登记表中的条目的解释与上述类似。
对于本发明的具体侧重点,如上所述的现有技术的信息检索(IR)系统的一般问题是它们的数据结构,例如词典或“词汇表”条目,即图2中的左列的大小。当其数据项太大时,系统存在数据高速缓存命中率低,和系统存储器与CPU之间I/O业务量高的缺点,从而形成众所周知的性能瓶颈。在最坏情况下,形成更长更窄瓶颈的一部分的第三阶段从而是盘输入和输出(I/O),因为数据项的计数和大小可能超过可用的硬件侧的存储器。IR系统和搜索引擎用来计算数目巨大的特定数据项,如词典条目、登记表条目以及与之有关的统计信息。因此,伴随着在如图1中描绘的查询执行期间对这一瓶颈越来越多的使用,其性能无法忍受地减缓。
因此,基本上,将资源消耗从存储器和IO子系统转移到CPU以避免密集瓶颈使用的每种方案都是受欢迎的,因为CPU速度正以比存储器或I/O子系统带宽更高的速率增加。一种这样的现有技术方案包括通过在数据项写入到盘之前压缩数据项来减少盘I/O的一般思路,参见I.H.Written,A.Moffat,T.C.BellManaging GigabytesCompressing and Indexing Documents and Images,Second Edition,Morgan Kaufmann,Inc.1999。
但是这一方案受困于数据必须读回到存储器以便解压缩的缺点。这就要求附加的存储器和CPU周期。这至少部分抵消了盘I/O的节省。因此,这对于上述瓶颈问题实际上并不是令人满意的解决方案。

发明内容
因此本发明的目的是缓解现有技术的上述不足。
本发明的这一目的是通过在所附独立权利要求中记载的特征来实现的。本发明的进一步有利方案和实施例在各从属权利要求中阐述。这里引用了所附权利要求。
术语信息资源的“搜索库”旨在包含例如实际的纯文本文档,但是也包括现存的查询日志以及文档的“锚标(anchor)存储”,该存储包括针对该文档的链接,因为它们常常包括简短的内容信息。
本发明的如下特征步骤在建立索引时执行a)生成扩展反向索引结构,该扩展反向索引结构包括aa)词汇关联(lexical affinity)(LA)对,其中每对涉及相应两个搜索项之间的特定词汇关联,以及bb)针对每个所述LA对的相应登记表,以及b)通过使用所述扩展索引对搜索的文档分级。
词汇关联(LA)表示在一个文档中一起出现的词的相关性,并且通过查看发现彼此具有紧邻关系,例如在3词窗口、4词或5词直至10词窗口中的若干词来识别;为了简单,这里将讨论分别限制为词或搜索项的对。窗口大小基本上可加以自由选择。
在现有技术的噪声过滤之后识别LA,优选地通过对最好具有实质意义的文本项在相应语义区域中的出现进行计数。通过将搜索项从单词出现扩展到多词,优选为两个词的出现,来扩展能够识别内容相关单词搜索项的基本现有技术方案。例如,“IBM”是单个搜索项,而“服务器”是另一单个搜索项。现有技术的方法规定对任一项在文本中的出现进行计数。
在本发明的方法的进一步步骤中,基于对于这一对在文档中的出现次数的计数来定义相关度。如果很相关(能够单独设置),并且正如现有技术的方法所评价的,将单个搜索项的松散耦合对(LA对)直接作为分立条目包含于词汇表中,参见图2(现有技术)的或者图4(本发明)的左列。
对于上述瓶颈问题,LA对的使用显著地减少了瓶颈的使用,因为整个LA对在查询期间一般常驻于存储器中,并且对于从硬盘检索LA对的登记表而言,仅要求少量的盘I/O处理和较少的CPU使用。后面会给出具体实例。
在本发明的方法中,进一步分析有意义搜索项的文本环境,优选为在前向和/或后向方向上滑动扫描窗口以经过文档。这一窗口的大小能够改变。例如,五个相继的词能够定义一个文本扫描窗口。在这一文档扫描过程期间,标识有意义词对,所述词对反复地出现在窄的(例如仅五个词)文本距离内,由此形成某种“词汇关联”,因为它们描述了语义上下文。
这可以用来改进查询结果的分级,使得更松散耦合的搜索项出现由于较高的等级分而包含于结果列表中。这与现有技术的方法形成对比,后者仅提供定义文字文本串“XX YY”的选项,或者分别搜索“XX”,接着搜索“YY”的选项。然而当出现类似于“XX ZZ YY”的文本串时,XX和YY被一些字符或一些词分离,在现有技术中就找不到命中。ZZ能够在从单个字符到若干词,例如3个词或5个词甚或是10个词,或者其间的任何数目的整个“文本距离”范围上加以定义。也能够使用更大距离,但是距离越大,则在建立索引时必须花费越多的计算资源。
对于词汇关联(LA)对的说明性实例是-IBM服务器-因为有IBM提供的大量服务器,例如邮件服务器,文件服务器、备份服务器等等。与在许多文本中一样,常常以描述性的形容词添加进一步的属性,例如“高性能(high-performance)”或“高端(high-end)”,或者插入一些产品类型,比如“IBM zSeries服务器”等等,通过本发明的方法找到所有这些出现。
另一实例是-狂欢节RIO-由此找到的典型出现可以表现为“在Rio的狂欢节(carnival inRio)”或“在Rio或其附近的狂欢节聚会(carnival parties in and aroundRio)”、“在美丽的Rio的狂欢节上层聚会(carnival high-life in beautifulRio)”等等。
正如本领域的技术人员可以理解的,这在搜索期间是主要的性能和质量增益,因为这样的LA对能够相对高地进行分级。此外,这些本发明的步骤增强了分级过程,因此提供了更高质量的分级结果。
本发明的优选可选特征涉及对这些出现进行计数的处理。具体来说,现有技术的“概率计数”(PC)方法被用于在建立索引期间对前述词汇关联,即图4中的条目42进行计数。这一特征在这一具体使用中允许在很小的存储器区域内进行大数目计算,这些大数目近似于实际的计数结果。这增加了高速缓存命中的概率,并且避免了仅为增加计数器值而需要的存储器访问,这显著地加速了建立索引过程,因为计数,即某项在给定文档中的出现频度是建立索引期间的中心问题。
在第二个一般方面,本发明描述了通过运用概率计算来近似计算统计数据,以减少针对存储器和盘I/O带宽的资源需求的方法。本发明的直接应用是对于项相关性(词汇关联)进行计数以用于分级。


本发明是借助例子来说明的,并且不受限于附图的形式,在附图中图1是图示了现有技术的信息检索系统的示意图;图2是在现有技术的IR系统的搜索过程期间使用的现有技术的反向索引数据结构部分的示意图;图3是图示了由本发明改进的系统的示意图;图4是由根据本发明具体实施例的扩展反向索引改进的根据图2的示意图;图5A是示意的控制流图,该示了根据这一具体实施例在建立索引期间执行的步骤的控制流;图5B示出了在查询期间的控制流;图6以表格形式示出了通过以用于递增计数器的相应概率值进行的概率计数而获得的计数器值;图7是表格图示,其中将位于一些具体值处并且覆盖很大范围的左列中的原始计数N与通过应用概率计数而获得的计数器C的相应新值做比较;以及图8是“原始计数比对近似计数”的图形表示。
具体实施例方式
参照附图,并且现在具体参照图3,其中示出了矩形30,该矩形限定了用于实施本发明方法的系统位置。索引器31使用这里要求保护的方法。以后在查询过程中也使用由索引器31获得的扩展反向索引32。
在图4中,由本发明提供的新条目标注有标号32。其内容是“IBM服务器”。相关的示范登记表包括第一登记提及文档ID 5、偏移117和进一步的第二文档ID 17、偏移256。与“IBM”的条目和“服务器”的条目进行的比较表明它们的登记表长得多。这是由于每个相应单项有更多次出现。
现在进一步参照图5A,本发明的实施例在建立索引期间的控制流包括针对每个搜索的文档运行的循环。在这一循环中,存在第一步骤310,其中以5词窗口扫描当前文档,从而产生词统计,包括多个词,即具有相应计分的搜索项,该计分表示搜索项在扫描的文档内出现的绝对次数;以及每次出现的位置的相应列表。
例如在仅在前向方向上包括第一词和后续四个词的扫描窗口中,在扫描过程中对“IBM”“服务器”的2元组的出现进行计数。
下面描绘了包括“IBM”作为潜在搜索项的假设样本出现A)“IBM服务器解决方案得到最优评级(IBM SERVER solutionsare best rated)…”B)“操作IBM邮件服务器(IBM mail SERVER wasoperated)…”C)“IBM的服务器销售统计(IBM’s sales statistics onSERVERs)…”等。
所有这些是在扫描步骤310中发现的。对于词汇关联“IBM…服务器”的每个新的出现使计分递增,并且在登记表中针对每个出现存储其在文档中的位置。
针对该计分,对于每个出现仅计数一次,正如在“移动的”示范性5词扫描窗口中那样,存在更多的出现,这些出现包含在样本文字A)之前的文本区域,例如纯文本段的一部分是“在过去十年,IBM服务器解决方案得到最优评级。(Over a timeperiod of the last ten years IBM SERVER solutions are best rated.)”那么,找到以下四个出现并且将它们计数为单次命中1过去十年IBM服务器(last ten years IBM SERVER)2十年IBM服务器解决方案得到(ten years IBM SERVERsolutions are)3年IBM服务器解决方案(years IBM SERVER solutions)4IBM服务器解决方案得到最优(IBM SERVER solutions arebest)接着,在步骤320中,根据现有技术的过滤器机制来过滤所谓的噪声,以避免无意义的词,比如“is”、“and”、“are”、“have”等,形成本发明的扩展索引的一部分。
在进一步的步骤330中,生成词汇关联(LA)。最好以如下方式执行此操作在第一步骤332中,单项最高得分者被相互组合。例如,一个文档具有数目为10的内容有意义的单个搜索项。于是,最高得分项依次地与来自最高得分者列表的每个相应后续单项组合。在第二步骤334中,比较两个所比较的单项中的每个单项的文档位置。例如,如果发现相同的文档ID和近似相同的偏移,则在该文档的相同行中能够找到所比较的项对,并且能够称谓紧密关系。因此,该对的出现计数器增加1。持续该方法,直至搜索项对的所有位置已被处理。接着,存储全部的成对出现(LA出现)的次数,以及该文档中该对的每个共同位置。对于来自单项最高得分者列表的下一对,继续这一过程。
假定这样的情况,其中具有最高计分的单项如下IBM,环境,服务器,应用,集成(IBM,ENVIRONMENT,SERVER,APPLICATION,INTEGRATED)在步骤336结束时,当已经确定根据本发明的词汇关联时,创建可能表现为如下的最高得分者词汇列表IBM环境190出现,位置4。12;6,24;…(IBM ENVIRONMENT190 OCCURRENCES,LOCATIONS4,12;6,24;…)IBM服务器180出现,位置……(IBM SERVER 180OCCURRENCES,LOCATIONS……)IBM集成160出现,位置……(IBM INTEGRATED 160OCCURRENCES,LOCATIONS……)IBM集成120出现,位置……(IBM INTEGRATED 120OCCURRENCES,LOCATIONS……)在如上所述处理数目为10的最高计分的单项的情况下,由步骤332、334和336构成的循环必须运行(10*9)2=45次(一般是N*(N-1)2)。
必须承认,这一附加工作意味着在建立索引时需要一些附加计算。接着,最后在步骤340中,将等级最高的词汇关联插入到反向索引结构中,正如以示范形式利用图4中的条目42所描绘的那样。
由本发明方法得到的优点如图5B所示在查询时得到显现。图5B在它的左部分示出了现有技术的过程,该过程包含CPU与存储器之间以及存储器与硬盘之间的、在背景技术部分中提及的瓶颈的多次使用。在图5B的右部分呈现了本发明的方法初次看上去本发明的方法具有较少步骤,并且与现有技术相比使用这一瓶颈的次数要少得多。
根据本发明的实施例,仅执行步骤350、355和370。具体来说,在步骤350中,信息检索系统接收包括如上所述的词汇关联(LA),例如“IBM…服务器(IBM…SERVER)”的查询。实施本发明方法的信息系统分解LA项,并且在步骤355中在由本发明提供的扩展反向索引中直接查找所查询的LA。在找到LA的情况下,接着在步骤370中向用户显示经分级的登记表。步骤355意味着用以检索该登记表的盘I/O访问的次数较少。
与之相比较,图5B的左部分示出了现有技术中进行的步骤在步骤450中,接收包括两个不同的单项XX和YY以及“与”(AND)运算符的查询,该运算符表示只有包括两项XX和YY二者的文档才应当是结果候选。XX可以是项“IBM”,而YY可以是项“服务器(SERVER)”。
接着在下一步骤455中,在图2中所示的反向索引结构中查找项XX。如果发现所假定的用来使得能够将本发明的方法与现有技术的方法做比较的内容,将从盘读取用于XX的登记表。正如图4中的比较所示,与包括XX和YY的LA的登记表相比较,用于XX的登记表在一般情况下将是很长的。因此在步骤455中,一般将执行次数多得多的盘I/O访问。
接着在步骤460中,针对项目YY重复相同处理。仍然可预见到相对高次数的盘I/O访问。
接着在进一步的步骤465中,将执行“与”(AND)运算,以便找出所搜索的文档中包括搜索项XX和搜索项YY二者的子集。当将登记表完全地从盘加载到存储器中时,这一步骤接着仅需要“更多的CPU处理”。与根据本发明所需要的少量处理相比较,这一处理也是负载很大的。在登记表过大以致不能完全存储于存储器中的罕见情况下,需要进一步的盘I/O访问以便执行逻辑“与”(AND)运算。
最后在步骤470中,也向用户显示经分级的文档列表。
接着,下面将进一步参照图6、7和8来进一步说明概率计数(PC)的有利使用。
作为对于概率计数运用的示范性使用,这里公开了词汇关联(LA)的分级的计算。正如前面已经定义的,LA是在指定距离(例如五个词)内一起出现的词的两项相关。LA分级能够通过若干统计方法来计算,这些方法需要项相关的数目以及组成LA的每项的数目。
由于在巨型文本全集中项相关的数目可能是很庞大的,所以在这样的情况下识别出数目庞大的LA数据项,例如对于100,000以上的文档则多至数百万。如此大数量的项能够使用过多数量的存储器。因此,强制使用能够高效地存储这种大数目的用于计数的数据类型。通常这一数据类型是32(64)位无符号整数型。该计数通过例如每当LA出现在文本全集内时就使数值增一而以它的最简单方式来进行。
概率计数将长度小得多的数据类型用于计数根据本发明,概率计数能够用作为一种仅使用log2log2N位而不是log2N位来对大数目1…N进行计数的方式。这一事实允许仅使用5位来对32位整数值进行计数。下面用C编程语言描述了概率计数的示范性实现<pre listing-type="program-listing">void approxCnt(uint32_t*input){  if((*input)&lt;=0){  (*input)=1;  }else{   double x=((double)::rand()/(double)(RAND_MAX));   double x2=1.0-pow(2.0,(double)-(*input));   if(x&gt;=x2){   (*input)++;   }//end if  }//end else  }//end approximateCount</pre>各伪代码算法步骤如下A)以初始为1的计数器C开始B)使用伪随机数生成器来生成介于0…1之间的浮点数xC)将生成的数与1.0-(2-C)的结果(=x2)做比较如果x2小于或等于x,则将C增1,否则保持计数器的原值。
正如图6中可以看到的,概率计数算法以仅取决于其输入值中存储的数的概率来递增它的值。该数变得越高,该值将被递增的概率将越低。图6中的表格示出了这一递增概率。
当在信息检索系统中使用概率计数方法时应当注意如下方面使用概率计数的首要问题是这些计数器值如何表示。在图8中回答了这一问题。曲线86示出了概率计数器,当原始计数器增加时该曲线只是很慢地增加。曲线84代表原始计数,而曲线82是能够用来检索实数的概率计数器值的取反(inverse)。线82与84之差的图形表示清楚地示出了引入到计算中的误差在真值周围波动,但是保持为很有限。除了原始计数器84和概率计数器之外,图8示出了用以检索实际计数器的近似的概率计数器值82的取反(inversion)以及实际计数器的取反。
本发明对概率计数的使用主要具有两个优点首先它允许以较小的数据结构来操作。较小数据结构的使用导致更高的高速缓存命中率。当使用概率计数对LA进行计数时,用于计数的数据域的大小能够减少到一个字节,以计数多达2256项。
第二优点是减少了递增该计数的概率。这一优点的结果是也将减少为计数操作而在每次存储器I/O检索LA数据项的需要。如果有必要将数据项写回到存储器,则能够认识到这一盘I/O节省的甚至更大的影响,因为每当概率计数判定不需要递增时,数据项就保持“不动”。此概率随着值的每次先前递增而增加。上面公开的算法对于处理计数器将具有对数复杂度,而实际计数可以假定为通常是以线性时间进行的。
本发明能够以硬件、软件或者硬件和软件的组合来实现。根据本发明的信息检索工具能够在一个计算机系统上以集中式方式而实现,或者在不同单元跨越若干互连计算机系统来展开的分布式方式而实现。适用于实现这里所述方法的任一种计算机系统或其他设备将是适宜的。硬件和软件的组合可以是具有计算机程序的通用计算机系统,该计算机程序在加载和执行时控制该计算机系统,使得它实现这里所述的方法。
本发明也能够嵌入计算机程序产品中,该产品包括了能够实施这里所述方法的所有特征,并且在加载于计算机系统中时能够实现这些方法。
本文中的计算机程序装置或计算机程序意味着以任何语言、代码或记法对指令集的任何表述,该指令集旨在使具有信息处理能力的系统直接地或者在如下步骤中的任一步骤或两个步骤之后执行特定功能a)转换为另一语言、代码或记法;b)以不同的材料形式加以再现。
权利要求
1.一种电子信息检索(IR)方法,其中爬行预定信息源库,并且通过包括索引的数据结构来索引其文档,该索引由潜在搜索项和相关登记表组成,该登记表包含有关含有该搜索项的文档的文档标识信息,以及有关相应文档内所述搜索项出现的位置的进一步信息,该方法的特征在于在建立索引时执行的如下步骤a)生成(310,330,340)扩展反向索引(32)结构,该扩展反向索引结构包括aa)词汇关联(42)(LA),其中每个词汇关联(42)涉及相应两个搜索项(22),以及bb)针对每个所述词汇关联(42)的相应登记表(24),b)通过使用所述扩展索引(32)对搜索的文档分级(350,355,370)。
2.根据权利要求1的方法,其中查询日志被用作信息源。
3.根据权利要求1的方法,其中锚标存储被用作信息源。
4.根据权利要求1的方法,其中概率计数方法被用于在所述建立索引时对所述文档库中词汇关联(42)的出现进行计数。
5.一种电子信息检索(IR)方法,其中爬行预定文档库(因特网等等),并且通过包括索引的数据结构来索引其文档,该索引由潜在搜索项(22)和相关登记表(24)组成,该登记表(24)包含文档标识信息,以及有关相应文档中所述搜索项(22)出现的位置的进一步信息,其特征在于将概率计数(PC)方法用于建立索引时对文档中词汇关联(42)(LA)的出现进行计数。
6.一种用于在信息检索系统中计算统计数据的方法,其特征在于将概率计数(PC)用于基于随机输入变量来计算的数学表达式。
7.一种搜索环境中的计算机系统,其中爬行预定信息源库,并且通过包括索引的数据结构来索引其文档,该索引由潜在搜索项(22)和相关登记表(24)组成,该登记表(24)包含有关含有该搜索项(22)的文档的文档标识信息,以及有关在相应文档中所述搜索项出现的位置的进一步信息,其特征在于具有存储装置,该存储装置存储扩展反向索引(32),其中所述索引(32)存储词汇关联(42)(LA),其中每个词汇关联(42)涉及相应两个或更多搜索项(22),以及针对每个所述词汇关联(42)的相应登记表(24)。
8.一种用于执行电子信息检索(IR)方法的计算机程序,其中爬行预定信息源库,并且通过包括索引的数据结构来索引其文档,该索引由潜在搜索项(22)和相关登记表(24)组成,该登记表(24)包含有关含有该搜索项的文档的文档标识信息,以及有关在相应文档中所述搜索项出现的位置的进一步信息,其特征在于用于以下操作的功能a)生成(310,330,340)扩展反向索引(32)结构,该扩展反向索引结构包括aa)词汇关联(42)(LA),其中每个词汇关联(42)涉及相应两个或更多搜索项(22),以及bb)针对每个所述词汇关联(42)的相应登记表(24),b)通过使用所述扩展索引(32)对搜索的文档分级(350,355,370)。
9.一种存储于计算机可用介质上的计算机程序产品,包括用于使计算机执行权利要求1至6中任一项的方法的计算机可读程序装置,其中所述计算机程序产品在计算机上执行。
全文摘要
本发明涉及基于计算机的电子信息检索(IR)。本发明尤其涉及电子信息检索(IR)方法,其中爬行预定搜索文档库(因特网等),并且其文档通过例如所谓“反向索引”的数据结构来建立索引,该数据结构包括由潜在搜索项和相关登记表组成的索引,该登记表含有给出在哪一文档中找到所述搜索项的文档标识信息以及与有关所述搜索项在相应文档内的出现位置的进一步信息。为了加速查询性能,提出在建立索引时执行如下步骤a)生成扩展反向索引(32)结构,该扩展反向索引结构包括aa)词汇关联(42)对(LA),其中每对(42)涉及相应两个搜索项(22)之间的特定词汇关联,以及bb)针对每个所述LA对的相应登记表(24),以及b)通过使用所述扩展索引(32)对搜索的文档分级。
文档编号G06F17/30GK1873643SQ200610074050
公开日2006年12月6日 申请日期2006年4月4日 优先权日2005年5月10日
发明者皮特·阿尔特沃格, 马库斯·F·方图拉, 贾森·Y·齐恩 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1