CN104899214A - 一种建立输入建议的数据处理方法和系统 - Google Patents
一种建立输入建议的数据处理方法和系统 Download PDFInfo
- Publication number
- CN104899214A CN104899214A CN201410080568.9A CN201410080568A CN104899214A CN 104899214 A CN104899214 A CN 104899214A CN 201410080568 A CN201410080568 A CN 201410080568A CN 104899214 A CN104899214 A CN 104899214A
- Authority
- CN
- China
- Prior art keywords
- length
- prefix
- entry
- query string
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
- G06F16/90324—Query formulation using system suggestions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种建立输入建议的数据处理方法,包括:生成长度小于或等于第一长度的前缀作为当前前缀,第一长度作为当前长度;合并相同的前缀,并为合并后的前缀和对应的词条生成倒排索引;判断每一前缀指向词条的个数是否大于预设值N,对词条个数大于N的前缀截取词条;对前缀长度等于当前长度且词条个数为(N+1)的前缀,更新当前前缀和当前长度,并返回至合并前缀的步骤重新处理,直至当前前缀指向词条的个数均小于或等于N个,将倒排索引作为建立的输入建议索引进行输出;本申请提供的方法,形成了根据词条数目分布的可变前缀长度的倒排索引,避免建立的倒排索引产生大量几乎不会被用到的索引项,建立的输入建议索引的冗余程度得到了降低。
Description
技术领域
本发明涉及搜索领域,尤其涉及一种建立输入建议的数据处理方法和系统。
背景技术
搜索引擎是用于对互联网上的信息资源进行搜集整理,然后为用户提供查询的系统,它包括信息搜集、信息整理和用户查询。通常,用户在搜索引擎中输入关键词进行检索,搜索引擎从索引数据库中找到匹配该关键词的内容反馈给用户。
目前,许多搜索引擎提供与用户原始搜索查询相关的一系列建议的搜索查询。所述一系列建议的搜索查询又称为输入建议,是指在输入框输入的过程中,根据当前的部分输入,提示建议的完整的输入字符串。例如,搜索引擎可以包括接收文本输入的查询输入区域,搜索服务提供针对该文本输入的搜索查询建议,用户可以选择一个搜索查询建议作为搜索查询词。输入建议,主要用于在用户输入的过程中根据已有的部分输入,推荐用户可能输入的完整文本,辅助启发用户快速完成文本输入。例如,用户的原始搜索查询是“中”,搜索引擎可以建议与之相关的搜索查询为“中国”、“中心”、以及“中医”等。
目前提供输入建议的方法主要包括:生成输入建议线下索引和提供线上输入建议两个部分。所述生成输入建议线下索引部分,可以称为建立输入建议,可以包括:为全部推荐的词条列举出所有前缀;对于前缀相同的不同词条进行合并,并为合并了前缀的推荐词条生成倒排索引;对每一个前缀的倒排索引根据具体业务需要进行排序,然后截取最重要的前N个词条作为该前缀的输入建议,生成前缀索引。所述提供线上输入建议可以包括:根据用户在文本框中的当前输入查找所述前缀索引,根据所述前缀索引返回索引记录,所述索引记录即为提供的输入建议。
在实现本申请过程中,发明人发现现有的建立输入建议的技术中至少存在如下问题:
由于推荐词条数据较多,而每一个推荐词条的完整列出的前缀数目也很多,因此全部推荐词条所列举出的所有前缀的数量非常庞大,而根据上述数量非常庞大的所有前缀所建立的倒排索引中,有大量的索引项几乎不会被用到,例如一些前缀长度较长的索引项,如果较短前缀所指向的词条较少,建立的索引中完全可以包括所述较长前缀所指向的词条,那么该较长前缀的索引项就不会被用到。上述说明可以看出,该方法建立的输入建议索引中存在冗余。
发明内容
本发明的目的在于提供一种提供输入建议的方法和系统,以实现降低建立的输入建议索引的冗余程度。
一种建立输入建议的数据处理方法,包括:
为每一词条生成长度小于或等于第一长度的前缀,并将所述前缀作为当前前缀,将所述第一长度作为当前长度;
合并所有当前前缀中内容相同的前缀,为合并后的当前前缀和对应的词条生成倒排索引;
判断所述倒排索引中每一前缀指向词条的个数是否大于预设值N,以及:
若所述倒排索引中存在指向词条个数大于N的前缀,对倒排索引中词条个数大于N的前缀截取词条;根据倒排索引中前缀长度等于当前长度且词条个数为(N+1)的前缀,更新当前前缀和当前长度,将更新后的当前前缀和当前长度返回至合并前缀的步骤重新进行处理;
若每一前缀指向词条的个数均小于或等于N,则将所述倒排索引作为建立的输入建议索引进行输出。
优选方案中,所述对倒排索引中词条个数大于N的前缀截取词条,包括:对倒排索引中词条个数大于N的前缀,若前缀长度小于当前长度,截取前缀指向的前N个词条,若前缀长度等于当前长度,截取前缀所指向的前(N+1)个词条。
优选方案中,所述根据倒排索引中前缀长度等于当前长度且词条个数为(N+1)的前缀,更新当前前缀和当前长度,包括:根据词条内容将所述前缀长度等于当前长度且词条个数为(N+1)的前缀增加一个字节,形成新的前缀,将新增了前缀的所有前缀的作为更新后的当前前缀,将当前长度加1作为更新后的当前长度。
优选方案中,所述第一长度的取值最小为3。
优选方案中,所述N的取值最小为5。
优选方案中,所述方法中为每一词条生成长度小于或等于第一长度的前缀之前,还包括:对词条进行预处理;所述对词条进行预处理至少包括下述方式之一:
去除词条中无意义的字符;所述无意义的字符包括空格、标点符号;
将词条内容中的大小写以及简繁体进行统一。
一种建立输入建议的数据处理系统,包括:前缀生成单元、倒排索引生成单元、第一判断单元、判断截取单元、更新单元;其中,
所述前缀生成单元,用于为每一词条生成长度小于或等于第一长度的前缀,将所述前缀作为当前前缀,将所述第一长度作为当前长度;
所述倒排索引生成单元,用于合并当前前缀中内容相同的前缀,为合并后的当前前缀及前缀对应的词条生成倒排索引;
所述第一判断单元,用于判断所生成的倒排索引中每一前缀指向词条的个数是否大于N,若词条个数大于N,则进入判断截取单元进行处理,若每一前缀指向词条的个数均小于或等于N,则将所述倒排索引作为建立的输入建议索引进行输出;
所述判断截取单元,用于对倒排索引中对于词条个数大于N的前缀截取词条;
所述更新单元,用于根据倒排索引中前缀长度等于当前长度且词条个数为(N+1)的前缀,更新当前前缀和当前长度,将更新后的当前前缀和当前长度返回至倒排索引生成单元重新进行处理。
优选方案中,所述判断截取单元包括:长度判断单元、截取单元;其中,
所述长度判断单元,用于判断当前前缀中每一个前缀的长度是否小于当前长度;
所述截取单元,用于对长度判断单元的结果中前缀长度小于当前长度的前缀所指向的词条截取前N个词条,对长度判断单元结果中前缀长度等于当前长度的前缀所指向的词条截取前(N+1)个词条。
优选方案中,所述更新单元包括:前缀更新单元、当前长度更新单元;其中,
所述前缀更新单元,用于对长度判断单元的结果中前缀长度等于当前长度的前缀,根据词条内容将所述前缀内容增加一个字节,形成新的前缀,将新增了前缀的所有前缀的更新为当前前缀;
所述当前长度更新单元,用于将当前长度加1作为更新后的当前长度。
优选方案中,所述倒排索引生成单元包括:合并单元、索引单元;其中,
所述合并单元,用于对所有当前前缀中内容相同的前缀进行合并;
所述索引单元,用于为合并后的当前前缀和前缀对应的词条生成倒排索引。
优选方案中,所述第一判断单元包括:个数判断单元、输出单元;其中,
所述个数判断单元,用于判断倒排索引生成单元生成的倒排索引中当前前缀中每一前缀指向的词条的个数是否大于N个;
所述输出单元,用于输出倒排索引,具体地,若个数判断单元的判断结果中,每一前缀指向词条的个数均小于或等于N个,则输出倒排索引生成单元中的倒排索引结果。
优选方案中,所述建立输入建议的数据处理系统,还包括:词条预处理单元;所述词条预处理单元,用于为每一词条进行预处理。
一种基于所述建立输入建议的数据处理方法建立的索引提供输入建议的方法,包括:
设置第二长度,判断接收到的查询串的长度是否大于第二长度,对长度小于或者等于第二长度的查询串,将其对应的倒排索引作为输入建议的结果;
对于长度大于第二长度的查询串,根据第二长度对所述查询串进行截断;
判断截断后的查询串对应的倒排索引中词条数是否大于N,词条数大于N的,更新第二长度,返回更新后的第二长度重新进行截断,直至查询串截断后所对应的词条数小于或等于N;
对于长度大于第二长度且查询串截断后词条数小于或等于N的查询串,过滤掉不匹配的词条;
输出查询串的输入建议结果。
优选方案中,所述更新第二长度包括:将第二长度加1作为更新后的第二长度。
优选方案中,所述过滤掉不匹配的词条,具体包括:将截断的查询串对应的所有词条和查询串从第一个字符开始进行一一比对,将词条中前x个字符与查询串不完全相同的词条过滤掉;所述x表示查询串的长度。
优选方案中,所述将截断的查询串查找到的倒排索引中的所有词条和查询串进行一一比对,包括:在进行比对的过程中,当查询串与词条的字符不是相同的语言时,将查询串和词条中的内容都转换为拼音后再进行比对。
优选方案中,所述输出查询串的输入建议结果,包括:对于查询串长度小于第二长度的,直接输出对应的词条作为查询串的输入建议结果;对于截断后查询不到相同的索引的,返回空值作为查询串的输入建议结果;对于截断后进行查询的索引,将过滤掉不匹配的词条的结果作为查询串的输入建议结果。
优选方案中,所述设置第二长度包括:设置第二长度的值等于第一长度的值。
一种基于所述建立输入建议的数据处理系统建立的索引提供输入建议的系统,包括:长度查询单元、查询串截断单元、判断更新单元、过滤单元、建议输出单元;其中,
所述长度查询单元,用于设置第二长度,查询接收到的查询串的长度是否大于第二长度,对查询串的长度小于或者等于第二长度的,将其对应的倒排索引作为输入建议的结果;
所述查询串截断单元,用于对于长度大于第二长度的查询串,根据第二长度对所述查询串进行截断;
所述判断更新单元,用于判断截断后的查询串对应的倒排索引中词条数是否大于N,词条数大于N的,更新第二长度值并返回至查询串截断单元重新进行截断,直至查询串截断后词条数小于或等于N;
所述过滤单元,用于对长度大于第二长度且查询串截断后词条数小于或等于N的查询串,过滤掉不匹配的词条;
所述建议输出单元,用于输出查询串的输入建议结果。
优选方案中,所述判断更新单元,包括:词条数判断单元、第二长度更新单元、返回单元;其中,
所述词条数判断单元,用于判断所述查询串截断单元截断后的查询串对应的倒排索引中词条数是否大于N;
所述第二长度更新单元,用于将第二长度加1作为更新后的第二长度;
所述返回单元,用于将所述词条数判断单元中判断结果为词条数大于N的查询串和所述第二长度更新单元更新后的第二长度,返回至查询串截断单元。
优选方案中,所述过滤单元,包括:识别转换单元、比对筛选单元;其中,
所述识别转换单元,用于识别查询串与词条的内容是否属于同一种语言,若不是,转换查询串或词条的语言,使两者的语言相同;
所述比对筛选单元,用于将截断的查询串对应的所有词条和查询串的内容从第一个字符开始进行一一比对,剔除不匹配的词条。
本申请建立输入建议索引的数据处理方法和系统,建立前缀与词条的对应关系后,对同一个前缀所指向的词条的个数进行判断,当同一个前缀相关的词条数目太多时,就对该前缀增加前缀长度,使前缀得到进一步细化,再重新建立细化后的前缀与词条的关系。这样,随着前缀长度的增加,前缀指向的词条数就减少,形成了一个根据词条数目分布的可变前缀长度的倒排索引,从而避免建立的倒排索引中产生大量几乎不会被用到的索引项,这样建立的输入建议索引的冗余程度就得到了降低。
本申请根据建立的输入建议索引提供输入建议的方法和系统,当接收到的查询串长度大于或等于第二长度时,根据第二长度对查询串进行截断,截断后的查询串对应的词条数目大于N时,临时提高第二长度的值对查询串重新进行截断,保证查询到的词条数目小于或等于N;另外,在查询串原来长度大于第二长度且查询到的词条数小于或等于N的,可以通过比对的方法过滤掉与查询串不匹配的词条,保证词条与接收到的查询串相对应。上述方法采用动态增加前缀长度的方式,可以保证查询到的词条数目不超过N个,这样在需要进行比对时,可以减少比对的计算量,提高提供输入建议的效率。
此外,根据建立的输入建议索引提供输入建议的方法和系统,在比对过程中,如果将查询串和词条中的内容都转换为utf-8编码后再进行比对,还可以解决中文和拼音混和输入的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请建立输入建议索引的数据处理方法实施例的流程图;
图2是本申请建立输入建议索引的数据处理系统实施例的组成结构图;
图3是本申请数据处理系统实施例中倒排索引生成单元的组成结构图;
图4是本申请数据处理系统实施例中第一判断单元的组成结构图;
图5是本申请数据处理系统实施例中判断截取单元的组成结构图;
图6是本申请数据处理系统实施例中更新单元的组成结构图;
图7是本申请根据建立的输入建议索引提供输入建议的方法实施例的流程图;
图8是本申请根据建立的输入建议索引提供输入建议的系统实施例的组成结构图;
图9是本申请提供输入建议的系统实施例中判断更新单元的组成结构图;
图10是本申请提供输入建议的系统实施例中过滤单元的组成结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
图1是本申请中建立输入建议索引的数据处理方法的流程图。如图1所示,本申请建立输入建议索引的数据处理方法包括:
S101:为每一词条生成长度小于或等于第一长度的前缀,将所述前缀作为当前前缀,将所述第一长度作为当前长度。
首先为每一词条生成长度小于或等于第一长度的前缀。中文单字的utf-8编码(8-bitUnicode Transformation Format,也称为万国码)通常占用3个字节的长度,例如“中”的utf-8编码为“\xe4\xb8\xad”;所以所述第一长度一般至少取3。通常一个英文字母占用一个字节的长度,因此,第一长度为3时,每一个词条的拼音只生成包含三个字符及三个以下字符的前缀。将所述长度小于或等于第一长度的前缀作为当前前缀,将所述第一长度作为当前长度。
以“中国石化”这一词条为例,长度小于或等于3的前缀可以包括:中文单字“中”和拼音“zhongguoshihua”中的“Z”、“ZH”、“ZHO”。
S102:合并所有当前前缀中内容相同的前缀,为合并后的当前前缀和对应的词条生成倒排索引。
对于不同的词条,可能会出现相同的前缀,为了生成的倒排索引中前缀具有唯一性,需要将内容相同的当前前缀进行合并,并为合并后的当前前缀生成倒排索引,所述倒排索引中包括前缀和前缀指向的词条。
例如,对于两个词条“中国石化”和“中关村”,当前长度为3时,词条“中国石化”的前缀与前缀指向的词条的关系如表1所示,词条“中关村”的前缀与前缀指向的词条的关系如表2所示。
表1词条“中国石化”的前缀与前缀指向的词条的关系
前缀 | 前缀指向的词条 |
中 | 中国石化 |
Z | 中国石化 |
ZH | 中国石化 |
ZHO | 中国石化 |
表2词条“中关村”的前缀与前缀指向的词条的关系
前缀 | 前缀指向的词条 |
中 | 中关村 |
Z | 中关村 |
ZH | 中关村 |
ZHO | 中关村 |
将表1和表2中相同的前缀进行合并,并生成倒排索引,表3所示为合并前缀后生成的倒排索引中前缀与前缀指向的词条的关系。
表3合并前缀后生成的倒排索引中前缀与前缀指向的词条的关系
前缀 | 前缀指向的词条 |
中 | 中国石化、中关村 |
Z | 中国石化、中关村 |
ZH | 中国石化、中关村 |
ZHO | 中国石化、中关村 |
S103:判断所述倒排索引中每一前缀指向词条的个数是否大于预设值N,若词条个数大于N,则进入截取词条的步骤进行处理,若每一前缀指向词条的个数均小于或等于N,则将所述倒排索引作为建立的输入建议索引进行输出。
该步骤中,N为预设值;所述N的值可以根据需要进行选取,一般N至少为5。若一个前缀对应的词条数大于N个,表示该前缀对应的可以提供的建议过多,其中部分词条可能不能被显示出来,这就需要对这些前缀及其指向的词条作进一步处理。若所述倒排索引中每一个前缀对应的词条数均小于或等于N个,则表示每一个前缀对应的词条都能够作为输入建议,不会产生冗余,此时所述倒排索引即为建立好的输入建议索引。
例如,表4所示的是生成的倒排列索引中前缀与前缀指向的词条之间的关系。若N取值为5,则表4中,前缀“Z”和“ZH”指向的词条分别有6个,那么这两个前缀及其指向的词条需要进行进一步处理。而其余的前缀所指向的词条均小于5个,不需要进行进一步处理。
表4倒排列索引中前缀与前缀指向的词条之间的关系
前缀 | 前缀指向的词条 |
中 | 中国石化、中关村、中国石油、中国人 |
站 | 站长 |
张 | 张扬 |
Z | 中国石化、中关村、中国石油、中国人、站长、张扬 |
ZH | 中国石化、中关村、中国石油、中国人、站长、张扬 |
ZHO | 中国石化、中关村、中国石油、中国人 |
ZHA | 站长、张扬 |
S104:对倒排索引中词条个数大于N的前缀截取词条。
对S103中所指向的词条数目大于N个的前缀截取词条,具体包括:对于前缀长度小于当前长度的前缀,截取其所指向的词条中的前N个词条,对于前缀长度等于当前长度的前缀,截取其所指向的词条中的前(N+1)个词条。
例如,表5所示为当前长度为3时生成的倒排索引中前缀与前缀指向的词条之间的关系。按照上述截取原则截取后,结果如表6所示。
表5当前长度为3时生成的倒排索引中前缀与前缀指向的词条之间的关系
前缀 | 前缀指向词条 |
中 | 中国石化,中国人,中国,中关村,中国银行,中国联通,中通快递,中国电信 |
Z | 中国石化,中国人,中国,中关村,中国银行,中国联通,中通快递,中国电信 |
ZH | 中国石化,中国人,中国,中关村,中国银行,中国联通,中通快递,中国电信 |
ZHO | 中国石化,中国人,中国,中关村,中国银行,中国联通,中通快递,中国电信 |
表6截取后的前缀与前缀指向的词条之间的关系
前缀 | 前缀指向词条 |
中 | 中国石化,中国人,中国,中关村,中国银行,中国联通 |
Z | 中国石化,中国人,中国,中关村,中国银行 |
ZH | 中国石化,中国人,中国,中关村,中国银行 |
ZHO | 中国石化,中国人,中国,中关村,中国银行,中国联通 |
S105:根据倒排索引中前缀长度等于当前长度且词条个数为(N+1)的前缀,更新当前前缀和当前长度,将更新后的当前前缀和当前长度返回至合并前缀的步骤重新进行处理。
对倒排索引中前缀长度等于当前长度的前缀且词条个数为(N+1)的,根据词条内容将前缀内容增加一个字节,新增的字节可以是中文前缀所对应的每一个词条中与前缀内容相邻的下一个字节的中文utf-8编码,也可以是拼音前缀对应每一个词条中与前缀相邻的下一个拼音字母;所述新增了字节的前缀形成新的前缀;将包括新的前缀的所有前缀作为更新后的当前前缀,将当前长度值加1作为更新后的长度值,将更新后的当前前缀和当前长度返回至合并前缀的步骤重新进行处理。
例如表6中的前缀及其指向的词条,前缀“中”和“ZHO”的前缀长度等于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”;增加的字节还可以是拼音前缀对应每一个词条中与前缀相邻的下一个拼音字母,例如与拼音前缀“ZHO”相邻的拼音字母“N”。因此,对于表6中的前缀,新的前缀可以包括:“中\xe5”、“中\xe9”、“ZHON”。将包括了新的前缀的所有前缀作为更新后的当前前缀,并将当前长度值加1作为更新后的当前长度。将更新后的当前前缀和当前长度返回至S102-S105重新进行处理,直至满足S103中所述当前前缀均满足指向的词条数小于或等于N。表7所示为更新了当前前缀后建立的倒排索引中,当前前缀及其指向的词条之间的关系。
表7新增了前缀后的当前前缀及其指向的词条之间的关系
前缀 | 前缀指向词条 |
中 | 中国石化,中国人,中国,中关村,中国银行,中国联通 |
中\xe5 | 中国石化,中国人,中国,中关村,中国银行,中国联通,中国电信 |
中\xe9 | 中通快递 |
Z | 中国石化,中国人,中国,中关村,中国银行 |
ZH | 中国石化,中国人,中国,中关村,中国银行 |
ZHO | 中国石化,中国人,中国,中关村,中国银行,中国联通 |
ZHON | 中国石化,中国人,中国,中关村,中国银行,中国联通,中通快递,中国电信 |
上述提供的建立输入建议索引的数据处理方法,其步骤S101~S105可以简单地用代码式表达方法表示为:
上述提供的建立输入建议索引的数据处理方法,建立前缀与词条的对应关系后,对同一个前缀所指向的词条的个数进行判断,当同一个前缀相关的词条数目太多时,就对该前缀增加前缀长度,使前缀得到进一步细化,再重新建立细化后的前缀与词条的关系。这样,随着前缀长度的增加,前缀指向的词条数就减少,形成了一个根据词条数目分布的可变前缀长度的倒排索引,从而避免建立的输入建议索引产生大量几乎不会被用到的索引项,这样建立的输入建议索引的冗余程度就得到了降低。
图2是本申请建立输入建议索引的数据处理系统的组成结构图。如图2所示,申请建立输入建议索引的数据处理系统包括:前缀生成单元21、倒排索引生成单元22、第一判断单元23、判断截取单元24、更新单元25。其中,
所述前缀生成单元21,用于为每一词条生成长度小于或等于第一长度的前缀,并将所述前缀作为当前前缀,将所述第一长度作为当前长度。
所述倒排索引生成单元22,用于合并当前前缀中内容相同的前缀,并为合并后的当前前缀及前缀对应的词条生成倒排索引。
所述第一判断单元23,用于判断倒排索引生成单元22生成的倒排索引中每一前缀指向的词条的个数是否大于N个,若每一前缀指向词条的个数均小于或等于N个,则将所述倒排索引作为建立的输入建议索引进行输出;若前缀指向词条的个数大于N,则进入判断截取单元24进行处理。
所述判断截取单元24,用于对第一判断单元23中词条个数大于N的前缀截取词条。
所述更新单元25,用于对倒排索引中前缀长度等于当前长度且词条个数为(N+1)的前缀,更新当前前缀和当前长度,并将更新后的当前前缀和当前长度返回至合并前缀的步骤重新进行处理。
图3是倒排索引生成单元的组成结构图。如图3所示,所述倒排索引生成单元22包括:合并单元221、索引单元222。其中,
所述合并单元221,用于对所有当前前缀中内容相同的前缀进行合并。
所述索引单元222,用于为合并后的当前前缀和前缀对应的词条生成倒排索引。
图4是第一判断单元的组成结构图。如图4所示,所述第一判断单元23包括:个数判断单元231、输出单元232。其中,
所述个数判断单元231,用于判断倒排索引生成单元22生成的倒排索引中每一前缀指向的词条的个数是否大于N个。
所述输出单元232,用于输出倒排索引,具体地,若个数判断单元231的判断结果中,每一前缀指向词条的个数均小于或等于N个,则输出倒排索引生成单元22中的倒排索引结果。
图5是判断截取单元的组成结构图。如图5所示,所述判断截取单元24包括:长度判断单元241、截取单元242。其中,
所述长度判断单元241,用于判断每一个前缀的长度是否小于当前长度;
所述截取单元242,用于对长度判断单元241的结果中前缀长度小于当前长度的前缀所指向的词条截取前N个词条,对长度判断单元241结果中前缀长度等于当前长度的前缀所指向的词条截取前(N+1)个词条。
图6是更新单元的组成结构图。如图6所示,所述更新单元25包括:前缀更新单元251、当前长度更新单元252。其中,
所述前缀更新单元251,用于对长度等于当前长度且词条个数为(N+1)的前缀,根据词条内容将所述前缀内容增加一个字节,形成新的前缀,将包括了新的前缀的所有前缀的更新为当前前缀。
所述当前长度更新单元252,用于将当前长度加1作为更新后的当前长度。
上述提供的建立输入建议索引的数据处理系统与建立输入建议索引的数据处理方法相对应,可以实现数据处理方法中的各个步骤,所述数据处理系统建立的输入建议索引能够达到数据处理方法的实施效果。
下面介绍本申请建立输入建议索引的数据处理方法的第二实施例。如图1所示,本实施例与数据处理方法第一实施例的区别在于,所述建立输入建议索引的数据处理方法还包括:为每一词条进行预处理。具体可以包括:去除词条中的空格、标点符号等无意义的字符,将词条内容中的大小写以及简繁体进行统一,如将大小写不同的字母统一转换为大写或者可以将简体和繁体中文汉字统一转换为简体。例如可以将词条“石油”转换为“石油”;或可_以将词条“中國石化”转换为“中国石化”等。本实施例中的其他部分与数据处理方法第一实施例相同,不再详细描述。
下面介绍建立输入建议索引的数据处理系统的第二实施例。如图2所示,与建立输入建议索引的数据处理方法的第二实施例相对应,所述建立输入建议索引的数据处理系统的第二实施例与输入建议索引的数据处理系统的第一实施例的区别在于,所述建立输入建议索引的数据处理系统还包括:词条预处理单元26。所述词条预处理单元26,用于为每一词条进行预处理,包括:去除词条中的空格、标点符号等无意义的词,将词条内容中的大小写以及简繁体进行统一,如将大小写不同的字母统一转换为大写或者将简体和繁体中文汉字统一转换为简体。本实施例中的其他部分与数据处理系统第一实施例相同,不再详细描述。
上述建立输入建议索引的数据处理方法的第二实施例,在建立输入建议索引的数据处理方法第一实施例的基础上增加了词条预处理的步骤,能排除建立的输入建议索引中出现的无意义的字符、同一词条中的大小写和简繁体不统一。能够为建立输入建议索引的数据处理方法提供更准确的数据。
相应地,上述建立输入建议索引的数据处理系统的第二实施例,在建立输入建议索引的数据处理方法第一实施例的基础上增加了词条预处理单元,能够实现数据处理方法的第二实施例的数据处理过程,为建立输入建议索引的数据处理方法提供更准确的数据。
图7是本申请根据建立的输入建议索引提供输入建议的方法实施例的流程图。如图7所示,根据建立的输入建议索引提供输入建议的方法包括:
S701:设置第二长度,判断接收到的查询串的长度是否大于第二长度,对查询串的长度小于或者等于第二长度的,将其对应的倒排索引作为输入建议的结果。
将建立输入建议索引的方法中的第一长度作为本方法的第二长度。当接收到的查询串的长度小于或者等于所述第二长度时,则直接将其对应的倒排索引作为输入建议的结果。若接收到的查询串的长度大于所述第二长度,则进入下一步骤进行处理。
S702:对于长度大于第二长度的查询串,根据第二长度对所述查询串进行截断。
对于长度大于第二长度的查询串,该步骤根据第二长度对该查询串进行截断,具体地,截取所述查询串前面的第二长度的内容。
S703:判断截断后的查询串对应的倒排索引中词条数是否大于N,词条数大于N的,更新第二长度并返回重新进行截断,直至查询串截断后词条数小于或等于N。
对S702中截断后的查询串,根据倒排索引查找对应的词条,判断所述词条的个数是否大于N,由于在建立倒排索引的过程中,对于需要进一步增加前缀字节的前缀,截取的词条数为(N+1)个,所以词条的个数大于N时,表示还可以增加前缀的长度,则将第二长度值加1作为更新后的第二长度值,并将所述词条个数大于N的查询串和第二长度返回至S702,根据更新后的第二长度值对查询串重新进行截断,截取所述查询串的前面第二长度的内容,对重新截取后的查询串根据倒排索引重新查询对应的词条,判断重新查询得到的词条个数是否大于N,直至所有查询到的词条个数小于或等于N。
S704:对于长度大于第二长度且查询串截断后词条数小于或等于N的查询串,过滤掉不匹配的词条。
对于长度大于第二长度且查询串截断后词条数小于或等于N的查询串,由于对所述查询串采用截断的方式查找对应的词条,这就会导致部分词条与接收到的查询串的完整内容并不对应。那么需要将倒排索引中的词条与查询串的完整内容进行比对,过滤掉不匹配的词条。具体地,将查询串中的内容与每个词条的内容从第一个字符开始进行一一比对,假设查询串的长度为x,那么词条中前x个字节与查询串内容完全相同的,则认为是与查询串对应的词条,如不完全相同,则认为不是与查询串对应的词条,在该步骤被过滤掉。
例如,在建立输入建议索引时,第一长度设为3,N值设为6,有一个前缀“abc”的对应词条为“abcd,abce,abcf,abcp,abcea”这五个,那么不需要对前缀“abc”增加字节重新建立索引,建立的索引中包含“abc”→“abcd,abce,abcf,abcp,abcea”这一对应关系。当接收到的查询串为“abce”时,第二长度初始为3,N为6,需要截取查询串“abce”中的前3个字节“abc”来进行查询,得到对应的词条为“abcd,abce,abcf,abcp,abcea”,满足词条个数小于6,但是,词条中只有“abce,abcea”这两个词条是与查询串“abce”对应的,其他三个词条“abcd,abcf,abcp”与查询串“abce”都不对应,就需要在该步骤将词条“abcd,abcf,abcp”过滤掉。
需要说明的是,在进行比对的过程中,若查询串与词条的字符不属于相同的语言,例如查询串的字符为中文,而词条的字符为字母,则可以将查询串和词条中的内容都转换为拼音后再进行比对。
S705:输出查询串的输入建议结果。
对于S701中查询串长度小于第二长度的,直接输出对应的词条作为查询串的输入建议结果;对于S703中截断后查询不到相同的索引的,返回空值作为查询串的输入建议结果;对于S703中截断后进行查询的索引,经过S704过滤后,输出S704过滤的结果作为查询串的输入建议结果。
上述根据建立的输入建议索引提供输入建议的方法,当接收到的查询串长度大于或等于第二长度时,根据第二长度对查询串进行截断,截断后的查询串对应的词条数目大于N时,临时提高第二长度的值对查询串重新进行截断,保证查询到的词条数目小于或等于N;另外,在查询串原来长度大于第二长度且查询到的词条数小于或等于N的,可以通过比对的方法过滤掉与查询串不匹配的词条,保证词条与接收到的查询串相对应。上述方法采用动态增加前缀长度的方式,可以保证查询到的词条数目不超过N个,这样在需要进行比对时,可以减少比对的计算量,提高提供输入建议的效率。
此外,在比对过程中,如果将查询串和词条中的内容都转换为utf-8编码后再进行比对,还可以解决中文和拼音混和输入的问题。
图8是本申请根据建立的输入建议索引提供输入建议的系统实施例的组成结构图。如图8所示,所述根据建立的输入建议索引提供输入建议的系统包括:长度查询单元81、查询串截断单元82、判断更新单元83、过滤单元84、建议输出单元85。其中,
所述长度查询单元81,用于设置第二长度,查询接收到的查询串的长度是否大于第二长度,对查询串的长度小于或者等于第二长度的,将其对应的倒排索引作为输入建议的结果。
所述查询串截断单元82,用于对于长度大于第二长度的查询串,根据第二长度对所述查询串进行截断。
所述判断更新单元83,用于判断截断后的查询串对应的倒排索引中词条数是否大于N,词条数大于N的,更新第二长度并返回至查询串截断单元82重新进行截断,直至查询串截断后词条数小于或等于N。
所述过滤单元84,用于对于长度大于第二长度且查询串截断后词条数小于或等于N的查询串,过滤掉不匹配的词条。
所述建议输出单元85,用于输出查询串的输入建议结果。
图9是判断更新单元的组成结构图。如图9所示,所述判断更新单元83,包括:词条数判断单元831、第二长度更新单元832、返回单元833。其中,
所述词条数判断单元831,用于判断所述查询串截断单元82截断后的查询串对应的倒排索引中词条数是否大于N;
所述第二长度更新单元832,将第二长度加1作为更新后的第二长度;
所述返回单元833,用于将所述词条数判断单元831中判断结果为词条数大于N的查询串和所述第二长度更新单元832更新后的第二长度,返回至查询串截断单元82。
图10是过滤单元的组成结构图。如图10所示,所述过滤单元84,包括:识别转换单元841、比对筛选单元842。其中,
所述识别转换单元841,用于识别查询串与词条的字符是否属于同一种语言,若不是,转换查询串或词条的语言,使两者的语言相同。具体地可以将查询串和词条中的内容都转换为拼音。
所述比对筛选单元842,用于将查询串对应的倒排索引中的所有词条和查询串的内容进行一一比对,剔除不匹配的词条。
上述根据建立的输入建议索引提供输入建议的系统,与根据建立的输入建议索引提供输入建议的方法相对应,可以实现方法实施例的过程,达到方法实施例的技术效果。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。该计算机软件产品可以包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。该计算机软件产品可以存储在内存中,内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括短暂电脑可读媒体(transitory media),如调制的数据信号和载波。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
Claims (21)
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所述的一种根据建立的输入建议索引提供输入建议的系统,其特征在于,所述过滤单元,包括:识别转换单元、比对筛选单元;其中,
所述识别转换单元,用于识别查询串与词条的内容是否属于同一种语言,若不是,转换查询串或词条的语言,使两者的语言相同;
所述比对筛选单元,用于将截断的查询串对应的所有词条和查询串的内容从第一个字符开始进行一一比对,剔除不匹配的词条。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410080568.9A CN104899214B (zh) | 2014-03-06 | 2014-03-06 | 一种建立输入建议的数据处理方法和系统 |
TW103118593A TW201535136A (zh) | 2014-03-06 | 2014-05-28 | 建立輸入建議的資料處理方法和系統 |
US14/639,875 US9870433B2 (en) | 2014-03-06 | 2015-03-05 | Data processing method and system of establishing input recommendation |
PCT/US2015/019010 WO2015134775A1 (en) | 2014-03-06 | 2015-03-05 | Data processing method and system of establishing input recommendation |
JP2016553443A JP2017511928A (ja) | 2014-03-06 | 2015-03-05 | 入力レコメンデーションを確立するデータ処理方法及びシステム |
HK15111784.0A HK1211101A1 (zh) | 2014-03-06 | 2015-12-01 | 種建立輸入建議的數據處理方法和系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410080568.9A CN104899214B (zh) | 2014-03-06 | 2014-03-06 | 一种建立输入建议的数据处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104899214A true CN104899214A (zh) | 2015-09-09 |
CN104899214B CN104899214B (zh) | 2018-05-22 |
Family
ID=54017543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410080568.9A Active CN104899214B (zh) | 2014-03-06 | 2014-03-06 | 一种建立输入建议的数据处理方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9870433B2 (zh) |
JP (1) | JP2017511928A (zh) |
CN (1) | CN104899214B (zh) |
HK (1) | HK1211101A1 (zh) |
TW (1) | TW201535136A (zh) |
WO (1) | WO2015134775A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108846013A (zh) * | 2018-05-04 | 2018-11-20 | 昆明理工大学 | 一种基于geohash与Patricia Trie的空间关键词查询方法及装置 |
CN108874880A (zh) * | 2018-05-04 | 2018-11-23 | 昆明理工大学 | 一种基于Trie的空间关键词查询方法及装置 |
CN110674262A (zh) * | 2019-10-16 | 2020-01-10 | 北京百度网讯科技有限公司 | 词语识别方法、装置、电子设备和介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105956203B (zh) * | 2016-06-30 | 2019-03-08 | 湖州亿联信息技术有限公司 | 一种信息存储方法、信息查询方法、搜索引擎装置 |
US11210291B2 (en) * | 2020-05-11 | 2021-12-28 | Microsoft Technology Licensing, Llc | Differential indexing for fast database search |
US20220044111A1 (en) * | 2020-08-07 | 2022-02-10 | Sap Se | Automatic flow generation from customer tickets using deep neural networks |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102768681A (zh) * | 2012-06-26 | 2012-11-07 | 北京奇虎科技有限公司 | 一种用于搜索输入的推荐系统及方法 |
US20130132381A1 (en) * | 2011-11-17 | 2013-05-23 | Microsoft Corporation | Tagging entities with descriptive phrases |
CN103473310A (zh) * | 2012-09-11 | 2013-12-25 | 周良文 | 搜索关键词节点信息站点的系统、方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6564213B1 (en) | 2000-04-18 | 2003-05-13 | Amazon.Com, Inc. | Search query autocompletion |
US7487145B1 (en) * | 2004-06-22 | 2009-02-03 | Google Inc. | Method and system for autocompletion using ranked results |
US8438142B2 (en) | 2005-05-04 | 2013-05-07 | Google Inc. | Suggesting and refining user input based on original user input |
US7634457B2 (en) | 2005-10-07 | 2009-12-15 | Oracle International Corp. | Function-based index tuning for queries with expressions |
KR100643801B1 (ko) * | 2005-10-26 | 2006-11-10 | 엔에이치엔(주) | 복수의 언어를 연동하는 자동완성 추천어 제공 시스템 및방법 |
EP1826692A3 (en) | 2006-02-22 | 2009-03-25 | Copernic Technologies, Inc. | Query correction using indexed content on a desktop indexer program. |
US8990240B2 (en) | 2008-12-30 | 2015-03-24 | Ebay Inc. | Predictive algorithm for search box auto-complete |
US8176069B2 (en) | 2009-06-01 | 2012-05-08 | Aol Inc. | Systems and methods for improved web searching |
US8498972B2 (en) * | 2010-12-16 | 2013-07-30 | Sap Ag | String and sub-string searching using inverted indexes |
CN103502915B (zh) | 2011-04-09 | 2017-01-11 | 上海触乐信息科技有限公司 | 电子设备上基于屏幕软件键盘实现滑动输入文本的系统及方法 |
US9043350B2 (en) | 2011-09-22 | 2015-05-26 | Microsoft Technology Licensing, Llc | Providing topic based search guidance |
US20140201229A1 (en) | 2013-01-16 | 2014-07-17 | Google Inc. | Providing display suggestions |
WO2014139120A1 (en) | 2013-03-14 | 2014-09-18 | Microsoft Corporation | Search intent preview, disambiguation, and refinement |
-
2014
- 2014-03-06 CN CN201410080568.9A patent/CN104899214B/zh active Active
- 2014-05-28 TW TW103118593A patent/TW201535136A/zh unknown
-
2015
- 2015-03-05 US US14/639,875 patent/US9870433B2/en active Active
- 2015-03-05 WO PCT/US2015/019010 patent/WO2015134775A1/en active Application Filing
- 2015-03-05 JP JP2016553443A patent/JP2017511928A/ja active Pending
- 2015-12-01 HK HK15111784.0A patent/HK1211101A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130132381A1 (en) * | 2011-11-17 | 2013-05-23 | Microsoft Corporation | Tagging entities with descriptive phrases |
CN102768681A (zh) * | 2012-06-26 | 2012-11-07 | 北京奇虎科技有限公司 | 一种用于搜索输入的推荐系统及方法 |
CN103473310A (zh) * | 2012-09-11 | 2013-12-25 | 周良文 | 搜索关键词节点信息站点的系统、方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108846013A (zh) * | 2018-05-04 | 2018-11-20 | 昆明理工大学 | 一种基于geohash与Patricia Trie的空间关键词查询方法及装置 |
CN108874880A (zh) * | 2018-05-04 | 2018-11-23 | 昆明理工大学 | 一种基于Trie的空间关键词查询方法及装置 |
CN108874880B (zh) * | 2018-05-04 | 2021-11-23 | 昆明理工大学 | 一种基于Trie的空间关键词查询方法及装置 |
CN108846013B (zh) * | 2018-05-04 | 2021-11-23 | 昆明理工大学 | 一种基于geohash与Patricia Trie的空间关键词查询方法及装置 |
CN110674262A (zh) * | 2019-10-16 | 2020-01-10 | 北京百度网讯科技有限公司 | 词语识别方法、装置、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2017511928A (ja) | 2017-04-27 |
TW201535136A (zh) | 2015-09-16 |
CN104899214B (zh) | 2018-05-22 |
WO2015134775A1 (en) | 2015-09-11 |
US20150254263A1 (en) | 2015-09-10 |
HK1211101A1 (zh) | 2016-05-13 |
US9870433B2 (en) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104899214A (zh) | 一种建立输入建议的数据处理方法和系统 | |
CN107526777B (zh) | 一种基于版本号对文件进行处理的方法及设备 | |
CN105893349B (zh) | 类目标签匹配映射方法及装置 | |
KR102407510B1 (ko) | 데이터 저장 및 조회 방법, 장치, 기기 및 매체 | |
CN107153647B (zh) | 进行数据压缩的方法、装置、系统和计算机程序产品 | |
US9760593B2 (en) | Data dictionary with a reduced need for rebuilding | |
CN107526746B (zh) | 管理文档索引的方法和设备 | |
CN105468719A (zh) | 一种查询纠错方法、装置和计算设备 | |
CN109086456B (zh) | 数据索引方法及装置 | |
CN105095391A (zh) | 利用分词程序识别机构名称的装置及方法 | |
CN102279749A (zh) | 一种代码归并方法和设备 | |
CN111708805A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN104699845A (zh) | 基于提问类搜索词的搜索结果提供方法及装置 | |
CN104462504A (zh) | 基于搜索中提供推理过程数据的方法和装置 | |
CN113742332A (zh) | 数据存储方法、装置、设备及存储介质 | |
CN106815271A (zh) | 查询条件生成方法和装置 | |
US9509757B2 (en) | Parallel sorting key generation | |
CN110795456B (zh) | 图谱的查询方法、装置、计算机设备以及存储介质 | |
CN107291521B (zh) | 编译计算机语言的方法和装置 | |
US10482171B2 (en) | Digital form optimization | |
US8682644B1 (en) | Multi-language sorting index | |
CN115391426A (zh) | 一种数据查询方法、装置、存储介质及电子设备 | |
CN105095283A (zh) | 网络社交系统中准好友的推荐方法和系统 | |
CN109840080B (zh) | 字符属性比较方法、装置、存储介质及电子设备 | |
CN112639761B (zh) | 一种为数据建立索引的方法以及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1211101 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |