一种建立输入建议的数据处理方法和系统的制作方法
【技术领域】
[0001] 本发明涉及搜索领域,尤其涉及一种建立输入建议的数据处理方法和系统。
【背景技术】
[0002] 搜索引擎是用于对互联网上的信息资源进行搜集整理,然后为用户提供查询的系 统,它包括信息搜集、信息整理和用户查询。通常,用户在搜索引擎中输入关键词进行检索, 搜索引擎从索引数据库中找到匹配该关键词的内容反馈给用户。
[0003] 目前,许多搜索引擎提供与用户原始搜索查询相关的一系列建议的搜索查询。所 述一系列建议的搜索查询又称为输入建议,是指在输入框输入的过程中,根据当前的部分 输入,提示建议的完整的输入字符串。例如,搜索引擎可以包括接收文本输入的查询输入区 域,搜索服务提供针对该文本输入的搜索查询建议,用户可以选择一个搜索查询建议作为 搜索查询词。输入建议,主要用于在用户输入的过程中根据已有的部分输入,推荐用户可能 输入的完整文本,辅助启发用户快速完成文本输入。例如,用户的原始搜索查询是"中",搜 索引擎可以建议与之相关的搜索查询为"中国"、"中心"、以及"中医"等。
[0004] 目前提供输入建议的方法主要包括:生成输入建议线下索引和提供线上输入建议 两个部分。所述生成输入建议线下索引部分,可以称为建立输入建议,可以包括:为全部推 荐的词条列举出所有前缀;对于前缀相同的不同词条进行合并,并为合并了前缀的推荐词 条生成倒排索引;对每一个前缀的倒排索引根据具体业务需要进行排序,然后截取最重要 的前N个词条作为该前缀的输入建议,生成前缀索引。所述提供线上输入建议可以包括:根 据用户在文本框中的当前输入查找所述前缀索引,根据所述前缀索引返回索引记录,所述 索引记录即为提供的输入建议。
[0005] 在实现本申请过程中,发明人发现现有的建立输入建议的技术中至少存在如下问 题:
[0006] 由于推荐词条数据较多,而每一个推荐词条的完整列出的前缀数目也很多,因此 全部推荐词条所列举出的所有前缀的数量非常庞大,而根据上述数量非常庞大的所有前缀 所建立的倒排索引中,有大量的索引项几乎不会被用到,例如一些前缀长度较长的索引项, 如果较短前缀所指向的词条较少,建立的索引中完全可以包括所述较长前缀所指向的词 条,那么该较长前缀的索引项就不会被用到。上述说明可以看出,该方法建立的输入建议索 引中存在冗余。
【发明内容】
[0007] 本发明的目的在于提供一种提供输入建议的方法和系统,以实现降低建立的输入 建议索引的冗余程度。
[0008] -种建立输入建议的数据处理方法,包括:
[0009] 为每一词条生成长度小于或等于第一长度的前缀,并将所述前缀作为当前前缀, 将所述第一长度作为当前长度;
[0010] 合并所有当前前缀中内容相同的前缀,为合并后的当前前缀和对应的词条生成倒 排索引;
[0011] 判断所述倒排索引中每一前缀指向词条的个数是否大于预设值N,以及:
[0012] 若所述倒排索引中存在指向词条个数大于N的前缀,对倒排索引中词条个数大于 N的前缀截取词条;根据倒排索引中前缀长度等于当前长度且词条个数为(N+1)的前缀,更 新当前前缀和当前长度,将更新后的当前前缀和当前长度返回至合并前缀的步骤重新进行 处理;
[0013] 若每一前缀指向词条的个数均小于或等于N,则将所述倒排索引作为建立的输入 建议索引进行输出。
[0014] 优选方案中,所述对倒排索引中词条个数大于N的前缀截取词条,包括:对倒排索 引中词条个数大于N的前缀,若前缀长度小于当前长度,截取前缀指向的前N个词条,若前 缀长度等于当前长度,截取前缀所指向的前(N+1)个词条。
[0015] 优选方案中,所述根据倒排索引中前缀长度等于当前长度且词条个数为(N+1)的 前缀,更新当前前缀和当前长度,包括:根据词条内容将所述前缀长度等于当前长度且词条 个数为(N+1)的前缀增加一个字节,形成新的前缀,将新增了前缀的所有前缀的作为更新后 的当前前缀,将当前长度加1作为更新后的当前长度。
[0016] 优选方案中,所述第一长度的取值最小为3。
[0017] 优选方案中,所述N的取值最小为5。
[0018] 优选方案中,所述方法中为每一词条生成长度小于或等于第一长度的前缀之前, 还包括:对词条进行预处理;所述对词条进行预处理至少包括下述方式之一:
[0019] 去除词条中无意义的字符;所述无意义的字符包括空格、标点符号;
[0020] 将词条内容中的大小写以及简繁体进行统一。
[0021] 一种建立输入建议的数据处理系统,包括:前缀生成单元、倒排索引生成单元、第 一判断单元、判断截取单元、更新单元;其中,
[0022] 所述前缀生成单元,用于为每一词条生成长度小于或等于第一长度的前缀,将所 述前缀作为当前前缀,将所述第一长度作为当前长度;
[0023] 所述倒排索引生成单元,用于合并当前前缀中内容相同的前缀,为合并后的当前 前缀及前缀对应的词条生成倒排索引;
[0024] 所述第一判断单元,用于判断所生成的倒排索引中每一前缀指向词条的个数是否 大于N,若词条个数大于N,则进入判断截取单元进行处理,若每一前缀指向词条的个数均 小于或等于N,则将所述倒排索引作为建立的输入建议索引进行输出;
[0025] 所述判断截取单元,用于对倒排索引中对于词条个数大于N的前缀截取词条;
[0026] 所述更新单元,用于根据倒排索引中前缀长度等于当前长度且词条个数为(N+1) 的前缀,更新当前前缀和当前长度,将更新后的当前前缀和当前长度返回至倒排索引生成 单元重新进行处理。
[0027] 优选方案中,所述判断截取单元包括:长度判断单元、截取单元;其中,
[0028] 所述长度判断单元,用于判断当前前缀中每一个前缀的长度是否小于当前长度;
[0029] 所述截取单元,用于对长度判断单元的结果中前缀长度小于当前长度的前缀所指 向的词条截取前N个词条,对长度判断单元结果中前缀长度等于当前长度的前缀所指向的 词条截取前(N+1)个词条。
[0030] 优选方案中,所述更新单元包括:前缀更新单元、当前长度更新单元;其中,
[0031] 所述前缀更新单元,用于对长度判断单元的结果中前缀长度等于当前长度的前 缀,根据词条内容将所述前缀内容增加一个字节,形成新的前缀,将新增了前缀的所有前缀 的更新为当前前缀;
[0032] 所述当前长度更新单元,用于将当前长度加1作为更新后的当前长度。
[0033] 优选方案中,所述倒排索引生成单元包括:合并单元、索引单元;其中,
[0034] 所述合并单元,用于对所有当前前缀中内容相同的前缀进行合并;
[0035] 所述索引单元,用于为合并后的当前前缀和前缀对应的词条生成倒排索引。
[0036] 优选方案中,所述第一判断单元包括:个数判断单元、输出单元;其中,
[0037] 所述个数判断单元,用于判断倒排索引生成单元生成的倒排索引中当前前缀中每 一前缀指向的词条的个数是否大于N个;
[0038] 所述输出单元,用于输出倒排索引,具体地,若个数判断单元的判断结果中,每一 前缀指向词条的个数均小于或等于N个,则输出倒排索引生成单元中的倒排索引结果。
[0039] 优选方案中,所述建立输入建议的数据处理系统,还包括:词条预处理单元;所述 词条预处理单元,用于为每一词条进行预处理。
[0040] 一种基于所述建立输入建议的数据处理方法建立的索引提供输入建议的方法,包 括:
[0041] 设置第二长度,判断接收到的查询串的长度是否大于第二长度,对长度小于或者 等于第二长度的查询串,将其对应的倒排索引作为输入建议的结果;
[0042] 对于长度大于第二长度的查询串,根据第二长度对所述查询串进行截断;
[0043] 判断截断后的查询串对应的倒排索引中词条数是否大于N,词条数大于N的,更新 第二长度,返回更新后的第二长度重新进行截断,直至查询串截断后所对应的词条数小于 或等于N;
[0044] 对于长度大于第二长度且查询串截断后词条数小于或等于N的查询串,过滤掉不 匹配的词条;
[0045] 输出查询串的输入建议结果。
[0046] 优选方案中,所述更新第二长度包括:将第二长度加1作为更新后的第二长度。
[0047] 优选方案中,所述过滤掉不匹配的词条,具体包括:将截断的查询串对应的所有词 条和查询串从第一个字符开始进行一一比对,将词条中前x个字符与查询串不完全相同的 词条过滤掉;所述x表示查询串的长度。
[0048] 优选方案中,所述将截断的查询串查找到的倒排索引中的所有词条和查询串进行 一一比对,包括:在进行比对的过程中,当查询串与词条的字符不是相同的语言时,将查询 串和词条中的内容都转换为拼音后再进行比对。
[0049] 优选方案中,所述输出查询串的输入建议结果,包括:对于查询串长度小于第二长 度的,直接输出对应的词条作为查询串的输入建议结果;对于截断后查询不到相同的索引 的,返回空值作为查询串的输入建议结果;对于截断后进行查询的索引,将过滤掉不匹配的 词条的结果作为查询串的输入建议结果。
[0050] 优选方案中,所述设置第二长度包括:设置第二长度的值等于第一长度的值。
[0051]一种基于所述建立输入建议的数据处理系统建立的索引提供输入建议的系统,包 括:长度查询单元、查询串截断单元、判断更新单元、过滤单元、建议输出单元;其中,
[0052]所述长度查询单元,用于设置第二长度,查询接收到的查询串的长度是否大于第 二长度,对查询串的长度小于或者等于第二长度的,将其对应的倒排索引作为输入建议的 结果;
[0053]所述查询串截断单元,用于对于长度大于第二长度的查询串,根据第二长度对所 述查询串进行截断;
[0054]所述判断更新单元,用于判断截断后的查询串对应的倒排索引中词条数是否大于N,词条数大于N的,更新第二长度值并返回至查询串截断单元重新进行截断,直至查询串 截断后词条数小
于或等于N;
[0055]所述过滤单元,用于对长度大于第二长度且查询串截断后词条数小于或等于N的 查询串,过滤掉不匹配的词条;
[0056]所述建议输出单兀,用于输出查询串的输入建议结果。
[0057]优选方案中,所述判断更新单元,包括:词条数判断单元、第二长度更新单元、返回 单元;其中,
[0058]所述词条数判断单元,用于判断所述查询串截断单元截断后的查询串对应的倒排 索引中词条数是否大于N;
[0059]所述第二长度更新单元,用于将第二长度加1作为更新后的第二长度;
[0060]所述返回单元,用于将所述词条数判断单元中判断结果为词条数大于N的查询串 和所述第二长度更新单元更新后的第二长度,返回至查询串截断单元。
[0061]优选方案中,所述过滤单元,包括:识别转换单元、比对筛选单元;其中,
[0062]所述识别转换单元,用于识别查询串与词条的内容是否属于同一种语言,若不是, 转换查询串或词条的语言,使两者的语言相同;
[0063]所述比对筛选单元,用于将截断的查询串对应的所有词条和查询串的内容从第一 个字符开始进行一一比对,剔除不匹配的词条。
[0064]本申请建立输入建议索引的数据处理方法和系统,建立前缀与词条的对应关系 后,对同一个前缀所指向的词条的个数进行判断,当同一个前缀相关的词条数目太多时,就 对该前缀增加前缀长度,使前缀得到进一步细化,再重新建立细化后的前缀与词条的关系。 这样,随着前缀长度的增加,前缀指向的词条数就减少,形成了一个根据词条数目分布的可 变前缀长度的倒排索引,从而避免建立的倒排索引中产生大量几乎不会被用到的索引项, 这样建立的输入建议索引的冗余程度就得到了降低。
[0065]本申请根据建立的输入建议索引提供输入建议的方法和系统,当接收到的查询串 长度大于或等于第二长度时,根据第二长度对查询串进行截断,截断后的查询串对应的词 条数目大于N时,临时提高第二长度的值对查询串重新进行截断,保证查询到的词条数目 小于或等于N;另外,在查询串原来长度大于第二长度且查询到的词条数小于或等于N的, 可以通过比对的方法过滤掉与查询串不匹配的词条,保证词条与接收到的查询串相对应。 上述方法采用动态增加前缀长度的方式,可以保证查询到的词条数目不超过N个,这样在 需要进行比对时,可以减少比对的计算量,提高提供输入建议的效率。
[0066] 此外,根据建立的输入建议索引提供输入建议的方法和系统,在比对过程中,如果 将查询串和词条中的内容都转换为utf-8编码后再进行比对,还可以解决中文和拼音混和 输入的问题。
【附图说明】
[0067]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提 下,还可以根据这些附图获得其他的附图。
[0068] 图1是本申请建立输入建议索引的数据处理方法实施例的流程图;
[0069] 图2是本申请建立输入建议索引的数据处理系统实施例的组成结构图;
[0070] 图3是本申请数据处理系统实施例中倒排索引生成单元的组成结构图;
[0071] 图4是本申请数据处理系统实施例中第一判断单元的组成结构图;
[0072] 图5是本申请数据处理系统实施例中判断截取单元的组成结构图;
[0073] 图6是本申请数据处理系统实施例中更新单元的组成结构图;
[0074] 图7是本申请根据建立的输入建议索引提供输入建议的方法实施例的流程图;
[0075] 图8是本申请根据建立的输入建议索引提供输入建议的系统实施例的组成结构 图;
[0076] 图9是本申请提供输入建议的系统实施例中判断更新单元的组成结构图;
[0077] 图10是本申请提供输入建议的系统实施例中过滤单元的组成结构图。
【具体实施方式】
[0078] 为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实 施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施 例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通 技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护 的范围。
[0079] 图1是本申请中建立输入建议索引的数据处理方法的流程图。如图1所示,本申 请建立输入建议索引的数据处理方法包括:
[0080] S101 :为每一词条生成长度小于或等于第一长度的前缀,将所述前缀作为当前前 缀,将所述第一长度作为当前长度。
[0081] 首先为每一词条生成长度小于或等于第一长度的前缀。中文单字的utf-8编码 (8-bitUnicodeTransformationFormat,也称为万国码)通常占用3个字节的长度,例如 "中"的utf-8编码为"\xe4\xb8\xad";所以所述第一长度一般至少取3。通常一个英文字 母占用一个字节的长度,因此,第一长度为3时,每一个词条的拼音只生成包含三个字符及 三个以下字符的前缀。将所述长度小于或等于第一长度的前缀作为当前前缀,将所述第一 长度作为当前长度。
[0082] 以"中国石化"这一词条为例,长度小于或等于3的前缀可以包括:中文单字"中" 和拼音 "zhongguoshihua" 中的 "Z"、"ZH"、"ZH0"。
[0083]S102:合并所有当前前缀中内容相同的前缀,为合并后的当前前缀和对应的词条 生成倒排索引。
[0084] 对于不同的词条,可能会出现相同的前缀,为了生成的倒排索引中前缀具有唯一 性,需要将内容相同的当前前缀进行合并,并为合并后的当前前缀生成倒排索引,所述倒排 索引中包括前缀和前缀指向的词条。
[0085] 例如,对于两个词条"中国石化"和"中关村",当前长度为3时,词条"中国石化" 的前缀与前缀指向的词条的关系如表1所示,词条"中关村"的前缀与前缀指向的词条的关 系如表2所示。
[0086] 表1词条"中国石化"的前缀与前缀指向的词条的关系
[0088] 表2词条"中关村"的前缀与前缀指向的词条的关系
[0090] 将表1和表2中相同的前缀进行合并,并生成倒排索引,表3所示为合并前缀后生 成的倒排索引中前缀与前缀指向的词条的关系。
[0091] 表3合并前缀后生成的倒排索引中前缀与前缀指向的词条的关系
[0093] S103:判断所述倒排索引中每一前缀指向词条的个数是否大于预设值N,若词条 个数大于N,则进入截取词条的步骤进行处理,若每一前缀指向词条的个数均小于或等于 N,则将所述倒排索引作为建立的输入建议索引进行输出。
[0094] 该步骤中,N为预设值;所述N的值可以根据需要进行选取,一般N至少为5。若一 个前缀对应的词条数大于N个,表示该前缀对应的可以提供的建议过多,其中部分词条可 能不能被显示出来,这就需要对这些前缀及其指向的词条作进一步处理。若所述倒排索引 中每一个前缀对应的词条数均小于或等于N个,则表示每一个前缀对应的词条都能够作为 输入建议,不会产生冗余,此时所述倒排索引即为建立好的输入建议索引。
[0095] 例如,表4所示的是生成的倒排列索引中前缀与前缀指向的词条之间的关系。若 N取值为5,则表4中,前缀"Z"和"ZH"指向的词条分别有6个,那么这两个前缀及其指向 的词条需要进行进一步处理。而其余的前缀所指向的词条均小于5个,不需要进行进一步 处理。
[0096] 表4倒排列索引中前缀与前缀指向的词条之间的关系
[0098] S104 :对倒排索引中词条个数大于N的前缀截取词条。
[0099] 对S103中所指向的词条数目大于N个的前缀截取词条,具体包括:对于前缀长度 小于当前长度的前缀,截取其所指向的词条中的前N个词条,对于前缀长度等于当前长度 的前缀,截取其所指向的词条中的前(N+1)个词条。
[0100] 例如,表5所示为当前长度为3时生成的倒排索引中前缀与前缀指向的词条之间 的关系。按照上述截取原则截取后,结果如表6所示。
[0101] 表5当前长度为3时生成的倒排索引中前缀与前缀指向的词条之间的关系
[0104] 表6截取后的前缀与前缀指向的词条之间的关系
[0106] S105 :根据倒排索引中前缀长度等于当前长度且词条个数为(N+1)的前缀,更新 当前前缀和当前长度,将更新后的当前前缀和当前长度返回至合并前缀的步骤重新进行处 理。
[0107] 对倒排索引中前缀长度等于当前长度的前缀且词条个数为(N+1)的,根据词条内 容将前缀内容增加一个字节,新增的字节可以是中文前缀所对应的每一个词条中与前缀内 容相邻的下一个字节的中文utf-8编码,也可以是拼音前缀对应每一个词条中与前缀相邻 的下一个拼音字母;所述新增了字节的前缀形成新的前缀;将包括新的前缀的所有前缀作 为更新后的当前前缀,将当前长度值加1作为更新后的长度值,将更新后的当前前缀和当 前长度返回至合并前缀的步骤重新进行处理。
[0108] 例如表6中的前缀及其指向的词条,前缀"中"和"ZH0"的前缀长度等于3,且这 两个前缀指向的词条个数大于5,那么,根据这两个前缀指向的词条将前缀的内容增加一个 字节。增加的字节可以是中文前缀对应每一个词条中与前缀相邻的下一个中文utf-8编 码,例如中文前缀"中"对应的每一个词条中与前缀"中"相邻的下一个字节的中文utf-8 编码,包括:中文"国"、"关"、"通"的utf-8编码中的第一个字节,"国"的utf-8编码为 \xe5\x9b\xbd,"关"的utf-8 编码为 \xe5\x85\xb3, "通"的utf-8 编码为 \xe9\x80\x9a, 所以,增加的字节可以是" \xe5"或" \xe9" ;增加的字节还可以是拼音前缀对应每一个词条 中与前缀相邻的下一个拼音字母,例如与拼音前缀"ZH0"相邻的拼音字母"N"。因此,对于 表6中的前缀,新的前缀可以包括:"中\xe5"、"中\xe9"、
"ZH0N"。将包括了新的前缀的所 有前缀作为更新后的当前前缀,并将当前长度值加1作为更新后的当前长度。将更新后的 当前前缀和当前长度返回至S102-S105重新进行处理,直至满足S103中所述当前前缀均满 足指向的词条数小于或等于N。表7所示为更新了当前前缀后建立的倒排索引中,当前前缀 及其指向的词条之间的关系。
[0109] 表7新增了前缀后的当前前缀及其指向的词条之间的关系
[0111] 上述提供的建立输入建议索引的数据处理方法,其步骤S101~S105可以简单地 用代码式表达方法表示为:
[0113] 上述提供的建立输入建议索引的数据处理方法,建立前缀与词条的对应关系后, 对同一个前缀所指向的词条的个数进行判断,当同一个前缀相关的词条数目太多时,就对 该前缀增加前缀长度,使前缀得到进一步细化,再重新建立细化后的前缀与词条的关系。这 样,随着前缀长度的增加,前缀指向的词条数就减少,形成了一个根据词条数目分布的可变 前缀长度的倒排索引,从而避免建立的输入建议索引产生大量几乎不会被用到的索引项, 这样建立的输入建议索引的冗余程度就得到了降低。
[0114] 图2是本申请建立输入建议索引的数据处理系统的组成结构图。如图2所示,申 请建立输入建议索引的数据处理系统包括:前缀生成单元21、倒排索引生成单元22、第一 判断单元23、判断截取单元24、更新单元25。其中,
[0115] 所述前缀生成单元21,用于为每一词条生成长度小于或等于第一长度的前缀,并 将所述前缀作为当前前缀,将所述第一长度作为当前长度。
[0116] 所述倒排索引生成单元22,用于合并当前前缀中内容相同的前缀,并为合并后的 当前前缀及前缀对应的词条生成倒排索引。
[0117] 所述第一判断单元23,用于判断倒排索引生成单元22生成的倒排索引中每一前 缀指向的词条的个数是否大于N个,若每一前缀指向词条的个数均小于或等于N个,则将所 述倒排索引作为建立的输入建议索引进行输出;若前缀指向词条的个数大于N,则进入判 断截取单元24进行处理。
[0118] 所述判断截取单元24,用于对第一判断单元23中词条个数大于N的前缀截取词 条。
[0119] 所述更新单元25,用于对倒排索引中前缀长度等于当前长度且词条个数为(N+1) 的前缀,更新当前前缀和当前长度,并将更新后的当前前缀和当前长度返回至合并前缀的 步骤重新进行处理。
[0120] 图3是倒排索引生成单元的组成结构图。如图3所示,所述倒排索引生成单元22 包括:合并单元221、索引单元222。其中,
[0121]所述合并单元221,用于对所有当前前缀中内容相同的前缀进行合并。
[0122] 所述索引单元222,用于为合并后的当前前缀和前缀对应的词条生成倒排索引。
[0123] 图4是第一判断单元的组成结构图。如图4所示,所述第一判断单元23包括:个 数判断单元231、输出单元232。其中,
[0124] 所述个数判断单元231,用于判断倒排索引生成单元22生成的倒排索引中每一前 缀指向的词条的个数是否大于N个。
[0125] 所述输出单元232,用于输出倒排索引,具体地,若个数判断单元231的判断结果 中,每一前缀指向词条的个数均小于或等于N个,则输出倒排索引生成单元22中的倒排索 引结果。
[0126] 图5是判断截取单元的组成结构图。如图5所示,所述判断截取单元24包括:长 度判断单元241、截取单元242。其中,
[0127] 所述长度判断单元241,用于判断每一个前缀的长度是否小于当前长度;
[0128] 所述截取单元242,用于对长度判断单元241的结果中前缀长度小于当前长度的 前缀所指向的词条截取前N个词条,对长度判断单元241结果中前缀长度等于当前长度的 前缀所指向的词条截取前(N+1)个词条。
[0129] 图6是更新单元的组成结构图。如图6所示,所述更新单元25包括:前缀更新单 元251、当前长度更新单元252。其中,
[0130] 所述前缀更新单元251,用于对长度等于当前长度且词条个数为(N+1)的前缀,根 据词条内容将所述前缀内容增加一个字节,形成新的前缀,将包括了新的前缀的所有前缀 的更新为当前前缀。
[0131] 所述当前长度更新单元252,用于将当前长度加1作为更新后的当前长度。
[0132] 上述提供的建立输入建议索引的数据处理系统与建立输入建议索引的数据处理 方法相对应,可以实现数据处理方法中的各个步骤,所述数据处理系统建立的输入建议索 引能够达到数据处理方法的实施效果。
[0133] 下面介绍本申请建立输入建议索引的数据处理方法的第二实施例。如图1所示, 本实施例与数据处理方法第一实施例的区别在于,所述建立输入建议索引的数据处理方法 还包括:为每一词条进行预处理。具体可以包括:去除词条中的空格、标点符号等无意义的 字符,将词条内容中的大小写以及简繁体进行统一,如将大小写不同的字母统一转换为大 写或者可以将简体和繁体中文汉字统一转换为简体。例如可以将词条"石油"转换为"石 油";或可_以将词条"中國石化"转换为"中国石化"等。本实施例中的其他部分与数据处 理方法第一实施例相同,不再详细描述。
[0134] 下面介绍建立输入建议索引的数据处理系统的第二实施例。如图2所示,与建立 输入建议索引的数据处理方法的第二实施例相对应,所述建立输入建议索引的数据处理系 统的第二实施例与输入建议索引的数据处理系统的第一实施例的区别在于,所述建立输入 建议索引的数据处理系统还包括:词条预处理单元26。所述词条预处理单元26,用于为每 一词条进行预处理,包括:去除词条中的空格、标点符号等无意义的词,将词条内容中的大 小写以及简繁体进行统一,如将大小写不同的字母统一转换为大写或者将简体和繁体中文 汉字统一转换为简体。本实施例中的其他部分与数据处理系统第一实施例相同,不再详细 描述。
[0135] 上述建立输入建议索引的数据处理方法的第二实施例,在建立输入建议索引的数 据处理方法第一实施例的基础上增加了词条预处理的步骤,能排除建立的输入建议索引中 出现的无意义的字符、同一词条中的大小写和简繁体不统一。能够为建立输入建议索引的 数据处理方法提供更准确的数据。
[0136] 相应地,上述建立输入建议索引的数据处理系统的第二实施例,在建立输入建议 索引的数据处理方法第一实施例的基础上增加了词条预处理单元,能够实现数据处理方法 的第二实施例的数据处理过程,为建立输入建议索引的数据处理方法提供更准确的数据。
[0137] 图7是本申请根据建立的输入建议索引提供输入建议的方法实施例的流程图。如 图7所示,根据建立的输入建议索引提供输入建议的方法包括:
[0138]S701 :设置第二长度,判断接收到的查询串的长度是否大于第二长度,对查询串的 长度小于或者等于第二长度的,将其对应的倒排索引作为输入建议的结果。
[0139] 将建立输入建议索引的方法中的第一长度作为本方法的第二长度。当接收到的查 询串的长度小于或者等于所述第二长度时,则直接将其对应的倒排索引作为输入建议的结 果。若接收到的查询串的长度大于所述第二长度,则进入下一步骤进行处理。
[0140]S702 :对于长度大于第二长度的查询串,根据第二长度对所述查询串进行截断。
[0141] 对于长度大于第二长度的查询串,该步骤根据第二长度对该查询串进行截断,具 体地,截取所述查询串前面的第二长度的内容。
[0142]S703 :判断截断后的查询串对应的倒排索引中词条数是否大于N,词条数大于N 的,更新第二长度并返回重新进行截断,直至查询串截断后词条数小于或等于N。
[0143] 对S702中截断后的查询串,根据倒排索引查找对应的词条,判断所述词条的个数 是否大于N,由于在建立倒排索引的过程中,对于需要进一步增加前缀字节的前缀,截取的 词条数为(N+1)个,所以词条的个数大于N时,表示还可以增加前缀的长度,则将第二长度 值加1作为更新后的第二长度值,并将所述词条个数大于N的查询串和第二长度返回至 S702,根据更新后的第二长度值对查询串重新进行截断,截取所述查询串的前面第二长度 的内容,对重新截取后的查询串根据倒排索引重新查询对应的词条,判断重新查询得到的 词条个数是否大于N,直至所有查询到的词条个数小于或等于N。
[0144]S704:对于长度大于第二长度且查询串截断后词条数小于或等于N的查询串,过 滤掉不匹配的词条。
[0145] 对于长度大于第二长度且查询串截断后词条数小于或等于N的查询串,由于对所 述查询串采用截断的方式查找对应的词条,这就会导致部分词条与接收到的查询串的完整 内容并不对应。那么需要将倒排索引中的词条与查询串的完整内容进行比对,过滤掉不匹 配的词条。具体地,将查询串中的内容与每个词条的内容从第一个字符开始进行一一比对, 假设查询串的长度为X,那么词条中前x个字节与查询串内容完全相同的,则认为是与查询 串对应的词条,如不完全相同,则认为不是与查询串对应的词条,在该步骤被过滤掉。
[0146] 例如,在建立输入建议索引时,第一长度设为3,N值设为6,有一个前缀"abc"的对 应词条为"abed,abce,abcf,abcp,abcea"这五个,那么不需要对前缀"abc"增加字节重新 建立索引,建立的索引中包含"abc"一"abed,abce,abef,abep,abcea"这一对应关系。当接 收到的查询串为"abce"时,第二长度初始为3,N为6,需要截取查询串"abce"中的前3个字 节"abc"来进行查询,得到对应的词条为"abed,abce,abcf,abcp,abcea",满足词条个数小 于6,但是,词条中只有"abce,abcea"这两个词条是与查询串"abce"对应的,其他三个词条 "abed,abcf,abcp"与查询串"abce"都不对应,就需要在该步骤将词条"abed,abcf,abcp" 过滤掉。
[0147] 需要说明的是,在进行比对的过程中,若查询串与词条的字符不属于相同的语言, 例如查询串的字符为中文,而词条的字符为字母,则可以将查询串和词条中的内容都转换 为拼音后再
进行比对。
[0148]S705 :输出查询串的输入建议结果。
[0149] 对于S701中查询串长度小于第二长度的,直接输出对应的词条作为查询串的输 入建议结果;对于S703中截断后查询不到相同的索引的,返回空值作为查询串的输入建议 结果;对于S703中截断后进行查询的索引,经过S704过滤后,输出S704过滤的结果作为查 询串的输入建议结果。
[0150] 上述根据建立的输入建议索引提供输入建议的方法,当接收到的查询串长度大于 或等于第二长度时,根据第二长度对查询串进行截断,截断后的查询串对应的词条数目大 于N时,临时提高第二长度的值对查询串重新进行截断,保证查询到的词条数目小于或等 于N;另外,在查询串原来长度大于第二长度且查询到的词条数小于或等于N的,可以通过 比对的方法过滤掉与查询串不匹配的词条,保证词条与接收到的查询串相对应。上述方法 采用动态增加前缀长度的方式,可以保证查询到的词条数目不超过N个,这样在需要进行 比对时,可以减少比对的计算量,提高提供输入建议的效率。
[0151] 此外,在比对过程中,如果将查询串和词条中的内容都转换为utf-8编码后再进 行比对,还可以解决中文和拼音混和输入的问题。
[0152] 图8是本申请根据建立的输入建议索引提供输入建议的系统实施例的组成结构 图。如图8所示,所述根据建立的输入建议索引提供输入建议的系统包括:长度查询单元 81、查询串截断单元82、判断更新单元83、过滤单元84、建议输出单元85。其中,
[0153] 所述长度查询单元81,用于设置第二长度,查询接收到的查询串的长度是否大于 第二长度,对查询串的长度小于或者等于第二长度的,将其对应的倒排索引作为输入建议 的结果。
[0154] 所述查询串截断单元82,用于对于长度大于第二长度的查询串,根据第二长度对 所述查询串进行截断。
[0155] 所述判断更新单元83,用于判断截断后的查询串对应的倒排索引中词条数是否大 于N,词条数大于N的,更新第二长度并返回至查询串截断单元82重新进行截断,直至查询 串截断后词条数小于或等于N。
[0156] 所述过滤单元84,用于对于长度大于第二长度且查询串截断后词条数小于或等于 N的查询串,过滤掉不匹配的词条。
[0157] 所述建议输出单兀85,用于输出查询串的输入建议结果。
[0158] 图9是判断更新单元的组成结构图。如图9所示,所述判断更新单元83,包括:词 条数判断单元831、第二长度更新单元832、返回单元833。其中,
[0159] 所述词条数判断单元831,用于判断所述查询串截断单元82截断后的查询串对应 的倒排索引中词条数是否大于N;
[0160] 所述第二长度更新单元832,将第二长度加1作为更新后的第二长度;
[0161] 所述返回单元833,用于将所述词条数判断单元831中判断结果为词条数大于N的 查询串和所述第二长度更新单元832更新后的第二长度,返回至查询串截断单元82。
[0162] 图10是过滤单元的组成结构图。如图10所示,所述过滤单元84,包括:识别转换 单元841、比对筛选单元842。其中,
[0163] 所述识别转换单元841,用于识别查询串与词条的字符是否属于同一种语言,若不 是,转换查询串或词条的语言,使两者的语言相同。具体地可以将查询串和词条中的内容都 转换为拼音。
[0164] 所述比对筛选单元842,用于将查询串对应的倒排索引中的所有词条和查询串的 内容进行一一比对,剔除不匹配的词条。
[0165] 上述根据建立的输入建议索引提供输入建议的系统,与根据建立的输入建议索引 提供输入建议的方法相对应,可以实现方法实施例的过程,达到方法实施例的技术效果。
[0166] 在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例 如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。 然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改 进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结 构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑 器件(ProgrammableLogicDevice,PLD)(例如现场可编程门阵列(FieldProgrammable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设 计人员自行编程来把一个数字系统"集成"在一片PLD上,而不需要请芯片制造厂商来设计 和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多 半改用"逻辑编译器(logiccompiler)"软件来实现,它与程序开发撰写时所用的软件编 译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述 语言(HardwareDescriptionLanguage,HDL),而HDL也并非仅有一种,而是有许多种,如 ABEL(AdvancedBooleanExpressionLanguage)、AHDL(AlteraHardwareDescription Language)>Confluence>CUPL(Corne11UniversityProgrammingLanguage)、HDCal、JHDL (JavaHardwareDescriptionLanguage)>Lava>Lo1a>MyHDL>PALASM>RHDL(RubyHardware DescriptionLanguage)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated CircuitHardwareDescriptionLanguage)与Verilog2。本领域技术人员也应该清楚, 只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以 很容易得到实现该逻辑方法流程的硬件电路。控制器可以按任何适当的方式实现,例如, 控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程 序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegratedCircuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器 的例子包括但不限于以下微控制器:ARC62ro、AtmelAT91SAM、MicrochipPIC18F26K20以 及SiliconeLabsC8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。
[0167] 本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完 全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程 逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种 硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者 甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部 件内的结构。
[0168] 上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现, 或者由具有某种功能的产品来实现。
[0169] 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本 申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0170] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可 借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质 上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,在一个典型的配置 中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。该计算机 软件产品可以包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网 络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。该计算机软件产品 可以存储在内存中,内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算 机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以 由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块 或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存 储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读 存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或 其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照 本文中的界定,计算机可读介质不包括短暂电脑可读媒体(transitorymedia),如调制的 数据信号和载波。
[0171] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与 其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。尤其,对于系统实 施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例 的部分说明即可。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人 计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器 的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何 系统或设备的分布式计算环境等等。
[0172] 本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序 模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组 件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由 通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以 位于包括存储设备在内的本地
和远程计算机存储介质中。
[0173] 虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和 变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的 精神。
【主权项】
1. 一种建立输入建议的数据处理方法,其特征在于,包括: 为每一词条生成长度小于或等于第一长度的前缀,并将所述前缀作为当前前缀,将所 述第一长度作为当前长度; 合并所有当前前缀中内容相同的前缀,为合并后的当前前缀和对应的词条生成倒排索 引; 判断所述倒排索引中每一前缀指向词条的个数是否大于预设值N,以及: 若所述倒排索引中存在指向词条个数大于N的前缀,对倒排索引中词条个数大于N的 前缀截取词条;根据倒排索引中前缀长度等于当前长度且词条个数为(N+1)的前缀,更新 当前前缀和当前长度,将更新后的当前前缀和当前长度返回至合并前缀的步骤重新进行处 理; 若每一前缀指向词条的个数均小于或等于N,则将所述倒排索引作为建立的输入建议 索引进行输出。2. 如权利要求1所述的一种建立输入建议的数据处理方法,其特征在于,所述对倒排 索引中词条个数大于N的前缀截取词条,包括:对倒排索引中词条个数大于N的前缀,若前 缀长度小于当前长度,截取前缀指向的前N个词条,若前缀长度等于当前长度,截取前缀所 指向的前(N+1)个词条。3. 如权利要求1所述的一种建立输入建议的数据处理方法,其特征在于,所述根据倒 排索引中前缀长度等于当前长度且词条个数为(N+1)的前缀,更新当前前缀和当前长度, 包括:根据词条内容将所述前缀长度等于当前长度且词条个数为(N+1)的前缀增加一个字 节,形成新的前缀,将新增了前缀的所有前缀的作为更新后的当前前缀,将当前长度加1作 为更新后的当前长度。4. 如权利要求1所述的一种建立输入建议的数据处理方法,其特征在于,所述第一长 度的取值最小为3。5. 如权利要求1所述的一种建立输入建议的数据处理方法,其特征在于,所述N的取值 最小为5。6. 如权利要求1所述的一种建立输入建议的数据处理方法,其特征在于,所述方法中 为每一词条生成长度小于或等于第一长度的前缀之前,还包括:对词条进行预处理;所述 对词条进行预处理至少包括下述方式之一: 去除词条中无意义的字符;所述无意义的字符包括空格、标点符号; 将词条内容中的大小写以及简繁体进行统一。7. -种建立输入建议的数据处理系统,其特征在于,包括:前缀生成单元、倒排索引生 成单元、第一判断单元、判断截取单元、更新单元;其中, 所述前缀生成单元,用于为每一词条生成长度小于或等于第一长度的前缀,将所述前 缀作为当前前缀,将所述第一长度作为当前长度; 所述倒排索引生成单元,用于合并当前前缀中内容相同的前缀,为合并后的当前前缀 及前缀对应的词条生成倒排索引; 所述第一判断单元,用于判断所生成的倒排索引中每一前缀指向词条的个数是否大于N,若词条个数大于N,则进入判断截取单元进行处理,若每一前缀指向词条的个数均小于或 等于N,则将所述倒排索引作为建立的输入建议索引进行输出; 所述判断截取单元,用于对倒排索引中对于词条个数大于N的前缀截取词条; 所述更新单元,用于根据倒排索引中前缀长度等于当前长度且词条个数为(N+1)的前 缀,更新当前前缀和当前长度,将更新后的当前前缀和当前长度返回至倒排索引生成单元 重新进行处理。8. 如权利要求7所述的一种建立输入建议的数据处理系统,其特征在于,所述判断截 取单元包括:长度判断单元、截取单元;其中, 所述长度判断单元,用于判断当前前缀中每一个前缀的长度是否小于当前长度; 所述截取单元,用于对长度判断单元的结果中前缀长度小于当前长度的前缀所指向的 词条截取前N个词条,对长度判断单元结果中前缀长度等于当前长度的前缀所指向的词条 截取前(N+1)个词条。9. 如权利要求7所述的一种建立输入建议的数据处理系统,其特征在于,所述更新单 元包括:前缀更新单元、当前长度更新单元;其中, 所述前缀更新单元,用于对长度判断单元的结果中前缀长度等于当前长度的前缀,根 据词条内容将所述前缀内容增加一个字节,形成新的前缀,将新增了前缀的所有前缀的更 新为当前前缀; 所述当前长度更新单元,用于将当前长度加1作为更新后的当前长度。10. 如权利要求7所述的一种建立输入建议的数据处理系统,其特征在于,所述倒排索 引生成单元包括:合并单元、索引单元;其中, 所述合并单元,用于对所有当前前缀中内容相同的前缀进行合并; 所述索引单元,用于为合并后的当前前缀和前缀对应的词条生成倒排索引。11. 如权利要求7所述的一种建立输入建议的数据处理系统,其特征在于,所述第一判 断单元包括:个数判断单元、输出单元;其中, 所述个数判断单元,用于判断倒排索引生成单元生成的倒排索引中当前前缀中每一前 缀指向的词条的个数是否大于N个; 所述输出单元,用于输出倒排索引,具体地,若个数判断单元的判断结果中,每一前缀 指向词条的个数均小于或等于N个,则输出倒排索引生成单元中的倒排索引结果。12. 如权利要求7所述的一种建立输入建议的数据处理系统,其特征在于,所述建立输 入建议的数据处理系统,还包括:词条预处理单元;所述词条预处理单元,用于为每一词条 进行预处理。13. -种基于权利要求1~6中任意一项所述方法建立的索引提供输入建议的方法,其 特征在于,包括 : 设置第二长度,判断接收到的查询串的长度是否大于第二长度,对长度小于或者等于 第二长度的查询串,将其对应的倒排索引作为输入建议的结果; 对于长度大于第二长度的查询串,根据第二长度对所述查询串进行截断; 判断截断后的查询串对应的倒排索引中词条数是否大于N,词条数大于N的,更新第二 长度,返回更新后的第二长度重新进行截断,直至查询串截断后所对应的词条数小于或等 于N; 对于长度大于第二长度且查询串截断后词条数小于或等于N的查询串,过滤掉不匹配 的词条; 输出查询串的输入建议结果。14. 如权利要求13所述的一种根据建立的输入建议索引提供输入建议的方法,其特征 在于,所述更新第二长度包括:将第二长度加1作为更新后的第二长度。15. 如权利要求13所述的一种根据建立的输入建议索引提供输入建议的方法,其特征 在于,所述过滤掉不匹配的词条,具体包括:将截断的查询串对应的所有词条和查询串从第 一个字符开始进行一一比对,将词条中前X个字符与查询串不完全相同的词条过滤掉;所 述X表示查询串的长度。16. 如权利要求15所述的一种根据建立的输入建议索引提供输入建议的方法,其特征 在于,所述将截断的查询串查找到的倒排索引中的所有词条和查询串进行一一比对,包括: 在进行比对的过程中,当查询串与词条的字符不是相同的语言时,将查询串和词条中的内 容都转换为拼音后再进行比对。17. 如权利要求13所述的一种根据建立的输入建议索引提供输入建议的方法,其特征 在于,所述输出查询串的输入建议结果,包括:对于查询串长度小于第二长度的,直接输出 对应的词条作为查询串的输入建议结果;对于截断后查询不到相同的索引的,返回空值作 为查询串的输入建议结果;对于截断后进行查询的索引,将过滤掉不匹配的词条的结果作 为查询串的输入建议结果。18. 如权利要求13所述的一种根据建立的输入建议索引提供输入建议的方法,其特征 在于,所述设置第二长度包括:设置第二长度的值等于第一长度的值。19. 一种基于权利要求7~12中任意一项所述系统建立的索引提供输入建议的系统, 其特征在于,包括:长度查询单元、查询串截断单元、判断更新单元、过滤单元、建议输出单 元;其中, 所述长度查询单元,用于设置第二长度,查询接收到的查询串的长度是否大于第二 长度,对查询串的长度小于或者等于第二长度的,将其对应的倒排索引作为输入建议的结 果; 所述查询串截断单元,用于对于长度大于第二长度的查询串,根据第二长度对所述查 询串进行截断; 所述判断更新单元,用于判断截断后的查询串对应的倒排索引中词条数是否大于N,词 条数大于N的,更新第二长度值并返回至查询串截断单元重新进行截断,直至查询串截断 后词条数小于或等于N; 所述过滤单元,用于对长度大于第二长度且查询串截断后词条数小于或等于N的查询 串,过滤掉不匹配的词条; 所述建议输出单元,用于输出查询串的输入建议结果。20. 如权利要求19所述的一种根据建立的输入建议索引提供输入建议的系统,其特征 在于,所述判断更新单元,包括:词条数判断单元、第二长度更新单元、返回单元;其中, 所述词条数判断单元,用于判断所述查询串截断单元截断后的查询串对应的倒排索引 中词条数是否大于N; 所述第二长度更新单元,用于将第二长度加1作为更新后的第二长度; 所述返回单元,用于将所述词条数判断单元中判断结果为词条数大于N的查询串和所 述第二长度更新单元更新后的第二长度,返回至查询串截断单元。21.如权利要求19所述的一种根据建立的输入建议索引提供输入建议的系统,其特征 在于,所述过滤单元,包括:识别转换单元、比对筛选单元;其中, 所述识别转换单元,用于识别查询串与词条的内容是否属于同一种语言,若不是,转换 查询串或词条的语言,使两者的语言相同; 所述比对筛选单元,用于将截断的查询串对应的所有词条和查询串的内容从第一个字 符开始进行一一比对,剔除不匹配的词条。
【专利摘要】本申请提供了一种建立输入建议的数据处理方法,包括:生成长度小于或等于第一长度的前缀作为当前前缀,第一长度作为当前长度;合并相同的前缀,并为合并后的前缀和对应的词条生成倒排索引;判断每一前缀指向词条的个数是否大于预设值N,对词条个数大于N的前缀截取词条;对前缀长度等于当前长度且词条个数为(N+1)的前缀,更新当前前缀和当前长度,并返回至合并前缀的步骤重新处理,直至当前前缀指向词条的个数均小于或等于N个,将倒排索引作为建立的输入建议索引进行输出;本申请提供的方法,形成了根据词条数目分布的可变前缀长度的倒排索引,避免建立的倒排索引产生大量几乎不会被用到的索引项,建立的输入建议索引的冗余程度得到了降低。
【IPC分类】G06F17/30
【公开号】CN104899214
【申请号】CN201410080568
【发明人】董凡, 张一楠
【申请人】阿里巴巴集团控股有限公司
【公开日】2015年9月9日
【申请日】2014年3月6日
【公告号】US20150254263, WO2015134775A1