说明书索引装置、索引方法、检索装置、检索方法和检索系统
技术领域
本发明涉及计算机技术领域,具体而言,涉及索引装置、索引方法、检索装置、检索方法和检索系统。
背景技术
目前,搜索引擎已经成为互联网的主要入口,人们通过搜索引擎查询和定位互联网信息资源。为了便于用户快速、准确地查询到所需信息,搜索引擎提供多种检索方式。其中,精确串检索(PhraseQuery)、邻近检索(ProximityQuery)等通过综合评价查询串在文档中出现的位置、顺序、频率等信息,有效地提高了搜索引擎的查询相关度。通常,用户的查询请求包含多个词(统计表明大于2.5词),词之间的顺序在语义上具备较强的关联性。对于精确串检索,用户要求查询返回的文档必须包含完整的检索串。对于邻近检索,检索结果集优先提供词出现顺序与检索串一致的文档。由此可见,用户请求串在文档中出现与否,出现频率等属性,是文档相关性评价的重要因素。
精确串检索、邻近检索等检索方式有效地提高了检索的相关性,但检索过程中需要对文档的关键词位置进行匹配计算,致使检索速度大幅下降。目前,搜索引擎进行用户提交的精确串检索请求的处理逻辑如下,首先对检索请求涉及的关键词串进行“与”检索,对“与”检索的结果文档,进行位置判断,判断和统计完整检索串出现的频次,然后计算相关性。
在搜索引擎索引中,一般都采用关键词到文档信息的倒排索引结构,每一个关键词都出现在它所指向的文档链表的每一个文档。对于在所有文档中经常出现的词,我们称其为“高频词”,顾名思义就是出现的频率比较高的词,比如说“的”、“了”、“我”等。这类关键词不仅出现的文档频率高,在每一篇出现的文档中,出现的次数也高,为了后期计算相关性的准确性,在文档链表中都会记录文档中关键词出现的位置信息,所以在倒排链表中,此类关键词指向的文档链表就相当的大。
再例如,用户查询“我的大学”,搜索引擎的分词模块将用户请求处理成关键词串“我/的/大学”,根据倒排索引,对“我”、“的”、“大学”的倒排索引列表,进行与操作。对于同时包含有上述三个词的文档,读取三个词在文档中的位置信息,进行相应统计判断。由于检索关键词“我”、“的”都是中文文献中高频出现的词,其倒排索引列表长度很长,同时在文档中出现的频率也很高,位置列表也很长,致使整个查询过程计算量巨大,严重影响查询速度,极端情况下耗时达到秒级以上。
传统的技术方案,在检索带有高频词的检索串的时候,因为高频词在文档中出现的频率高,几乎所有的文档中都会出现高频词,所以对于这类的检索串就需要对全部文档计算一次相关性,针对搜索引擎上亿个文档来说,计算量是相当庞大的,搜索一次很耗时,不利于用户的体验。
因此,需求提供一种新的索引、检索方法,能够克服现有技术的缺点,在保持相关性准确率的情况下,有效地利用计算机硬件资源,提高搜索效率,提升用户的体验。
发明内容
本发明要解决的技术问题在于,提供一种新的索引、检索方法,能够克服现有技术的缺点,在保持相关性准确率的情况下,有效地利用计算机硬件资源,提高搜索效率,提升用户的体验。
有鉴于此,本发明提出一种索引装置,包括:高频词处理模块,在文档中的当前词为高频词时,根据所述当前词邻接的前侧词和/或后侧词,对所述当前词进行扩展;索引建立模块,根据扩展得到的新词和所述文档建立索引。在该技术方案中,通过对文档关键词中的高频词进行扩展处理,降低了关键词中高频词的数量,避免了利用大量高频词建立索引而导致过高的检索量和过长的检索时间。
在上述技术方案中,优选地,所述高频词处理模块在所述前侧词和/或所述后侧词也为高频词时,将所述前侧词和/或所述后侧词与所述当前词组合,以形成所述新词。在该技术方案中,在高频词前侧和/或后侧的关键词也是高频词时,例如“我的祖国”中,“的”为高频词,对其进行扩展时,前侧的关键词“我”同样是高频词,则将“的”与“我”组合扩展为“我的”,作为新的关键词用于建立索引。
在上述技术方案中,优选地,所述高频词处理模块在所述前侧词和/或所述后侧词为非高频词时,将所述前侧词中最后的至少一个字或字符与所述当前词组合,和/或将所述后侧词中最前的至少一个或字符与所述当前词组合,以形成所述新词。在该技术方案中,在高频词前侧和/或后侧的关键词均为非高频词时,例如“书桌上的鼠标垫”,若取“的”作为高频词,而前侧“书桌上”和后侧的“鼠标垫”均为非高频词,则与前侧非高频词组合扩展的方式为取前侧关键词的最后的至少一个字或字符,即至少扩展为“上的”,当然也可以为“桌上的”或其它;而与后侧非高频词组合扩展的方式为取后侧关键词的最前的至少一个字或字符,即至少扩展为“的鼠”,当然也可以为“的鼠标”或其它,具体选用几个字或字符进行扩展,可以根据需要灵活设定,然后利用扩展后得到的新的关键词建立索引。
本发明还提出了一种索引方法,包括:步骤202,高频词处理模块在文档中的当前词为高频词时,根据所述当前词邻接的前侧词和/或后侧词,对所述当前词进行扩展;步骤204,索引建立模块根据扩展得到的新词和所述文档建立索引。在该技术方案中,通过对文档关键词中的高频词进行扩展处理,降低了关键词中高频词的数量,避免了利用大量高频词建立索引而导致过高的检索量和过长的检索时间。
在该技术方案中,优选地,所述步骤202具体包括:所述高频词处理模块在所述前侧词和/或所述后侧词也为高频词时,将所述前侧词和/或所述后侧词与所述当前词组合,以形成所述新词。在该技术方案中,在高频词前侧和/或后侧的关键词也是高频词时,例如“我的祖国”中,“的”为高频词,对其进行扩展时,前侧的关键词“我”同样是高频词,则将“的”与“我”组合扩展为“我的”,作为新的关键词用于建立索引。
在该技术方案中,优选地,所述步骤202具体包括:所述高频词处理模块在所述前侧词和/或所述后侧词为非高频词时,将所述前侧词中最后的至少一个字或字符与所述当前词组合,和/或将所述后侧词中最前的至少一个字或字符与所述当前词组合,以形成所述新词。在该技术方案中,在高频词前侧和/或后侧的关键词均为非高频词时,例如“书桌上的鼠标垫”,若取“的”作为高频词,而前侧“书桌上”和后侧的“鼠标垫”均为非高频词,则与前侧非高频词组合扩展的方式为取前侧关键词的最后的至少一个字或字符,即至少扩展为“上的”,当然也可以为“桌上的”或其它;而与后侧非高频词组合扩展的方式为取后侧关键词的最前的至少一个字或字符,即至少扩展为“的鼠”,当然也可以为“的鼠标”或其它,具体选用几个字或字符进行扩展,可以根据需要灵活设定,然后利用扩展后得到的新的关键词建立索引。
本发明还提出了一种检索装置,包括:高频词处理模块,在检索串中的当前词为高频词时,根据所述当前词邻接的前侧词和/或后侧词,对所述当前词进行扩展;检索模块,使用扩展得到的新词,在预建立的索引中进行检索。在该技术方案中,通过对检索串关键词中的高频词进行扩展处理,降低了关键词中高频词的数量,避免了利用大量高频词来检索索引而导致过高的检索量和过长的检索时间。
在上述技术方案中,优选地,还包括:如上述的索引装置,预建立所述索引。通过技术方案,结合按上述技术方案得到的索引,能够进一步优化检索。
在上述技术方案中,优选地,所述高频词处理模块还在所述新词的两侧添加标记;所述检索模块根据所述标记,获取所述新词,并统计所述新词在所述文档中顺序出现的次数,以用于为所述文档计算相关性,并根据得到的相关性来选取作为检索结果的文档。通过该技术方案,采用精确串子查询,能够保证检索的准确性。
本发明还提出了一种检索方法,包括:步骤402,高频词处理模块在检索串中的当前词为高频词时,根据所述当前词邻接的前侧词和/或后侧词,对所述当前词进行扩展;步骤404,检索模块根据扩展得到的新词,在预建立的索引中进行检索。在该技术方案中,通过对检索串关键词中的高频词进行扩展处理,降低了关键词中高频词的数量,避免了利用大量高频词来检索索引而导致过高的检索量和过长的检索时间。
在上述技术方案中,优选地,在所述步骤404之前,还包括:通过如上述的索引方法,预建立所述索引。通过技术方案,结合按上述技术方案得到的索引,能够进一步优化检索。
在上述技术方案中,优选地,在所述步骤402中,还包括:所述高频词处理模块在所述新词的两侧添加标记;所述步骤404具体包括:所述检索模块根据所述标记,获取所述新词,并统计所述新词在所述文档中顺序出现的次数,以用于为所述文档计算相关性,并根据得到的相关性来选取作为检索结果的文档。通过该技术方案,采用精确串子查询,能够保证检索的准确性。
本发明还提出了一种检索系统,包括:如上所述的索引装置;如上所述的检索装置,所述检索装置使用其生成的新词,在所述索引装置建立的索引中进行检索。在该技术方案中,将利用高频词扩展生成新关键词的方式建立的索引对应于同样采用高频词扩展方式的检索过程相关联,形成一个完整的信息检索系统,使整个系统在运行时,可以在现有的计算机硬件环境下,在保证相关性准确率的前提下,有效地利用计算机的硬件资源,提升用户体验。
附图说明
图1是根据本发明的一个实施例的索引装置的框图;
图2是根据本发明的一个实施例的索引方法的流程图;
图3是根据本发明的一个实施例的检索装置的框图;
图4是根据本发明的一个实施例的检索方法的流程图;
图5是根据本发明的一个实施例的检索系统的框图;
图6是根据本发明的一个实施例的索引方法中的高频词处理流程图;
图7是根据本发明的一个实施例的索引方法中的高频词处理示意图;
图8是根据本发明的一个实施例的索引方法的流程示意图;
图9是根据本发明的一个实施例的检索方法的流程示意图;
图10是现有搜索引擎中使用的数据结构的示意图;
图11是根据本发明的一个实施例的索引方法的流程示意图;
图12是根据本发明的一个实施例的索引方法的流程示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
首先,关于本发明对减少文档链表的大小、提高检索效率等优势的作用原理在此处予以说明。
用户搜索单个高频词的概率很小,且没有意义,一般的高频词查询都是与其他词组合而成进行查询的,在此前提下,本发明提出的方法是将文档中的高频词与高频词后面的或者前面的一个字组合成一个非高频关键词做索引,在做查询时,对于带高频词的查询串,分词的时候可以将高频词与非高频词组合查询,减少非命中文档,提高计算效率。
关于通过组合高频词减少倒排索引中关键词(本申请中,将对文档或检索串分词处理后得到的词称为关键词)指向的文档链表的大小,过程如下:假设有一文档集合U,文档的个数是Nu,文档集合中包含有高频词W1的文档个数是N1(0<=N1<=Nu),所以高频词W1出现的概率是: