一种搜索方法和系统的制作方法
【专利摘要】本发明公开了一种搜索方法和系统,方法包括:基于历史高频检索串构建检索串语素签名和倒排索引;所述检索串语素签名和倒排索引为对所述历史高频检索串进行分词后,语素签名和相同的各组检索串的倒排索引数据结构;根据输入匹配系统的原始检索串查询所述检索串语素签名和倒排索引,得到与所述原始检索串语素签名和相同的检索串集合;根据所述检索串集合中的检索串查询高频检索串词表,得到对应的关键词。通过本发明,实现触发粒度更细、搜索结果更全面的关键词和相关素材搜索。
【专利说明】一种搜索方法和系统
【技术领域】
[0001]本发明涉及计算机搜索【技术领域】,尤其涉及一种搜索方法和系统。
【背景技术】
[0002]搜索是指互联网用户使用个人计算机(PO、手机等终端设备,通过向搜索引擎输入框提交检索串(query),在后台匹配系统中触发逻辑相关搜索结果的过程。
[0003]在匹配系统中,目前主要通过以下几种方式进行query到素材的关键词(keyword)之间的触发匹配:
[0004]1、按匹配类型的关键词触发
[0005]在系统数据库中,keyword及其对应的素材会以倒排索引的形式存放;匹配系统会对用户提交的query进行在线分析,找到对应各种匹配类型的keyword,并通过keyword的倒排信息,完成素材的拉取。一个典型的在线分析匹配keyword的方法如下:
[0006]例如,有query:AB⑶(其中A、B、C、D是对query进行分词后的语素,语素是指字符串分词后的最小结果单元),对query的分词语素取组合遍历:
[0007]C (4,4) = {A, B, C,D},
[0008]C (4,3) = {A,B,C},{A,B,D},{A,C,D},{B,C,D},
[0009]C (4,2) = {A,B},{A, C},{A, D},{B,C},{B,D},{C,D},
[0010]C(4,I) = {A}, {B}, {C}, {D}
[0011]用组合结果去检索keyword索引,可以找到当前所有生效的keyword,它们对应各种匹配类型。
[0012]2、用户检索串的纠错、改写触发
[0013]用户在使用搜索引擎的过程中,可能会出现拼写错误或不规范的输入,虽然用户本人(和智能的搜索引擎)可以理解,但是直接用来触发素材可能导致结果不理想。因此,除了正常的query归一化过程,还需要结合离线的历史统计信息,针对性的对输入的query进行纠错、query改写,从而正确触发含有用户检索意图的素材。
[0014]3、历史高频query的离线挖掘扩展
[0015]—种典型的实现方案是,预先统计好历史η天的高频query,使用各种离线挖掘的方法,扩展出高质量的keyword,最终以词表的形式加载到匹配系统中。这样,当用户提交一个已经离线分析过的query时,就可以形成素材keyword的即时触发,起到快速缓存的作用。
[0016]4、匹配系统中keyword的等价扩展补充
[0017]离线挖掘过程解决了大部分高频query的触发问题,但针对长尾query(即低频query,检索次数较少的、不常见的query)的匹配,如果只有在线分析过程,则很难保证匹配结果的数量和质量(往往找到的关键词语义上会形成偏离)。因此,在实际的匹配系统中,还会对已经找到的keyword进行等价补充。通常会大量使用诸如keyword等价聚类、同义替换等技术。[0018]目前一种常见的匹配系统的关键词匹配流程,如图1所示,其应用到前述query的在线分析、高频query的离线挖掘、keyword等价聚类等技术手段。
[0019]在线分析过程找到的keyword往往是query的子串,容易局限于字面内容,而且找到的子串不能保证保留了 query的核心意图,有时语义偏差较大。
[0020]用户检索串的纠错、改写触发可以解决一部分匹配问题,但应用范围较窄,对query的覆盖有限。
[0021]历史高频query的离线扩展,其使用的前提是query的精确命中,粒度太粗,如果query表达有细微变化,即使没有语义的偏移,也无法直接关联已有结果。
[0022]keyword的等价扩展补充也存在触发粒度较粗的问题,等价的聚类关系必须是与在线分析找到的keyword完全匹配,且在线分析找到的keyword还必须是当前生效的。这些限制条件往往导致keyword聚类资源本身不能发挥更大的作用。
[0023]基于此,需要提出一种触发粒度更细、搜索结果更全面的搜索方案,以解决上述不足。
【发明内容】
[0024]有鉴于此,本发明的主要目的在于提供一种搜索方法和系统,以实现触发粒度更细、搜索结果更全面的关键词和相关素材搜索。
[0025]为达到上述目的,本发明的技术方案是这样实现的:
[0026]本发明提供一种搜索方法,该方法包括:
[0027]基于历史高频检索串构建检索串语素签名和倒排索引;所述检索串语素签名和倒排索引为对所述历史高频检索串进行分词后,语素签名和相同的各组检索串的倒排索引数据结构;
[0028]根据输入匹配系统的原始检索串查询所述检索串语素签名和倒排索引,得到与所述原始检索串语素签名相同的检索串集合;
[0029]根据所述检索串集合中的检索串查询闻频检索串词表,得到对应的关键词。
[0030]该方法进一步包括:基于历史高频检索串、以及对所述历史高频检索串进行离线扩展得到的对应扩展检索串,构建检索串语素签名和倒排索引;
[0031]相应的,所述检索串语素签名和倒排索引为对所述历史高频检索串和扩展检索串进行分词后,语素签名和相同的各组检索串的倒排索引数据结构。
[0032]所述根据输入匹配系统的原始检索串查询检索串语素签名和倒排索引,包括:
[0033]对所述原始检索串进行分词得到至少一个语素,并对得到的语素进行哈希运算得到原始检索串的语素签名和,根据运算得到的语素签名和查询所述检索串语素签名和倒排索引。
[0034]在所述根据输入匹配系统的原始检索串查询检索串语素签名和倒排索引之前,该方法进一步包括:
[0035]对输入匹配系统的原始检索串进行在线分析,得到在线分析结果;
[0036]相应的,所述查询检索串语素签名和倒排索引为:对所述在线分析结果进行分词得到至少一个语素,并对得到的语素进行哈希运算得到相应的语素签名和,根据运算得到的语素签名和查询所述检索串语素签名和倒排索引。[0037]所述在线分析包括以下至少一种方式:精确匹配、词组匹配、广泛匹配、核心成分分析。
[0038]该方法进一步包括:预先基于已有的关键词集合构建关键词语素签名和倒排索弓丨,所述关键词语素签名和倒排索引为对所述关键词进行分词后,语素签名和相同的各组关键词的倒排索引数据结构;
[0039]在根据检索串集合中的检索串查询闻频检索串词表,得到对应的关键词后,根据所得关键词查询所述关键词语素签名和倒排索引,得到对应的扩展关键词。
[0040]本发明还提供一种搜索系统,包括:
[0041]检索串语素签名和倒排索引构建模块,用于基于历史高频检索串构建检索串语素签名和倒排索引;所述检索串语素签名和倒排索引为对所述历史高频检索串进行分词后,语素签名和相同的各组检索串的倒排索引数据结构;
[0042]检索串语素签名和倒排索引查询模块,用于根据输入匹配系统的原始检索串查询所述检索串语素签名和倒排索引,得到与所述原始检索串语素签名和相同的检索串集合;
[0043]高频检索串词表查询模块,用于根据所述检索串集合中的检索串查询高频检索串词表,得到对应的关键词关键词。
[0044]所述检索串语素签名和倒排索引构建I吴块进一步用于,基于历史闻频检索串、以及对所述历史高频检索串进行离线扩展得到的对应扩展检索串,构建检索串语素签名和倒排索引;
[0045]相应的,所述检索串语素签名和倒排索引为对所述历史高频检索串和扩展检索串进行分词后,语素签名和相同的各组检索串的倒排索引数据结构。
[0046]所述检索串语素签名和倒排索引查询模块进一步用于,对所述原始检索串进行分词得到至少一个语素,并对得到的语素进行哈希运算得到原始检索串的语素签名和,根据运算得到的语素签名和查询所述检索串语素签名和倒排索弓I。
[0047]所述检索串语素签名和倒排索引查询模块进一步用于,在根据输入匹配系统的原始检索串查询检索串语素签名和倒排索引之前,对输入匹配系统的原始检索串进行在线分析,得到在线分析结果;
[0048]相应的,所述查询检索串语素签名和倒排索引为:对所述在线分析结果进行分词得到至少一个语素,并对得到的语素进行哈希运算得到相应的语素签名和,根据运算得到的语素签名和查询所述检索串语素签名和倒排索引。
[0049]所述在线分析包括以下至少一种方式:精确匹配、词组匹配、广泛匹配、核心成分分析。
[0050]该系统还包括:
[0051]关键词语素签名和倒排索引构建模块,用于预先基于已有的关键词集合构建关键词语素签名和倒排索引,所述关键词语素签名和倒排索引为对所述关键词进行分词后,语素签名和相同的各组关键词的倒排索引数据结构;
[0052]关键词语素签名和倒排索引查询模块,用于在所述高频检索串词表查询模块根据检索串集合中的检索串查询闻频检索串词表,得到对应的关键词后,所述关键词语素签名和倒排索引查询模块根据所得关键词查询所述关键词语素签名和倒排索引,得到对应的扩展关键词。[0053]本发明所提供的一种搜索方法和系统,基于历史高频query构建QSSII索引,能够增加query的匹配深度;对query在线分析与QSSII索引查询的结合,能进一步丰富query的触发粒度,从而使得关键词和相关素材的搜索结果更全面。
【专利附图】
【附图说明】
[0054]图1为现有技术中一种匹配系统的关键词匹配流程示意图;
[0055]图2为本发明实施例的一种搜索方法的流程图;
[0056]图3为本发明实施例中QSSII索引的基本原理示意图;
[0057]图4为本发明实施例中query在线分析与QSSII索引结合使用的基本原理示意图;
[0058]图5为本发明实施例中KSSII索引的基本原理示意图;
[0059]图6为本发明实施例的一种搜索系统的结构示意图。
【具体实施方式】
[0060]下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
[0061]本发明提供一种搜索方法的实施例,如图2所示,该方法主要包括:
[0062]步骤201,基于历史高 频 query 构建(QSSII, Query Signature Summary InvertedIndex)索引;所述QSSII索引即为检索串语素签名和倒排索引,是对所述历史高频query进行分词后,语素签名和相同的各组query的倒排索引数据结构。
[0063]语素是指query分词后的最小结果单元。语素签名(Signature)采用语素的md5哈希值。QSSII索引可以以表的形式存在。例如,以下几个query:
[0064]ABCD,ABCD,DCBA, ABDC, ABC, ABC, CBA (其中 A、B、C、D 代表分词后的语素);
[0065]它们的语素签名分别为SignABCD,SignABCD,SignDCBA, SignABDC, SignABC,SignABC, SignCBA,语素 A、B、C、D 的签名分别为 SignA、SignB、SignC、SignD。
[0066]令Signl = SignA+SignB+SignC+SignD, Sign2 = SignA+SignB+SignC。则将这些数据加入QSSII索引后,QSSII索引中的索引内容为:
[0067]
Signl ~〈SignABCD,2>,〈SignDCBA,1>,〈SignABDC,1>
Sign2 〈SignABC,2>, 〈SignCBA,1>
[0068]其中,Signl、Sign2即表示语素签名和;〈SignABCD,2>中的2代表SignABCD对应的计数(count)值为2,表示在历史高频query中,检索串AB⑶的出现次数为2。
[0069]query加入QSSII索引的操作为:如果该query的语素签名不在QSSII索引中,则将该query加入QSSII索引中,并将其对应的count置为I ;如果该query的语素签名在QSSII索引中,则将对应的count加I。
[0070]作为一种较佳的实施方式,可以基于历史高频query、以及对所述历史高频query进行离线扩展得到的对应扩展query,构建QSSII索引;相应的,所述QSSII索引为对所述历史高频query和扩展query进行分词后,语素签名和相同的各组query的倒排索引数据结构。本发明将通过这种较佳的实施方式所构建的QSSII索引称为EQSSII (Expand QuerySignature Summary Inverted Index)、即扩展检索串语素签名和倒排索引。
[0071]历史高频query扩展资源在匹配系统中以词表形式加载,对应map数据结构,即数据结构分为左键和右键,左键为历史高频query,右键为一系列离线挖掘到的对应相关的扩展 query。
[0072]需要说明的是,QSSII索引和EQSSII索引的内部结构以及构建操作都是相同的,只是QSSII索引的数据源为历史高频query,EQSSII索引的数据源为历史高频query和扩展query。为描述方便,除特殊说明,本发明实施例后续描述中的QSSII索引包括QSSII索引和EQSSII索引。
[0073]QSSII索引的引入,将所有分词结果的语素签名和相同的query聚合到了一起。例如:“北京鲜花快递”、“鲜花北京快递”、“快递北京鲜花”之间是等价的,命中了“北京鲜花快递”,也即命中了其他两个等价的query,它们的keyword结果可以补充给“北京鲜花快递”。
[0074]如图3所示,为QSSII索引的基本原理。其中,query_hash表示query (ABO))分词后的语素签名和;{query_l, query_2, , query_n}为与query分词语素签名和相同的其他高频query和/或扩展query。在高频query词表索引中,左键为高频query和/或扩展query,右键为一系列离线挖掘的相应keyword ;如keyword_nl, keyword_n2...表示query_n的离线扩展结果。基本的索引过程为:首先对原始query进行分词,计算分词后各个语素签名的和;根据所述语素签名的和查询QSSII索引,从而得到与原query意图相近(即query_hash相同)的一系列query (也称query集合),再通过高频query词表找到相关的 keyword。
[0075]步骤202,根据输入匹配系统的原始query查询所述QSSII索引,得到与所述原始query语素签名和相同的query集合。
[0076]对所述原始query进行分词得到至少一个语素,并对得到的语素进行哈希运算得到原始query的语素签名和,根据运算得到的语素签名和查询所述QSSII索引,得到与所述原始query语素签名和相同的query集合。
[0077]较佳的,在所述根据输入匹配系统的原始query查询QSSII索引之前,可以对输入匹配系统的原始query进行在线分析,得到在线分析结果;
[0078]相应的,所述查询QSSII索引为:对所述在线分析结果进行分词得到至少一个语素,并对得到的语素进行哈希运算得到相应的语素签名和,根据运算得到的语素签名和查询所述QSSII索引。
[0079]所述在线分析包括以下至少一种方式:精确匹配、词组匹配、广泛匹配、核心成分分析、其他匹配类型等等。
[0080]QSSII索引的引入,增加了 query的匹配深度;对query在线分析结果的使用则能进一步丰富触发的粒度。如图4所示,为query在线分析与QSSII索引结合使用的基本原理图。可以看到,对query的在线分析过程,即是依据各种匹配类型对其实现多粒度抽取的过程。前述提到的query直接分词查找QSSII索引,就对应query精确匹配的情况。匹配类型和算法越精细,在线分析结果越丰富,通过QSSII索引找到的keyword就越多。考虑相关性,可以对在线分析的结果排一个优先级来使用,例如,设置精确匹配的优先级高于长串的词组匹配,长串的词组匹配的优先级高于短串的广泛匹配等。为控制结果数量,还可以设置阈值,例如,限制在线分析结果的使用数量,过滤经过QSSII索引找到的高频query扩展结果的得分,控制不同触发方法在所有候选keyword中的比例等。
[0081]经过这个逻辑的补充,将在线分析过程的结果充分利用起来,再经过高频query索引的大量补充,可以触发更多的keyword,能够提高query的覆盖率。
[0082]实际应用中,query核心成分分析的实现方法很多,例如可以考虑原始query分词后语素的分类结果与原始query的类别是否一致,可以引入不同行业的专有名词词典提高分词的准确性,分词结果的固定搭配和历史统计结果参考等。
[0083]步骤203,根据所述query集合中的query查询高频query词表,得到对应的关键词 keyword。
[0084]类比QSSII索弓I,可以预先基于已有的keyword集合构建KSSII (KeywordSignature Summary Inverted Index)索引,所述KSSII索引即为关键词语素签名和倒排索弓丨,是对所述keyword进行分词后,语素签名和相同的各组keyword的倒排索引数据结构;这样,所有keyword分词后各语素签名和相同的,也能聚合到一组,从而形成keyword签名的倒排索引数据结构;KSSII索引的原理图如图5所示。
[0085]那么,在根据query集合中的query查询高频query词表,得到对应的keyword后,可以根据所得keyword查询所述KSSII索引,得到对应的扩展keyword。
[0086]也就是说,在实际检索时,可以将QSSII索引与KSSII索引结合使用。例如,当对高频query查询QSSII索引,找到相应的表项后,即可得到很多候选的keyword ;再用这些keyword去直接检索KSSII索引,就可形成进一步的等价扩展。或者通过其他方法找到的keyword,也都可以直接用KSSII索引做扩展,从而找到更多的keyword。
[0087]本发明实施例中通过搜索找到的keyword作为触发条件,实现对匹配系统中的素材的拉取。
[0088]本发明还提供了一种搜索系统的实施例,如图6所示,该系统主要包括=QSSII索引构建模块10、QSSII索引查询模块20和高频query词表查询模块30。
[0089]其中,QSSII索引构建模块10,用于基于历史高频query构建QSSII索引;所述QSSII索引为对所述历史高频query进行分词后,语素签名和相同的各组query的倒排索引数据结构;
[0090]QSSII索引查询模块20,用于根据输入匹配系统的原始query查询所述QSSII索弓丨,得到与所述原始query语素签名和相同的query集合;
[0091 ] 高频query词表查询模块30,用于根据所述query集合中的query查询高频query词表,得到对应的关键词keyword。
[0092]较佳的,QSSII索引构建模块10进一步用于,基于历史高频query、以及对所述历史高频query进行离线扩展得到的对应扩展query,构建QSSII索引;
[0093]相应的,所述QSSII索引为对所述历史高频query和扩展query进行分词后,语素签名和相同的各组query的倒排索引数据结构。
[0094]较佳的,QSSII索引查询模块20进一步用于,对所述原始query进行分词得到至少一个语素,并对得到的语素进行哈希运算得到原始query的语素签名和,根据运算得到的语素签名和查询所述QSSII索引。
[0095]较佳的,QSSII索引查询模块20进一步用于,在根据输入匹配系统的原始query查询QSSII索引之前,对输入匹配系统的原始query进行在线分析,得到在线分析结果;[0096]相应的,所述查询QSSII索引为:对所述在线分析结果进行分词得到至少一个语素,并对得到的语素进行哈希运算得到相应的语素签名和,根据运算得到的语素签名和查询所述QSSII索引。
[0097]所述在线分析包括以下至少一种方式:精确匹配、词组匹配、广泛匹配、核心成分分析。
[0098]较佳的,该系统还包括:
[0099]KSSII索引构建模块40,用于预先基于已有的keyword集合构建KSSII索引,所述KSSII索引为对所述keyword进行分词后,语素签名和相同的各组keyword的倒排索引数据结构;
[0100]KSSII索引查询模块50,用于在所述高频query词表查询模块30根据query集合中的query查询高频query词表,得到对应的keyword后,所述KSSII索引查询模块根据所得keyword查询所述KSSII索引,得到对应的扩展keyword。
[0101]以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
【权利要求】
1.一种搜索方法,其特征在于,该方法包括: 基于历史高频检索串构建检索串语素签名和倒排索引;所述检索串语素签名和倒排索引为对所述历史高频检索串进行分词后,语素签名和相同的各组检索串的倒排索引数据结构; 根据输入匹配系统的原始检索串查询所述检索串语素签名和倒排索引,得到与所述原始检索串语素签名相同的检索串集合; 根据所述检索串集合中的检索串查询高频检索串词表,得到对应的关键词。
2.根据权利要求1所述搜索方法,其特征在于,该方法进一步包括:基于历史高频检索串、以及对所述历史高频检索串进行离线扩展得到的对应扩展检索串,构建检索串语素签名和倒排索引; 相应的,所述检索串语素签名和倒排索引为对所述历史高频检索串和扩展检索串进行分词后,语素签名和相同的各组检索串的倒排索引数据结构。
3.根据权利要求1所述搜索方法,其特征在于,所述根据输入匹配系统的原始检索串查询检索串语素签名和倒排索引,包括: 对所述原始检索串进行分词得到至少一个语素,并对得到的语素进行哈希运算得到原始检索串的语素签名和,根据运算得到的语素签名和查询所述检索串语素签名和倒排索引。
4.根据权利要求3所 述搜索方法,其特征在于,在所述根据输入匹配系统的原始检索串查询检索串语素签名和倒排索引之前,该方法进一步包括: 对输入匹配系统的原始检索串进行在线分析,得到在线分析结果; 相应的,所述查询检索串语素签名和倒排索引为:对所述在线分析结果进行分词得到至少一个语素,并对得到的语素进行哈希运算得到相应的语素签名和,根据运算得到的语素签名和查询所述检索串语素签名和倒排索引。
5.根据权利要求4所述搜索方法,其特征在于,所述在线分析包括以下至少一种方式:精确匹配、词组匹配、广泛匹配、核心成分分析。
6.根据权利要求1至5任一项所述搜索方法,其特征在于,该方法进一步包括:预先基于已有的关键词集合构建关键词语素签名和倒排索引,所述关键词语素签名和倒排索引为对所述关键词进行分词后,语素签名和相同的各组关键词的倒排索引数据结构; 在根据检索串集合中的检索串查询闻频检索串词表,得到对应的关键词后,根据所得关键词查询所述关键词语素签名和倒排索引,得到对应的扩展关键词。
7.一种搜索系统,其特征在于,包括: 检索串语素签名和倒排索引构建模块,用于基于历史高频检索串构建检索串语素签名和倒排索引;所述检索串语素签名和倒排索引为对所述历史高频检索串进行分词后,语素签名和相同的各组检索串的倒排索引数据结构; 检索串语素签名和倒排索引查询模块,用于根据输入匹配系统的原始检索串查询所述检索串语素签名和倒排索引,得到与所述原始检索串语素签名和相同的检索串集合; 高频检索串词表查询模块,用于根据所述检索串集合中的检索串查询高频检索串词表,得到对应的关键词关键词。
8.根据权利要求7所述搜索系统,其特征在于,所述检索串语素签名和倒排索引构建模块进一步用于,基于历史高频检索串、以及对所述历史高频检索串进行离线扩展得到的对应扩展检索串,构建检索串语素签名和倒排索引; 相应的,所述检索串语素签名和倒排索引为对所述历史高频检索串和扩展检索串进行分词后,语素签名和相同的各组检索串的倒排索引数据结构。
9.根据权利要求7所述搜索系统,其特征在于,所述检索串语素签名和倒排索引查询模块进一步用于,对所述原始检索串进行分词得到至少一个语素,并对得到的语素进行哈希运算得到原始检索串的语素签名和,根据运算得到的语素签名和查询所述检索串语素签名和倒排索引。
10.根据权利要求9所述搜索系统,其特征在于,所述检索串语素签名和倒排索引查询模块进一步用于,在根据输入匹配系统的原始检索串查询检索串语素签名和倒排索引之前,对输入匹配系统的原始检索串进行在线分析,得到在线分析结果; 相应的,所述查询检索串语素签名和倒排索引为:对所述在线分析结果进行分词得到至少一个语素,并对得到的语素进行哈希运算得到相应的语素签名和,根据运算得到的语素签名和查询所述检索串语素签名和倒排索引。
11.根据权利要求10所述搜索系统,其特征在于,所述在线分析包括以下至少一种方式:精确匹配、词组匹配、广泛匹配、核心成分分析。
12.根据权利要求7至11任一项所述搜索系统,其特征在于,该系统还包括: 关键词语素签名和倒排索引构建模块,用于预先基于已有的关键词集合构建关键词语素签名和倒排索引,所述关键词语素签名和倒排索引为对所述关键词进行分词后,语素签名和相同的各组关键词的倒排索引数据结构; 关键词语素签名和倒排索引查询模块,用于在所述高频检索串词表查询模块根据检索串集合中的检索串查询闻 频检索串词表,得到对应的关键词后,所述关键词语素签名和倒排索引查询模块根据所得关键词查询所述关键词语素签名和倒排索引,得到对应的扩展关键词。
【文档编号】G06F17/30GK103810213SQ201210457609
【公开日】2014年5月21日 申请日期:2012年11月14日 优先权日:2012年11月14日
【发明者】赫南, 姚伶伶, 刘小兵, 王迪, 杨俊丽, 王艳敏 申请人:腾讯科技(深圳)有限公司