一种基于单字索引系统的检索方法和装置的制作方法

文档序号:6425445阅读:126来源:国知局
专利名称:一种基于单字索引系统的检索方法和装置的制作方法
技术领域
本发明涉及搜索引擎技术,特别涉及一种基于单字索引系统的检索方法和装置。
背景技术
随着网络的迅速普及,信息海量增加。搜索引擎技术的出现使得人们能方便快捷地在这些海量信息中找到自己所需要的各种信息。单字索引系统作为检索目标信息的一种解决方案已得到广泛应用。单字索引系统包含众多预先建立的索引表(如附图I所示),每个索引表主要包含三列数据一列是索引字符,这些字符绝大部分为单字形式,也有少部分字符是自然语言的词组、成语,甚至短句,检索语句根据索引字符查询索引表;第二列是与索引字符对应的包含该索引字符的文档的数目;第三列是与索引字符对应的包含该索引字符的所有文档的地址,这些文档称为索引文档。用户检索时只需输入检索语句,单字索引系统从检索语句中提取出检索字符,并根据·该检索字符对应的索引字符查询索引表获取包含该索引字符的索引文档集,然后返回给用户完成检索。附图2所示为现有技术中单字索引系统进行检索的一个实例图。该实例进行检索的步骤包括接收用户输入的检索语句,然后将该语句拆分为多个词组,再通过每个词组中单字对应的索引字符从预先创建的索引表中找到包含该单字的索引文档集,对这些文档集进行交集运算,从而得到包含该词组的文档集,接下来对各个词组的文档集进行同样的交集运算,进而得到包含这些词组的最后检索结果。该检索方法在获取词组的文档集时对词组中每个单字的索引文档进行交集运算,通常,每个单字对应的索引文档数量巨大,因此交集运算的运算对象的数量也颇为巨大,为得到检索结果,索引系统必须完成所有的交集运算,这势必大大增加检索时间,降低了单字索引系统的检索性能。

发明内容
有鉴于此,本发明提供一种基于单字索引系统的检索方法和装置,该方法和装置在获取每个检索单元的检索结果时,改变了检索结果的获取方式,不再对检索单元的所有索引文档集进行交集运算,以减少交集运算的运算对象的数量,缩短检索时间,提高单字索引系统的检索性能。本发明提供的基于单字索引系统的检索方法包括接收检索语句;提取所述检索语句的字符序列,并将该字符序列进行拆分得到检索单元,所述检索单元包括至少一个检索字符;根据所述检索单元的检索字符查询索引表获得各检索字符对应的索引文档集;以所述索引文档集为处理对象,进行包括选择操作在内的处理,并将处理结果作为该检索单元的检索结果;对所述各检索单元的检索结果进行交集运算并返回结果文档集;用所述各检索单元扫描所述结果文档集以判断所述结果文档集的文档是否包含所述各检索单元,如果是,则返回该文档。本发明还提供了一种基于单字索引系统的检索装置,该装置包括检索语句接收模块、字符序列提取与拆分模块、索引文档集获取模块、索引文档集处理模块、交集运算模块和判断模块,其中所述检索语句接收模块,用于接收检索语句;所述字符序列提取与拆分模块,用于提取所述检索语句的字符序列,并将该字符序列进行拆分得到检索单元,所述检索单元包括至少一个检索字符;所述索引文档集获取模块,用于根据所述检索单元的检索字符查询索引表获得各检索字符对应的索引文档集;所述索引文档集处理模块,用于以所述索引文档集为处理对象,进行包括选择操 作在内的处理,并将处理结果作为该检索单元的检索结果;所述交集运算模块,用于对所述各检索单元的检索结果进行交集运算并返回结果文档集;所述判断模块,用所述各检索单元扫描所述结果文档集以判断所述结果文档集的文档是否包含所述各检索单元,如果是,则返回该文档。本发明在将检索语句的字符序列拆分为检索单元后,根据检索单元的检索字符获取该检索单元的所有索引文档集,随后以这些索引文档集为处理对象,进行包括选择操作在内的处理,并将处理结果作为该检索单元的检索结果,而不是直接对检索单元的所有索引文档集进行交集运算获得该检索单元的检索结果,这样大大减少了交集运算的运算对象,从而减少了交集运算次数,有效降低了引擎检索的时间消耗,改善了单字检索系统的检索性能。此外,本发明将现有技术中的单字和词组级别两级交集运算简化为检索单元索引文档集级别的处理操作和判断操作,就处理操作而言,如前所述本发明大大减少了交集运算的运算次数改善了检索系统性能;就判断操作而言,按照检索单元进行一次判断操作要比进行文档集合间的交集运算简单得多,缩短了检索的时间耗费,从而也大大改善了检索系统性能。再者,本发明对判断后的返回文档进行文档排序,并按照用户需要返回排序结果,满足了用户对检索结果各文档的不同关注度的需求,进一步提高了检索系统的整体性倉泛。


图I为现有技术中单字索引系统的索引表示意图;图2为现有技术中单字索引系统的一个检索实例示意图;图3为本发明的方法实施例一的流程图;图4为本发明的方法实施例二的流程图;图5为本发明的方法实施例三的流程图;图6为本发明的方法实施例四的流程图;图7为本发明的方法实施例五的检索实例示意图;图8为本发明的方法实施例九的检索实例之用户检索历史示意图;图9为本发明的方法实施例十二的排序步骤之计算文档相关性的坐标图;图10为本发明的装置实施例十三的组成框图11为本发明的装置实施例十三的索引文档集处理模块的组成框图;图12为本发明的装置实施例十三的排序模块的组成框图。
具体实施例方式本发明的主要思想是对检索语句的字符序列进行拆分得到检索单元后,在获取检索单元的检索结果时,以检索单元的所有索引文档集为处理对象,通过进行包括选择操作在内的处理获取该检索单元的检索结果(而不采用直接对检索单元的所有索引文档集进行交集运算的方式获得检索结果),各检索单元的检索结果得到后进行交集运算,然后判断交集运算后的结果文档集合是否包含各检索单元,最后得到需要的检索文档。本发明减少了交集运算的运算对象的数量,改善了单字索引系统的检索性能。为使本领域技术人员能进一步了解本发明的特征及技术内容,下面结合附图和实施例,对本发明的技术方案进行详细描述。实施例一 附图3为本发明的方法实施例一的流程图。该实施例所述的基于单字索引系统的检索方法包括如下步骤步骤101 :接收用户输入的检索语句;检索语句是用户输入的检索对象,一般由一系列自然语言的语素与描述这些语素间逻辑关系的逻辑词组成。语素是构成检索语句的有意义的字符,逻辑词是进行逻辑运算的根据,本实施例适用于“与”逻辑检索的场合,逻辑词序列为“AND”序列,对应的逻辑运算为交集运算。步骤102 :提取所述检索语句的字符序列,将该字符序列进行拆分得到检索单元,所述检索单元包括至少一个检索字符;所述检索单元为检索字符的集合,该检索字符可以是单字、词组、成语,甚至短句。不同的检索系统和语言环境下拆分检索单元的规则不同,一般可以按照自然语言的语法体系拆分检索单元,比如检索语句为“浙江杭州柠檬茶”,进行检索单元拆分时将被拆分为词组“浙江”、“杭州”、“柠檬茶”三个检索单元,而不会是“浙江杭”、“州柠檬”、“茶”检索单元,因为这样不符合自然语言使用习惯;还比如检索语句为“利比亚岌岌可危”,进行检索单元拆分时将被拆分为国名“利比亚”、成语“岌岌可危”两个检索单元;再比如检索语句为“他山之石可以攻玉的出处”,将被拆分为短句“他山之石可以攻玉”、单字“的”、词组“出处”三个检索单元;经过上述拆分得到的检索单元包括若干个检索字符,如上述“浙江”检索单元包括“浙”、“江”两个检索字符,这些检索字符与创建单字索引系统时使用的索引字符是对应的,即是说,单字索引系统已经建立关于“浙”这一索引字符的索引表,该索引表的第三列数据为包含“浙”的所有索引文档的地址,检索时根据检索字符“浙”即可查询获得包含“浙”的所有索引文档,称为索引文档集。步骤103 :根据所述检索单元的检索字符查询索引表获得各检索字符对应的索引文档集;以所述索引文档集为处理对象,进行包括选择操作在内的处理,将处理结果作为该检索单元的检索结果;此处“包括选择操作在内的处理”表示至少要进行一次选择操作,选择操作的对象可以直接是所述检索单元的各索引文档集,也可以是对该检索单元的索引文档集进行处理后的文档集,这些处理包括但不限于交集运算、比较操作。步骤104 :对所述各检索单元的检索结果进行交集运算并返回结果文档集;各检索单元的检索结果可以均按照上述方式获取,也可以在至少有一个检索单元的检索结果按照上述方式获取的情况下,其他的检索单元按照现有技术的方式获取本检索单元的检索结果。这里的交集运算是在各个检索单元获取检索结果后,将这些检索结果进行归并。步骤105 :用所述各检索单元扫描所述结果文档集以判断所述结果文档集的文档是否包含所述各检索单元,如果是,则返回该文档。前一步骤完成后的结果文档集是同时包括各个检索单元某些检索字符的文档,这些文档有可能不包括各个检索单元的所有检索字符,因此必须将这样的文档排除。比如,包含“浙”和“杭”的索引文档不一定包含“江”与“州”,因此需要判断交集运算后的结果文档集的文档是否包含“江”与“州”,只有同时包含“浙江”与“杭州”的索引文档才是用户需要的。文档返回后,根据用户需要可对返回的文档进行保存,保存的媒质可以是网络硬盘、邮 箱、其他外接存储设备。本实施例在将检索语句的字符序列拆分为检索单元后,以检索单元的各检索字符对应的索引文档集为处理对象,进行包括选择操作在内的处理,将处理结果作为各检索单元的检索结果,而不是直接对检索单元中的每个检索字符对应的索引文档集进行交集运算,这样大大减少了交集运算的运算对象,从而减少了交集运算次数,有效降低了引擎检索的时间消耗,改善了引擎性能,取得了良好的效果。此外,本实施例将现有技术中的两级交集运算简化为索引文档集级别的处理操作和扫描判断操作,就处理操作而言,如前所述本实施例减少了交集运算的运算对象的数量从而改善了检索系统性能;就扫描判断操作而言,用检索单元对结果文档集进行一次扫描判断操作要比进行文档集合间的交集运算简单得多,缩短了检索的时间耗费,从而大大改善了检索系统性能。实施例二实施例一中步骤103提到对索引文档集进行包括选择操作在内的处理,这种处理可以有多种具体实现方式,只要这些方式中包括选择操作这一处理步骤,即不妨碍本发明的发明目的的实现。比如可以对检索单元的多个索引文档集首先进行比较操作,通过比较判断得到索引文档数最少的索引文档集,然后选择该索引文档集作为该检索单元的检索结果。由此可构成本发明的又一个实施例,本实施例二与实施例一相比,除步骤103外,其他步骤均相同。参见附图4,实施例一的步骤103在本实施例中变化为步骤203 :比较所述检索单元的各索引文档集的索引文档数,选择索引文档数最少的索引文档集作为该检索单元的处理结果;这里作为一个实施例,选择检索单元中索引文档数最少的索引文档集作为该检索单元的处理结果,实际上,可以从检索单元中任意选择一个索引文档集,这样并不妨碍本发明的发明目的的实现。为说明本实施例与现有技术相比技术效果的改善程度,这里举一个例子假设用户进行检索的语句为“浙江杭州”,从预先建立的索引表中查询得到包含“浙”的索引文档集的索引文档数为NI,包含“江”的索引文档集的索引文档数为Ml,“杭”的索引文档数为N2,“州”的索引文档数为M2。上述检索语句被拆分为“浙江”、“杭州”两个检索单元后,首先从“浙江”这个检索单元中选取“浙”的NI (也可选取“江”的Ml)篇索引文档作为该检索单元的检索结果,再从“杭州”这个检索单元中选取“杭”的N2(也可选取“江”的M2)篇索引文档作为该检索单元的检索结果,然后将这两个检索结果进行交集运算,以得到同时包含“浙”和“杭”的结果文档集。按照现有技术的检索方法,至少需进行N1XM1+N2XM2次交集运算,而本发明仅需进行NI (Ml) XN2(M2)次运算,运算次数大为减少。该例子中,如果对NI和Ml、N2和M2进行大小比较,并选择索引文档数目小的那个索引文档集作为检索单元的检索结果,然后对检索结果进行交集运算,则可以进一步减少交集运算的次数,取得更好的技术效果。实施例三实施例一中步骤103提到对索引文档集进行包括选择操作在内的处理,除实施例二所述的方式外,还可以这样进行将检索单元的各索引文档集划分为两个组, 将各组内的索引文档集进行交集运算,然后比较各组交集运算后的运算结果文档集的文档数目,选取文档数少的运算结果文档集作为该检索单元的检索结果。由此,按照上述描述可以构建出本发明的又一个实施例,参见附图5。本实施例与实施例一的区别在于实施例一步骤103在本实施例中变化为步骤3031 :将所述检索单元的索引文档集划分为两个组;这里作为一个实施例,将检索单元的索引文档集划分为两个组,实际上,检索单元的索引文档集也可以划分为多个组,并不妨碍本发明的发明目的的实现;步骤3032 :对第一组的索引文档集进行交集运算得到第一文档集,对第二组的索引文档集进行交集运算得到第二文档集;步骤3033 比较所述第一文档集与第二文档集的文档数目,并返回文档数目小的文档集作为该检索单元的检索结果。本实施例在对检索语句的字符序列进行拆分得到检索单元后,将检索单元划分为两个组,对每组的索引文档集进行交集运算,然后比较每组交集运算后的文档集的文档数目,选择文档数目较小的文档集作为该检索单元的检索结果。与现有技术直接对检索单元的所有索引文档集进行交集运算获取检索单元的检索结果的方式相比,本实施例减少了交集运算的对象,从而减少了交集运算次数,有效降低了引擎检索的时间消耗,改善了搜索引擎性能,取得了良好的效果。比如检索单元为“专利申请文件”,假设各单字的索引文档数分别为I、3、5、2、4、6,按照现有技术的方法,交集运算的次数为I X 3 X 5 X 2 X 4 X 6 = 720次,按照本实施例的方法,将前三字的索引文档集作为第一组,后三字的索引文档集作为第二组,进行交集运算的次数为1X3X5+2X4X6 = 63,由此可见,交集运算的次数大大减少,从而改善了检索系统性能。实施例四在实施例三的思路基础上,以减少交集运算对象达到改善检索系统性能为目的获取检索单元的检索结果的方式,除实施例二和实施例三所述的方式外,还可以在对检索单元进行分组基础上从每组中各选择一个索引文档集,再将每组分别获得的索引文档集进行交集运算,从而得到检索单元的检索结果。如附图6所示,本实施例与实施例一的区别在于实施例一步骤103在本实施例中变化为步骤4031 :将所述检索单元的索引文档集划分为两个组;
这里作为一个实施例,将检索单元的索引文档集划分为两个组,实际上,检索单元的索引文档集也可以划分为多个组,并不妨碍本发明的发明目的的实现;步骤4032 :比较每组中的各索引文档集的索引文档数,选取索引文档数最少的索引文档集作为该组的选择结果文档集;这里作为一个实施例,选择每组中索引文档数最少的索引文档集作为选择结果文档集,实际上,可以从每组中任意选择索引文档集,并不妨碍本发明的发明目的的实现;步骤4033 :对所述第一组的选择结果文档集和第二组的选择结果文档集进行交集运算,将交集运算得到的结果作为该检索单元的处理结果。为说明本实施例的技术效果,同样以实施例三所举的例子进行阐释。检索单元“专利申请文件”各单字的索引文档数同样分别为1、3、5、2、4、6,同样将“专、利、申”对应的索引文档集作为第一组,“请、文、件”对应的索引文档集作为第二组。按照现有技术的方法,交集运算的次数为1X3X5X2X4X6 = 720次,按照本实施例的方法,比较每组的索引文档 集的索引文档数目后选取第一组中“专”的I篇索引文档作为第一组的选择结果文档集,选取第二组中“请”的2篇索引文档作为第二组的选择结果文档集,然后进行交集运算,交集运算的次数为1X2 = 2。即使选取第一组中索引文档数最多的“申”的索引文档集和第二组索引文档数最多的“件”的索引文档集,交集运算的次数也仅为5X6 = 30,相比于现有技术的720次也大大减少了运算次数,从而明显地改善了检索系统的检索性能。实施例五为更透切地描述本发明的检索方法,下面以一个具体的检索实例进行说明。附图7是本实施例具体检索实例的示意图。假设用户需要了解浙江杭州柠檬茶的有关信息,设置待检索语句为浙江杭州朽1檬茶。本实施例的检索方法的步骤包括步骤501 :用户界面检索框接收用户输入的“浙江杭州柠檬茶”检索语句。步骤502 :根据汉语语法规则,上述检索语句被切分为“浙江”、“杭州”、“柠檬茶”三个词组,即本实施例的检索单元具体化为词组。步骤503 :根据所述词组的检索字符查询索引表获得各检索字符对应的索引文档集,以所述索引文档集为处理对象,从中选择一个索引文档集作为该检索单元的检索结果从“浙江”中选择包含“江”的12篇索引文档作为词组“浙江”的检索结果,参见附图1,该检索结果中的文档地址分别为:A1、A3、A5、A6、A11、A13、A14、A15、A17、A18、A21、A22 ;从“杭州”中选择包含“州”的10篇索引文档作为词组“杭州”的检索结果,该检索结果包含的文档地址分别为A1、A3、A4、A6、A8、A9、A11、A13、A15、A16 ;从“柠檬茶”中选择包含“檬”的5篇索引文档作为词组“柠檬茶”的检索结果,该检索结果包含的文档地址分别为A1、A2、A3、A5、A18。步骤504 :将上述“浙江”、“杭州”、“柠檬茶”的检索结果进行两两交集运算,得到同时包含“江”、“州”、“檬”三个单字的结果文档集,该结果文档集中包括文档Al、文档A3。步骤505 :用词组“浙江”扫描上述结果文档集,判断该文档集的各篇文档是否包括“浙江”这一词组,再以同样的方式判断是否包括“杭州”、“柠檬茶”这两个词组,扫描结果是文档Al、文档A3同时包含“浙江”、“杭州”、“柠檬茶”三个词组,则返回文档Al、文档A3。本实施例取得的有益效果与前述实施例相似,此处不予重复描述。实施例六
实际上,在实施例五步骤503中,从三个词组的索引文档集中分别选取一个索引文档集作为各词组的检索结果的选择方式虽然可以是任意的,但是一种比较优选的方式是选择词组中索引文档数目最少的索引文档集。由此,构成本发明方法的又一个实施例。与实施例五相比,本实施例的不同之处在于,实施例五的步骤503、504、505变化为步骤603(a):根据词组“浙江”的“浙”、“江”两个单字对应的索引字符查询索引表,得到包含“浙”的10篇索引文档和包含“江”的12篇索引文档的两个索引文档集,两者比较后选取索引文档数较少的包含“浙”的索引文档集作为“浙江”词组的检索结果;根据词组“杭州”的“杭”、“州”两个单字对应的索引字符查询索引表,得到包含“杭”的8篇索引文档和包含“州”的10篇索引文档的两个索引文档集,两者比较后选取文档数较少的包含“杭”的索引文档集作为“杭州”词组的检索结果;根据“柠檬茶”的“柠”、“檬”、“茶”三个单字对应的索引字符查询索引表,得到包含“柠”的6篇索引文档、包含“檬”的5篇索引文档和包含“茶”的9篇索引文档这样三个索引文档集,三者比较后选取文档数最少的包含“檬”的索引文档集作为“柠檬茶”词组的检索结果;步骤604 :将上述“浙江”、“杭州”、“柠檬茶”的检索结果进行两两交集运算,得到同 时包含“浙”、“杭”、“檬”三个单字的结果文档集,该文档集包括文档Al、文档A2、文档A3。步骤605 :用词组“浙江”扫描上述结果文档集,判断该文档集的各篇文档是否包括“浙江”这一词组,再以同样的方式判断是否包括“杭州”、“柠檬茶”这两个词组,扫描结果是仅有文档Al、文档A3同时包含“浙江”、“杭州”、“柠檬茶”,则返回文档Al、文档A3。本实施例通过选取检索单元中索引文档数最少的索引文档集进行交集运算,进一步减少了交集运算的运算对象的数量,从而改善了单字检索系统检索性能。实施例七同样地,要通过减少交集运算的对象达到改善检索系统性能的目的,除按照实施例五中步骤503所述的获取检索单元检索结果的方式进行外,还可以按照下面介绍的方式获取检索单元的检索结果,由此构成实施例七。本实施例与实施例五的区别在于,实施例五的步骤503、504、505变化为步骤7031 (a):根据词组“浙江”中的单字“浙”对应的索引字符查询索引表获取包含“浙”的10篇索引文档,根据词组“浙江”中的单字“江”对应的索引字符查询索引表获取包含“江”的12篇索引文档;步骤7031 (b):比较词组“浙江”的“浙”的索引文档数和“江”的索引文档数,得到索引文档数据小的“浙”的索引文档集作为词组“浙江”检索结果,该检索结果的10篇文档的地址为 A1、A2、A3、A4、A7、A8、A10、A12、A17、A20 ;步骤7032(a):根据词组“杭州”中的单字“杭”对应的索引字符查询索引表获取包含“杭”的8篇索引文档,根据词组“杭州”中的单字“州”对应的索引字符查询索引表获取包含“州”的10篇索引文档;将词组“杭州”的两个索引文档集划分为两组,这里每组仅包括一个索引文档集;步骤7032 (b):选取第一组中“杭”的8篇索引文档作为第一组的选择结果文档集,选取第二组中的“州”的10篇索引文档作为第二组的选择结果文档集;步骤7032 (C):对第一组的选择结果文档集和第二组的选择结果文档集进行交集运算得到2篇同时包含上述两个单字的索引文档,该2篇索引文档集作为词组“杭州”的检索结果,该检索结果包含的文档地址为Al、A3 ;步骤7033(a):根据词组“柠檬茶”的三个单字分别查询索引表,获得包含该三个单字的三个索引文档集,将该三个索引文档集划分为两组,第一组为包含“柠”和“檬”的两个索引文档集,第二组为包含“茶”一个索引文档集;步骤7033(b):将包含“柠”的索引文档集与包含“檬”的索引文档集进行交集运算,得到文档Al、文档A3、文档A5共三篇文档作为第一文档集;将包含“茶”的9篇索引文档作为第二文档集;步骤7033 (C):比较第一文档集与第二文档集的文档数目,返回文档数目小的文档集,即第一文档集作为词组“柠檬茶”的检索结果,该检索结果包含的文档的地址为Al、A3、A5 ;步骤704 :将上述分别得到的“浙江”、“杭州”、“柠檬茶”的检索结果进行两两交集运算,得到同时包含“浙”、“杭州”、“柠檬”的结果文档集2篇,该结果文档集包含文档Al、文·档A3 ;步骤705 :用词组“浙江”扫描上述结果文档集,判断该文档集的各篇文档是否包括“浙江”这一词组,再以同样的方式判断结果文档集中是否包括“杭州”、“柠檬茶”这两个词组,扫描结果是仅有文档Al、文档A3同时包含“浙江”、“杭州”、“柠檬茶”,则返回文档Al、文档A3。本实施例在对三个词组中的索引文档集进行处理时采取了不同的方式,这些方式均有效减少了交集运算的对象,从而减少了交集运算的次数,改善了检索系统性能。实施例八不同的检索系统所预设的语法规则不同,不同水平的用户进行检索所输入的检索语句也呈现出差异,如果对不符合检索系统语法规则的检索语句进行检索既浪费了时间,也无法得到正确的检索结果。因此,为进一步改善本发明提供的检索方法,本发明优选在接收检索语句后对所述检索语句进行语法检查。语法检查处理包括语法检查与化简处理,主要目的在于排除那些不符合检索系统预设语法规则的检索语句和剔除检索语句中无意义的多余字符,比如空格、箭头等控制字符。具体步骤为读取检索语句,调用预设语法规则对该语句进行比对,如果检索语句不符合语法规则,则系统报错,请求重新输入正确的检索语句;比如,检索语句词组IAND AND词组2,由于两个逻辑词间未表示出逻辑层次关系,不符合语法规则,则检索系统报错,请求用户修正检索语句;如果检索语句符合语法规则,进行化简处理;判断检索语句中是否存在除逻辑词与字符外的其他符号,如果是,则剔除该符号,比如将上述检索语句中的两个空格去掉。对检索语句进行语法处理有利于对检索语句进行检索单元的拆分。实施例九为进一步提高索引系统的检索性能,检索语句按照自然语言的语法规则进行拆分检索单元后,还可以考虑根据用户的检索历史对拆分的检索单元进行归并操作,以减少检索单元的数量,进而减少交集运算的运算对象,由此形成实施例九。本实施例的方法是在实施例一的步骤102之后增加检索单元归并步骤,其他步骤内容不变,仅将序号作相应调整。步骤9021 :读取第一检索单元和第二检索单元,根据第一检索单元查询用户检索历史表,所述检索历史表登记有第一检索单元与第二检索单元在同次检索中捆绑检索的频度;步骤9022 :判断所述频度是否超过预设阀值,如果是,则将第一检索单元与第二检索单元归并为一个检索单元。用户的检索历史反应了用户的检索倾向,统计分析检索历史,可以指导检索单元的合并操作。如果分析用户的检索历史发现检索单元I与检索单元2经常被用户捆绑在一起检索,那么就没必要将检索单元I与检索单元2看成两个完全独立的检索单元进行步骤103,而是在进行步骤103之前将该两个检索单元归并为一个检索单元,那么在选取检索单元中索引文档数目最少的索引文档集时,由于检索单元由原来的2个变成现在的I个,从而减少了交集运算的运算对象,提高了检索系统的性能。举例而言假设用户需要检索“专利知识普及程度”,按照自然语言语法规则,该检索语句将被拆分为“专利”、“知识”、“普及”、“程度”四个检索单元,按照前述实施例的方法应当从四个检索单元的各索引文档集中分别选择一个索引文档集合作为各检索单元的检索结果,然后进行交集运算。但是,我们发 现用户具有如附图8所示的检索历史“专利”与“知识”两个检索单元在80%的情况下、“普及”、“程度”两个检索单元在60%的情况下是捆绑检索的,频度预设阀值若为70%,那么就有必将“专利”和“知识”合并为一个检索单元,合并后的检索语句仅有三个检索单元,仅需分别选取三个索引文档集作为三个检索单元的检索结果,然后对这三个检索结果进行交集运算,这样运算对象得以减少,有效提高了检索系统的性能。实际上,本实施例中的检索单元归并的根据并不限于用户的检索历史,还可以是其他预设规则。比如可以是语言的使用相关性。举例而言检索单元3与检索单元4大多数时候被结合在一起使用,那么就没必要将检索单元3与检索单元4看成两个完全独立的检索单元进行步骤103,而是在进行步骤103之前将该两个检索单元归并为一个检索单元,那么在选取检索单元中索引文档数目最少的索引文档集时,检索单元由原来的2个变成现在的I个,从而减少了交集运算的运算对象,提高了检索系统的性能。实施例十以减少检索单元的数量为目的的归并操作,除实施例九所述的方法外,本发明还优选本实施例的方法。同样地,本实施例的方法是在实施例一的步骤102之后增加检索单元归并步骤,其他步骤内容不变,仅将序号作相应调整。步骤1021 :读取第一检索单元和第二检索单元;步骤1022 :查询预设检索单元关系表,判断是否登记第一检索单元对第二检索单元的唯一限定关系,如果是,则将第一检索单元和第二检索单元归并为第二检索单元;所述预设检索单元关系表登记有一检索单元对另一检索单元的唯一限定关系。比如,检索语句为西藏布达拉宫,该检索语句被按照自然语言拆分为“西藏”、“布达拉宫”两个检索单元,但是,由于人所共知布达拉宫仅有一个,“西藏”这个修饰语在检索中可以略去,因此这两个检索单元可归并为一个检索单元“布达拉宫”,这样并不会发生检索错误,但却减少了检索单元数量,从而提高了检索系统的性能。实施例i^一上述这些实施例中可以在检索语句的字符序列拆分得到检索单元之后对所述检索单元进行规范化处理,从而形成上述实施例的一个变型实施例i^一。规范化处理是对检索单元的检索字符进行语言处理,其主要目的在于方便读取检索单元的各索引文档集。由于创建单字索引系统的索引表时所使用的索引字符为常规形态,没有自然语言中“时”、“数”、大小写等变化,而用户输入的检索语句可能带有“时”、“数”等语言因素,因此,为便于根据检索单元的检索字符获取该检索字符对应的索引文档,必须将带有上述语言变化的检索字符转换为索引字符的形态,即将这些检索字符与索引字符之间建立对应关系。如用户在检索语句中输入了“60”、“冊社”、10”等检索单元的元素,单字索引系统创建的索引表中仅有索引字符“go”,那么由检索单元的检索字符获取索引文档集时,就只能得到“go”检索字符的索引文档集,对于“GO”和“went ”检索字符将不能获得索引文档集,这势必导致检索错误。为此,有必要将“GO”和“went”均与索引字符“go”建立对应关系,这样即可避免检索错误。实现上述过程的步骤为读取检索单元的检索字符,将该检索字符与字典进行比照,如果不是该检索字符的常态形式,则将该检索字符转化为常态形式。经过对拆分出来的检索单元的检索字符进行上述语言处理后,建立了检索单元检索字符与索引字符之间的对应关系,避免了可能出现的检索错误,方便了根据该检索字符对应的索引字符读取索引文档集,加快了后续进程,从而改善了检索系统的整体性能。实施例十二上述所有实施例中可以在完成过滤步骤后对文档进行排序,由此形成实施例十二。排序必须依据一定的规则进行,这里主要介绍相关性排序,其原理如下第一步计算检索单元权重。就单篇文档而言,一个检索单元在该文档中出现频次(Term Frequency,简称tf)越高,该检索单元越重要;频次越少,该检索单元越不重要。频次高的检索单元权重大,在计算文档之间的相关性中发挥作用大。就海量文档而言,一个检索单元在这些文档中出现的频次(Document Frequency,简称df)越高,则该检索单元越不重要,因为该检索单元可能过于普通,不足以区分这些文档。然后采用下述公式计算检索单元的权重
权利要求
1.一种基于单字索引系统的检索方法,其特征在于,该方法包括 接收检索语句; 提取所述检索语句的字符序列,并将该字符序列进行拆分得到检索单元,所述检索单元包括至少一个检索字符; 根据所述检索单元的检索字符查询索引表,获得各检索字符对应的索引文档集;以所述索引文档集为处理对象,进行包括选择操作在内的处理,并将处理结果作为该检索单元的检索结果; 对所述各检索单元的检索结果进行交集运算并返回结果文档集; 用所述各检索单元扫描所述结果文档集以判断所述结果文档集的文档是否包含所述各检索单元,如果是,则返回该文档。
2.根据权利要求I所述的方法,其特征在于,所述以索引文档集为处理对象,进行包括选择操作在内的处理的步骤包括比较所述检索单元的各索引文档集的索引文档数,选择索引文档数最少的索引文档集作为该检索单元的处理结果。
3.根据权利要求I所述的方法,其特征在于,所述以索引文档集为处理对象,进行包括选择操作在内的处理的步骤包括 将所述检索单元的索引文档集划分为至少两个组; 分别将每组的索引文档集进行交集运算,得到各组的运算结果文档集; 比较所述各组的运算结果文档集内的索引文档数,选择索引文档数最少的文档集作为所述检索单元的处理结果。
4.根据权利要求I所述的方法,其特征在于,所述以索引文档集为处理对象,进行包括选择操作在内的处理的步骤包括 将所述检索单元的索引文档集划分为至少两个组; 比较每组内各索引文档集的索引文档数,分别选择索引文档数最少的索引文档集作为该组的选择结果文档集; 对所述各组的选择结果文档集进行交集运算,将交集运算得到的文档集作为所述检索单元的处理结果。
5.根据权利要求I所述的方法,其特征在于,所述检索字符包括单字、词组、成语或短句。
6.根据权利要求I至5中任何一项所述的方法,其特征在于,在拆分检索语句的字符序列得到检索单元之后进一步包括按照第一预设规则对拆分的检索单元进行归并处理。
7.根据权利要求6所述的方法,其特征在于,所述对拆分的检索单元进行归并处理的步骤包括 读取第一检索单元和第二检索单元,根据第一检索单元查询用户检索历史表,所述检索历史表登记有第一检索单元与第二检索单元在同次检索中捆绑检索的频度; 判断所述频度是否超过预设阀值,如果是,则将第一检索单元与第二检索单元归并为一个检索单元。
8.根据权利要求6所述的方法,其特征在于,所述对拆分的检索单元进行归并处理的步骤包括 读取第一检索单元和第二检索单元;查询预设检索单元关系表,判断是否登记第一检索单元对第二检索单元的唯一限定关系,如果是,则将第一检索单元和第二检索单元归并为第二检索单元;所述预设检索单元关系表登记有一检索单元对另一检索单元的唯一限定关系。
9.根据权利要求I至5中任何一项所述的方法,其特征在于,在所述包含各检索单元的文档返回后进一步包括 根据所述各检索单元在返回文档中出现的频率计算各检索单元的权重;根据上述权重计算所述返回文档的相关性分值;根据上述分值对返回文档进行排序。
10.一种基于单字索引系统的检索装置,其特征在于,该装置包括 检索语句接收模块、字符序列提取与拆分模块、索引文档集获取模块、索引文档集处理模块、交集运算模块和判断模块,其中 所述检索语句接收模块,用于接收检索语句; 所述字符序列提取与拆分模块,用于提取所述检索语句的字符序列,并将该字符序列进行拆分得到检索单元,所述检索单元包括至少一个检索字符; 所述索引文档集获取模块,用于根据所述检索单元的检索字符查询索引表获得各检索字符对应的索引文档集; 所述索引文档集处理模块,用于以所述索引文档集为处理对象,进行包括选择操作在内的处理,并将处理结果作为所述检索单元的检索结果; 所述交集运算模块,用于对所述各检索单元的检索结果进行交集运算并返回结果文档集; 所述判断模块,用所述各检索单元扫描所述结果文档集以判断所述结果文档集的文档是否包含所述各检索单元,如果是,则返回该文档。
全文摘要
本发明提供的基于单字索引系统的检索方法包括将检索语句的字符序列拆分为检索单元后,根据检索单元的检索字符查询索引表获取检索字符对应的索引文档集,以所述索引文档集为处理对象,进行包括选择操作在内的处理,将处理结果作为所述检索单元的检索结果;将各检索单元的检索结果进行交集并返回结果文档集;用各检索单元扫描结果文档集以判断是否有同时包含各检索单元的文档,如果是,则返回该文档。本发明还提供基于单字索引系统的检索装置。本发明对检索单元的各索引文档集进行包括选择操作在内的处理,而不直接对所有索引文档集进行交集运算,减少了交集运算对象,改善了索引系统的检索性能。
文档编号G06F17/30GK102810096SQ201110147520
公开日2012年12月5日 申请日期2011年6月2日 优先权日2011年6月2日
发明者杨栋 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1