输入提示方法、装置及字典树模型的创建方法、装置制造方法

文档序号:6544773阅读:317来源:国知局
输入提示方法、装置及字典树模型的创建方法、装置制造方法
【专利摘要】本发明公开了一种输入提示方法,该方法包括:获取输入词;对输入词进行分拆以获取N个分拆词,其中,N为正整数;根据N个分拆词分别查询预设的字典树模型以分别获取N个提示结果集合;以及根据N个提示结果集合生成最终的提示结果。本发明实施例的输入提示方法通过对输入词进行分拆扩展以获取输入词的前缀分拆词、中间分拆词等,并通过前缀分拆词、中间分拆词查询预设的字典树模型,获得分别与前缀分拆词、中间分拆词匹配的提示结果,提高了提示的精准性,并且通过融入输入词的语境处理以及将输入词的分切粒度降为最小,增大了检索匹配时的可能性,提升了用户体验。本发明还公开了一种输入提示装置以及一种字典树模型的创建方法和装置。
【专利说明】输入提示方法、装置及字典树模型的创建方法、装置
【技术领域】
[0001]本发明涉及搜索【技术领域】,尤其涉及一种输入提示方法和装置以及字典树模型的创建方法和装置。
【背景技术】
[0002]目前,在国内的搜索领域中,例如网页搜索和垂搜,如果搜索词输入提示词库在十万级别以上,基本上都是依赖于Trie树(一种基于内存的搜索算法),其索引的过程是建树,且检索过程是对树的遍历。然而具体是怎么建树、怎么遍历,不同的设计者会根据自身数据特定,制定不同的方法。
[0003]目前,国内基于汉语的Auto Complete算法,基本上都是先将词的每个汉字字符依次插入到Trie树的从根到叶子的每个节点中,然后将汉字转拼音再次建树,搜索时就是从根节点到叶子节点依次遍历。这种方法可以解决大部分的输入搜索词提示问题。
[0004]但是,如果用户输入的搜索词不是词库中任何词的前缀,那么这种依赖Trie树的方法就不可行了 ;或者说提示了不存在的词条,例如,如图1所示,搜索词“通天帝国之”召回了“通天帝国之狄仁杰”,而正确并存在的词条是“狄仁杰之通天帝国”,而这样是一种不严谨的做法,从而降低了搜索词提示的精准性,用户体验差。

【发明内容】

[0005]本发明旨在至少在一定程度上解决上述的技术缺陷之一。
[0006]为此,本发明的第一个目的在于提出一种输入提示方法。该方法通过对输入词进行分拆扩展,并根据分拆后输入词查询预设的字典树模型以获得提示结果,提高了提示的精准性,并且通过融入输入词的语境处理以及将输入词的分切粒度降为最小,增大了检索匹配时的可能性,提升了用户体验。
[0007]本发明的第二个目的在于提出一种字典树模型的创建方法。
[0008]本发明的第三个目的在于提出一种输入提示装置。
[0009]本发明的第四个目的在于提出一种字典树模型的创建装置。
[0010]为了实现上述目的,本发明第一方面实施例的输入提示方法,包括:获取输入词;对所述输入词进行分拆以获取N个分拆词,其中,N为正整数;根据所述N个分拆词分别查询预设的字典树模型以分别获取N个提示结果集合;以及根据所述N个提示结果集合生成最终的提示结果。
[0011]本发明实施例的输入提示方法,可对获取的输入词进行分拆以获取N个分拆词,并根据该N个分拆词分别查询预设的字典树模型以分别获取N个提示结果集合,之后可对该N个提示结果集合进行合并及去重以生成最终的提示结果,通过对输入词进行分拆扩展,可获取输入词的前缀分拆词、中间分拆词等,这样通过前缀分拆词、中间分拆词查询预设的字典树模型,可获得前缀分拆词匹配的提示结果、中间分拆词匹配的提示结果,提高了自动提示的精准性,并且,通过融入输入词的语境处理,并将输入词的分切粒度降为最小,增大了检索匹配时的可能性,提升了用户体验。
[0012]为了实现上述目的,本发明第二方面实施例的字典树模型的创建方法,包括:获取多个样本词;根据访问热度对所述多个样本词进行排序,并分别对排序后的多个样本词作为多个主体词;分别根据所述多个主体词生成每个主体词对应的相关词;以及根据所述多个主体词和所述每个主体词对应的相关词创建字典树模型。
[0013]本发明实施例的字典树模型的创建方法,通过对排序后的样本词进行引申以产生若干个相关词,解决了 Auto Complete领域中无法得到从中间匹配的提示结果的问题,并且通过相关词和主体词共用一部分的树节点的特征,减少了内存空间。
[0014]为了实现上述目的,本发明第三方面实施例的输入提示装置,包括:获取模块,用于获取输入词;分拆模块,用于对所述输入词进行分拆以获取N个分拆词,其中,N为正整数;查询模块,用于根据所述N个分拆词分别查询预设的字典树模型以分别获取N个提示结果集合;以及生成模块,用于根据所述N个提示结果集合生成最终的提示结果。
[0015]本发明实施例的输入提示装置,通过分拆模块对获取的输入词进行分拆以获取N个分拆词,查询模块根据该N个分拆词分别查询预设的字典树模型以分别获取N个提示结果集合,生成模块对该N个提示结果集合进行合并及去重以生成最终的提示结果,由此,通过对输入词进行分拆扩展以获取输入词的前缀分拆词、中间分拆词等,这样通过前缀分拆词、中间分拆词查询预设的字典树模型,可获得前缀分拆词匹配的提示结果、中间分拆词匹配的提示结果,提高了自动提示的精准性,并且,通过融入输入词的语境处理,并将输入词的分切粒度降为最小,增大了检索匹配时的可能性,提升了用户体验。
[0016]为了实现上述目的,本发明第四方面实施例的字典树模型的创建装置,包括:获取模块,用于获取多个样本词;排序模块,用于根据访问热度对所述多个样本词进行降序排序,并分别对排序后的多个样本词作为多个主体词;生成模块,用于分别根据所述多个主体词生成每个主体词对应的相关词;以及创建模块,用于根据所述多个主体词和所述每个主体词对应的相关词创建字典树模型。
[0017]本发明实施例的字典树模型的创建装置,通过对排序后的样本词进行引申以产生若干个相关词,解决了 Auto Complete领域中无法得到从中间匹配的提示结果的问题,并且通过相关词和主体词共用一部分的树节点的特征,减少了内存空间。
[0018]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】

【附图说明】
[0019]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
[0020]图1是现有技术中的输入提示方法的示意图;
[0021]图2是根据本发明一个实施例的输入提示方法的流程图;
[0022]图3是根据本发明一个实施例的字典树模型的示意图;
[0023]图4是根据本发明一个实施例的字典树模型的创建方法的流程图;
[0024]图5是根据本发明一个实施例的输入提示装置的结构示意图;
[0025]图6是根据本发明一个实施例的字典树模型的创建装置的结构示意图。【具体实施方式】
[0026]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0027]下面参考附图描述根据本发明实施例的输入提示方法和装置以及字典树模型的创建方法和装置。
[0028]目前,实现AutoComplete的方法有很多种,例如马尔可夫模型及一些机器学习方法都可以实现,但是其确定是需要大量的训练,并且性能不一定能达到要求。业界比较公认的较好方案是Trie树,而Trie树【技术领域】,也是多种多样的,而如何用尽可能少的空间解决召回全面、精准和兼容纠错等是亟待解决的问题。
[0029]为此,本发明提出了一种输入提示方法,包括:获取输入词;对输入词进行分拆以获取N个分拆词,其中,N为正整数;根据N个分拆词分别查询预设的字典树模型以分别获取N个提示结果集合;以及根据N个提示结果集合生成最终的提示结果。
[0030]图2是根据本发明一个实施例的输入提示方法的流程图。
[0031]如图2所示,该输入提示方法可以包括:
[0032]S201,获取输入词。
[0033]例如,可获取用户通过浏览器或者搜索应用程序进行搜索时在输入框中填写的输入词,如“pc faster”等。
[0034]S202,对输入词进行分拆以获取N个分拆词,其中,N为正整数。
[0035]具体而言,在本发明的一个实施例中,可先根据非必留词词库去除输入词中的非必留词。之后,可对去除非必留词后的输入词进行分拆以获取N个分拆词。其中,在本发明的实施例中,非必留词词库与语言类型相关,即不同的语言类型具有不同的非必留词词库,语言类型可包括例如汉语、英语、法语、泰语等。
[0036]应当理解,非必留词为对输入词主题表达不太重要的词,可理解为与输入词不相关的词。也就是说,用户填写的输入词中很可能包含非必留词,例如,输入词“下载PCfaster”中的“下载”就是非必留词;又例如输入词“如何发泡海参”中的“如何”。由此,可先通过非必留词词库对非必留词进行匹配,去除匹配到的非必留词,这样可得到去除非必留词后的输入词“pc faster”。之后,可对该“pc faster”进行分拆扩展,例如,可分拆成“pc faster”和“faster”这2个分拆词。这样,可获得输入词的前缀分拆词和中间分拆词。
[0037]在本发明的另一个实施例中,可先根据输入词的语境对输入词进行分拆以获取第一分拆词结果集合。之后,可根据语言类型对应的最小语言单元对第一分拆词结果集合进行分拆以获取第二分拆词结果集合,其中,第二分拆词结果集合包括N个分拆词。
[0038]举例而言,以输入词“pc faster”为例,可通过输入词的语境可知输入词为英文,且包含两个单词“pc”、“faster”,这样可先对输入词进行分拆以获得分拆词结果集合(“pC”、“faster”)。之后,可根据最小语言单元对该分拆词结果集合(“pC”、“faster”)进行分拆以获得((“p”、“c”)、( “f”、“a”、“s”、“t”、“e”、“r”))。由此,通过这种方式可将输入词分拆成最小单元,增大了检索匹配时的可能性。
[0039]S203,根据N个分拆词分别查询预设的字典树模型以分别获取N个提示结果集合。[0040]具体地,可用该N个分拆词分别去遍历预设的字典树模型,可得到N个提示结果集合。需要说明的是,在本发明的一个实施例中,可通过多个线程并发的方式对预设的字典树模型进行遍历。其中,在本发明的一个实施例中,预设的字典树模型可为预先创建的,具体创建的实现方式可参照后续实施例的详细描述。
[0041 ] S204,根据N个提示结果集合生成最终的提示结果。
[0042]具体而言,可先对N个提示结果集合进行合并,之后可对合并后的N个提示结果集合进行去重以生成最终的提示结果。
[0043]需要说明的是,在本发明的实施例中,最终提示结果的条数一般为10条(因为Auto Complete 一般只选择10条显示),前7条可为前驱匹配得到的提示结果,第8、9条可为中间匹配得到的提示结果,第10条可为相似匹配得到的提示结果(包含错字匹配)。这样,不仅能完成拼写自动提示,而且能知道用户的潜在检索目的以及具备纠错功能,使得Auto Complete的使用意义得到了升华。
[0044]本发明实施例的输入提示方法,可对获取的输入词进行分拆以获取N个分拆词,并根据该N个分拆词分别查询预设的字典树模型以分别获取N个提示结果集合,之后可对该N个提示结果集合进行合并及去重以生成最终的提示结果,通过对输入词进行分拆扩展,可获取输入词的前缀分拆词、中间分拆词等,这样通过前缀分拆词、中间分拆词查询预设的字典树模型,可获得前缀分拆词匹配的提示结果、中间分拆词匹配的提示结果,提高了自动提示的精准性,并且,通过融入输入词的语境处理,并将输入词的分切粒度降为最小,增大了检索匹配时的可能性,提升了用户体验。
[0045]需要说明的是,在本发明的一个实施例中,预设的字典树模型可通过以下步骤创建:
[0046]SlOl’,获取多个样本词。
[0047]例如,可获取在一定时期内用户通过浏览器或者搜索应用程序进行搜索时,在输入框中填写的多个输入词,并对这些输入词进行去重,之后可将去重后的多个输入词作为多个样本词。
[0048]S102’,根据访问热度对多个样本词进行排序,并分别将排序后的多个样本词作为多个主体词。
[0049]具体地,可按照访问热度对样本词进行降序排序,以获得降序排序的有序词表。应当理解,权重高的样本词被先插入字典树中,最后插入的为权重最低的样本词,这样只要先序遍历这个字典树得到的结果即为按照权重降序排序的结果。需要说明的是,在本发明的一个实施例中,还可以按照其他权重对样本词进行降序排序,例如,可按照语言类型中字符的先后顺序对样本词进行降序排序。
[0050]应当理解,在本发明的实施例中,主体词可为去重后的样本词。
[0051]S103’,分别根据多个主体词生成每个主体词对应的相关词。
[0052]具体地,可对每个主体词W进行处理,如可根据非必留词词库去除主体词W中的非必留词等,并针对去除非必留词后的主体词W进行扩展,以生成每个主体词对应的若干个
相关词(ffl, W2, W3......) O例如,主体词“baidu pc faster”对该主体词进行引申扩展,可
引申出来的相关词为(“baidu pc faster”, “pc faster”, “faster”)。可以理解,在本发明的实施例中,相关词可为对样本词进行引申而得到的与样本词相关的词。[0053]S104’,根据多个主体词和每个主体词对应的相关词创建预设的字典树模型。
[0054]具体而言,可先根据每个主体词创建主体词字典树。之后可根据每个主体词对应的相关词创建相关词字典树。最后,可将主体词字典树和相关词字典树进行合并以创建预设的字典树模型。
[0055]需要说明的是,可按照传统方法根据主体词和对应的相关词建立预设的字典树模型,但和传统方法不一样的是,相关词在插入预设的字典树模型时,不作为普通词条来对待,而是在其对应主体词的根节点建立几个索引,指向相关词在主体词中的位置。由此,这样可解决字典树算法在处理相同后缀词时,无法共享存储空间的短板,大大增加了内存空间的利用率。
[0056]举例而言,如图3所示,以样本词“baidu pc faster”为例,其引申出来的相关词为(“baidu pc faster”, “pc faster”, “faster”),这三个词对应预设的字典树模型中的三个遍历路径,但是这三个路径对应的叶子节点都是(baidu pc faster)。这样不管获取的样本词是“ba”、“pc”或者“fas”都有可能将“baidu pc faster”召回。
[0057]应当理解,从图3中可以发现:由于相关词和主体词共用一部分的树节点,所以可节省所需的内存空间。例如,对于包含N个样本词的词库,假使每个样本词平均字符长度为L,每个样本词会生成η个相关词,则总共所需的最大内存空间为(L+n)*N* K,其中K为单个节点的存储空间,且叶子节点与其他节点的数据结构一样,只是其后继指针为空。
[0058]需要说明的是,在本发明的一个实施例中,还需根据样本词的语境和语言类型对应的最小语言单元对样本词进行引申以生成更多的相关词。
[0059]举例而言,以泰语的语言类型为例,在泰语中,词与词之间是没有空格的,空格只会出现在句子和句子之间以及泰语和非泰语语言之间,并且泰语中很多词都是其他词的合并,所以这样导致对泰语的理解有一定难度,并且用户在输入的时候也容易产生错误。例如,“钢笔”的泰文是“ihnm”,其是由“口”(泰文为“ihn”)和“乌鸦”(泰文为“m” )组成,为了照顾到那些输错的用户,可将输入词分拆到最小单位。所以,如果有一个泰语词为“我买了一支钢笔”,其引申出来的相关词中应该包含(“我买了一支口乌鸦”)这个词条。
[0060]由此,通过对排序后的样本词进行引申以产生若干个相关词,解决了 AutoComplete领域中无法得到从中间匹配的提示结果的问题,并且通过相关词和主体词共用一部分的树节点的特征,减少了内存空间。
[0061]字典树模型在根据输入词检索提示结果的过程中起到非常重要的作用,一旦当字典树模型被创建之后,可通过查询字典树模型以获取输入词的提示结果集合,并根据提示结果集合生成最终的提示结果。
[0062]因此,为了实现上述实施例,本发明还提出了一种字典树模型的创建方法,包括:获取多个样本词;根据访问热度对多个样本词进行排序,并分别对排序后的多个样本词作为多个主体词;分别根据多个主体词生成每个主体词对应的相关词;以及根据多个主体词和每个主体词对应的相关词创建字典树模型。
[0063]图4是根据本发明一个实施例的字典树模型的创建方法的流程图。
[0064]如图4所示,该字典树模型的创建方法可以包括:
[0065]S401,获取多个样本词。
[0066]例如,可获取在一定时期内用户通过浏览器或者搜索应用程序进行搜索时,在输入框中填写的多个输入词,并对这些输入词进行去重,之后可将去重后的多个输入词作为多个样本词。
[0067]S402,根据访问热度对多个样本词进行排序,并分别对排序后的多个样本词作为多个主体词。
[0068]具体地,可按照访问热度对样本词进行降序排序,以获得降序排序的有序词表。应当理解,权重高的样本词被先插入字典树中,最后插入的为权重最低的样本词,这样只要先序遍历这个字典树得到的结果即为按照权重降序排序的结果。需要说明的是,在本发明的一个实施例中,还可以按照其他权重对样本词进行降序排序,例如,可按照语言类型中字符的先后顺序对样本词进行降序排序。
[0069]应当理解,在本发明的实施例中,主体词可为去重后的样本词。
[0070]S403,分别根据多个主体词生成每个主体词对应的相关词。
[0071]具体地,可对每个主体词W进行处理,如可根据非必留词词库去除主体词W中的非必留词等,并针对去除非必留词后的主体词W进行扩展,以生成每个主体词对应的若干个
相关词(ffl, W2, W3......) O例如,主体词“baidu pc faster”对该主体词进行引申扩展,可
引申出来的相关词为(“baidu pc faster”, “pc faster”, “faster”)。可以理解,在本发明的实施例中,相关词可为对样本词进行引申而得到的与样本词相关的词。
[0072]S404,根据多个主体词和每个主体词对应的相关词创建字典树模型。
[0073]具体而言,可先根据每个主体词创建主体词字典树,之后可根据每个主体词对应的相关词创建相关词字典树。最后,可将该主体词字典树和相关词字典树进行合并以创建字典树模型。
[0074]需要说明的是,可按照传统方法根据主体词和对应的相关词建立字典树模型,但和传统方法不一样的是,相关词在插入字典树模型时,不作为普通词条来对待,而是在其对应主体词的根节点建立几个索引,指向相关词在主体词中的位置。由此,这样可解决字典树算法在处理相同后缀词时,无法共享存储空间的短板,大大增加了内存空间的利用率。
[0075]举例而言,如图3所示,以样本词“baidu pc faster”为例,其引申出来的相关词为(“baidu pc faster”, “pc faster”, “faster”),这三个词对应字典树模型中的三个遍历路径,但是这三个路径对应的叶子节点都是(baidu pc faster)。这样不管获取的样本词是“ba”、“pc”或者“fas”都有可能将“baidu pc faster”召回。
[0076]应当理解,从图3中可以发现:由于相关词和主体词共用一部分的树节点,所以可节省所需的内存空间。例如,对于包含N个样本词的词库,假使每个样本词平均字符长度为L,每个样本词会生成η个相关词,则总共所需的最大内存空间为(L+n)*N* K,其中K为单个节点的存储空间,且叶子节点与其他节点的数据结构一样,只是其后继指针为空。
[0077]需要说明的是,在本发明的一个实施例中,还需根据样本词的语境和语言类型对应的最小语言单元对样本词进行引申以生成更多的相关词。
[0078]举例而言,以泰语的语言类型为例,在泰语中,词与词之间是没有空格的,空格只会出现在句子和句子之间以及泰语和非泰语语言之间,并且泰语中很多词都是其他词的合并,所以这样导致对泰语的理解有一定难度,并且用户在输入的时候也容易产生错误。例如钢笔”的泰文是‘‘ihnnY’,其是由“口”(泰文为ihn’)和“乌鸦”(泰文为“m”)组成,为了照顾到那些输错的用户,可将输入词分拆到最小单位。所以,如果有一个泰语词为“我买了一支钢笔”,其引申出来的相关词中应该包含(“我买了一支口乌鸦”)这个词条。
[0079]本发明实施例的字典树模型的创建方法,通过对排序后的样本词进行引申以产生若干个相关词,解决了 Auto Complete领域中无法得到从中间匹配的提示结果的问题,并且通过相关词和主体词共用一部分的树节点的特征,减少了内存空间。
[0080]为了实现上述实施例,本发明还提出了一种输入提示装置,包括:获取模块,用于获取输入词;分拆模块,用于对输入词进行分拆以获取N个分拆词,其中,N为正整数;查询模块,用于根据N个分拆词分别查询预设的字典树模型以分别获取N个提示结果集合;以及生成模块,用于根据N个提示结果集合生成最终的提示结果。
[0081]图5是根据本发明一个实施例的输入提示装置的结构示意图。
[0082]如图5所示,该输入提示装置可以包括:获取模块110、分拆模块120、查询模块130和生成模块140。
[0083]具体地,获取模块110用于获取输入词。例如,获取模块110可获取用户通过浏览器或者搜索应用程序进行搜索时在输入框中填写的输入词,如“pc faster”等。
[0084]分拆模块120用于对输入词进行分拆以获取N个分拆词,其中,N为正整数。查询模块130用于根据N个分拆词分别查询预设的字典树模型以分别获取N个提示结果集合。
[0085]更具体地,查询模块130可用N个分拆词分别去遍历预设的字典树模型,可得到N个提示结果集合。需要说明的是,在本发明的一个实施例中,可通过多个线程并发的方式对预设的字典树模型进行遍历。其中,在本发明的一个实施例中,预设的字典树模型可为预先创建的,具体的实现方式可参照后续实施例。
[0086]生成模块140用于根据N个提示结果集合生成最终的提示结果。具体而言,在本发明的一个实施例中,生成模块140可具体用于:对该N个提示结果集合进行合并,并对合并后的N个提示结果集合进行去重以生成最终的提示结果。
[0087]需要说明的是,在本发明的实施例中,最终提示结果的条数一般为10条(因为Auto Complete 一般只选择10条显示),前7条可为前驱匹配得到的提示结果,第8、9条可为中间匹配得到的提示结果,第10条可为相似匹配得到的提示结果(包含错字匹配)。这样,不仅能完成拼写自动提示,而且能知道用户的潜在检索目的以及具备纠错功能,使得Auto Complete的使用意义得到了升华。
[0088]可选地,在本发明的一个实施例中,如图5所示,该分拆模块120可以包括去除单元121和第一分拆单元122。具体地,去除单元121用于根据非必留词词库去除输入词中的非必留词,其中,非必留词词库与语言类型相关,即不同的语言类型具有不同的非必留词词库。第一分拆单元122用于对去除非必留词后的输入词进行分拆以获取N个分拆词。
[0089]应当理解,非必留词为对输入词主题表达不太重要的词,可理解为与输入词不相关的词。也就是说,用户填写的输入词中很可能包含非必留词,例如,输入词“下载PCfaster”中的“下载”就是非必留词;又例如输入词“如何发泡海参”中的“如何”。由此,去除单元121可先通过非必留词词库对非必留词进行匹配,去除匹配到的非必留词,这样可得到去除非必留词后的输入词“pc faster”。第一分拆单元122可对该“pc faster”进行分拆扩展,例如,可分拆成“pc faster”和“faster”这2个分拆词。这样,可获得输入词的前缀分拆词和中间分拆词。
[0090]可选地,在本发明的一个实施例中,如图5所示,该分拆模块120可以包括第二分拆单元123和第三分拆单元124。具体地,第二分拆单元123用于根据输入词的语境对输入词进行分拆以获取第一分拆词结果集合。第三分拆单元124用于根据语言类型对应的最小语言单元对第一分拆词结果集合进行分拆以获取第二分拆词结果集合,其中,第二分拆词结果集合包括N个分拆词。
[0091]举例而言,以输入词“pc faster”为例,第二分拆单元123可通过输入词的语境可知输入词为英文,且包含两个单词“pc”、“faster”,这样可先对输入词进行分拆以获得分拆词结果集合(“pC”、“faster”)。第三分拆单元124可根据最小语言单元对该分拆词结果集合(“pc”、“faSter”)进行分拆以获得((“p”、“c”)、( “f”、“a”、“s”、“t”、“e”、“r”))。由此,通过这种方式可将输入词分拆成最小单元,增大了检索匹配时的可能性。
[0092]可选地,在本发明的一个实施例中,该输入提示装置还可以包括创建模块150。创建模块150可具体用于:可先获取多个样本词。之后,可根据访问热度对多个样本词进行排序,并分别将排序后的多个样本词作为多个主体词。然后,可分别根据多个主体词生成每个主体词对应的相关词。最后,可根据多个主体词和每个主体词对应的相关词创建预设的字典树模型。
[0093]在本发明的一个实施例中,创建模块150还可具体用于:首先,可根据每个主体词创建主体词字典树。之后,可根据每个主体词对应的相关词创建相关词字典树。最后,可将主体词字典树和相关词字典树进行合成以创建预设的字典树模型。其中预设的字典树模型的创建的具体实现方式可参照上述方法的详细描述。
[0094]本发明实施例的输入提示装置,通过分拆模块对获取的输入词进行分拆以获取N个分拆词,查询模块根据该N个分拆词分别查询预设的字典树模型以分别获取N个提示结果集合,生成模块对该N个提示结果集合进行合并及去重以生成最终的提示结果,由此,通过对输入词进行分拆扩展以获取输入词的前缀分拆词、中间分拆词等,这样通过前缀分拆词、中间分拆词查询预设的字典树模型,可获得前缀分拆词匹配的提示结果、中间分拆词匹配的提示结果,提高了自动提示的精准性,并且,通过融入输入词的语境处理,并将输入词的分切粒度降为最小,增大了检索匹配时的可能性,提升了用户体验。
[0095]为了实现上述实施例,本发明还提出了一种字典树模型的创建装置,包括:获取模块,用于获取多个样本词;排序模块,用于根据访问热度对多个样本词进行降序排序,并分别对排序后的多个样本词作为多个主体词;生成模块,用于分别根据多个主体词生成每个主体词对应的相关词;以及创建模块,用于根据多个主体词和每个主体词对应的相关词创建字典树模型。
[0096]图6是根据本发明一个实施例的字典树模型的创建装置的结构示意图。
[0097]如图6所示,该字典树模型的创建装置可以包括:获取模块210、排序模块220、生成模块230和创建模块240。
[0098]具体地,获取模块210用于获取多个样本词。例如,获取模块210可获取在一定时期内用户通过浏览器或者搜索应用程序进行搜索时,在输入框中填写的多个输入词,并对这些输入词进行去重,之后可将去重后的多个输入词作为多个样本词。
[0099]排序模块220用于根据访问热度对多个样本词进行降序排序,并分别对排序后的多个样本词作为多个主体词。更具体地,排序模块220可按照访问热度对样本词进行降序排序,以获得降序排序的有序词表。应当理解,权重高的样本词被先插入字典树中,最后插入的为权重最低的样本词,这样只要先序遍历这个字典树得到的结果即为按照权重降序排序的结果。需要说明的是,在本发明的一个实施例中,还可以按照其他权重对样本词进行降序排序,例如,可按照语言类型中字符的先后顺序对样本词进行降序排序。
[0100]应当理解,在本发明的实施例中,主体词可为去重后的样本词。
[0101]生成模块230用于分别根据多个主体词生成每个主体词对应的相关词。更具体地,生成模块230可对每个主体词W进行处理,如可根据非必留词词库去除主体词W中的非必留词等,并针对去除非必留词后的主体词W进行扩展,以生成每个主体词对应的若干个
相关词(ffl, W2, W3......) O例如,主体词“baidu pc faster”对该主体词进行引申扩展,可
引申出来的相关词为(“baidu pc faster”, “pc faster”, “faster”)。可以理解,在本发明的实施例中,相关词可为对样本词进行引申而得到的与样本词相关的词。
[0102]创建模块240用于根据多个主体词和每个主体词对应的相关词创建字典树模型。
[0103]进一步地,在本发明的一个实施例中,如图6所示,创建模块240可以包括第一创建单元241、第二创建单元242和第三创建单元243。具体地,第一创建单元241用于根据每个主体词创建主体词字典树。第二创建单元242用于根据每个主体词对应的相关词创建相关词字典树。第三创建单元243用于将主体词字典树和相关词字典树进行合成以创建字典树模型。
[0104]需要说明的是,创建模块240可按照传统方法根据主体词和对应的相关词建立字典树模型,但和传统方法不一样的是,相关词在插入字典树模型时,不作为普通词条来对待,而是在其对应主体词的根节点建立几个索引,指向相关词在主体词中的位置。由此,这样可解决字典树算法在处理相同后缀词时,无法共享存储空间的短板,大大增加了内存空间的利用率。
[0105]举例而言,如图3所示,以样本词“baidu pc faster”为例,其引申出来的相关词为(“baidu pc faster”, “pc faster”, “faster”),这三个词对应字典树模型中的三个遍历路径,但是这三个路径对应的叶子节点都是(baidu pc faster)。这样不管获取的样本词是“ba”、“pc”或者“fas”都有可能将“baidu pc faster”召回。
[0106]应当理解,从图3中可以发现:由于相关词和主体词共用一部分的树节点,所以可节省所需的内存空间。例如,对于包含N个样本词的词库,假使每个样本词平均字符长度为L,每个样本词会生成η个相关词,则总共所需的最大内存空间为(L+n)*N* K,其中K为单个节点的存储空间,且叶子节点与其他节点的数据结构一样,只是其后继指针为空。
[0107]需要说明的是,在本发明的一个实施例中,生成模块230还需根据样本词的语境和语言类型对应的最小语言单元对样本词进行引申以生成更多的相关词。
[0108]举例而言,以泰语的语言类型为例,在泰语中,词与词之间是没有空格的,空格只会出现在句子和句子之间以及泰语和非泰语语言之间,并且泰语中很多词都是其他词的合并,所以这样导致对泰语的理解有一定难度,并且用户在输入的时候也容易产生错误。例如钢笔”的泰文是“ihnm”,其是由“口”(泰文为“ihm”)和“乌鸦”(泰文为“m” )组成,为了照顾到那些输错的用户,可将输入词分拆到最小单位。所以,如果有一个泰语词为“我买了一支钢笔”,其引申出来的相关词中应该包含(“我买了一支口乌鸦”)这个词条。
[0109]本发明实施例的字典树模型的创建装置,通过对排序后的样本词进行引申以产生若干个相关词,解决了 Auto Complete领域中无法得到从中间匹配的提示结果的问题,并且通过相关词和主体词共用一部分的树节点的特征,减少了内存空间。
[0110]需要说明的是,由于在搜索相关的【技术领域】中,最主要解决的问题是:检索、排重、排序,所以,本发明将排重和排序(如将一些文字处理和优化措施等)都放在离线来做,这样可大大增加整体的性能,以应对快速响应和大数据量的环境要求。
[0111]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属【技术领域】的技术人员所理解。
[0112]在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(R0M),可擦除可编辑只读存储器(EPR0M或闪速存储器),光纤装置,以及便携式光盘只读存储器(⑶ROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0113]应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0114]本【技术领域】的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0115]此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0116]上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0117]此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0118]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0119]尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
【权利要求】
1.一种输入提不方法,其特征在于,包括: 获取输入词; 对所述输入词进行分拆以获取N个分拆词,其中,N为正整数; 根据所述N个分拆词分别查询预设的字典树模型以分别获取N个提示结果集合;以及 根据所述N个提示结果集合生成最终的提示结果。
2.根据权利要求1所述的方法,其特征在于,所述对输入词进行分拆以获取N个分拆词包括: 根据非必留词词库去除所述输入词中的非必留词; 对去除所述非必留词后的输入词进行分拆以获取所述N个分拆词,其中,所述非必留词词库与语言类型相关。
3.根据权利要求1所述的方法,其特征在于,所述对输入词进行分拆以获取N个分拆词包括: 根据所述输入词的语境对所述输入词进行分拆以获取第一分拆词结果集合;以及根据语言类型对应的最小语言单元对所述第一分拆词结果集合进行分拆以获取第二分拆词结果集合,其中,所述第二分拆词结果集合包括所述N个分拆词。
4.根据权利要求1所述的方法,其特征在于,所述根据N个提示结果集合生成最终的提示结果包括: 对所述N个提示结果集合进行合并,并对合并后的N个提示结果集合进行去重以生成所述最终的提示结果。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述预设的字典树模型通过以下步骤创建: 获取多个样本词; 根据访问热度对所述多个样本词进行排序,并分别将排序后的多个样本词作为多个主体词; 分别根据所述多个主体词生成每个主体词对应的相关词;以及 根据所述多个主体词和所述每个主体词对应的相关词创建所述预设的字典树模型。
6.根据权利要求5所述的方法,其特征在于,所述根据多个主体词和所述每个主体词对应的相关词创建所述预设的字典树模型包括: 根据每个主体词创建主体词字典树; 根据所述每个主体词对应的相关词创建相关词字典树;以及 将所述主体词字典树和所述相关词字典树进行合成以创建所述预设的字典树模型。
7.—种字典树模型的创建方法,其特征在于,包括: 获取多个样本词; 根据访问热度对所述多个样本词进行排序,并分别对排序后的多个样本词作为多个主体词; 分别根据所述多个主体词生成每个主体词对应的相关词;以及 根据所述多个主体词和所述每个主体词对应的相关词创建字典树模型。
8.根据权利要求7所述的方法,其特征在于,所述根据多个主体词和所述每个主体词对应的相关词创建字典树模型包括:根据每个主体词创建主体词字典树; 根据所述每个主体词对应的相关词创建相关词字典树;以及 将所述主体词字典树和所述相关词字典树进行合成以创建所述字典树模型。
9.一种输入提示装置,其特征在于,包括: 获取模块,用于获取输入词; 分拆模块,用于对所述输入词进行分拆以获取N个分拆词,其中,N为正整数; 查询模块,用于根据所述N个分拆词分别查询预设的字典树模型以分别获取N个提示结果集合;以及 生成模块,用于根据所述N个提示结果集合生成最终的提示结果。
10.根据权利要求9所述的装置,其特征在于,所述分拆模块包括: 去除单元,用于根据非必留词词库去除所述输入词中的非必留词,其中,所述非必留词词库与语言类型相关;以及 第一分拆单元,用于对去除所述非必留词后的输入词进行分拆以获取所述N个分拆词。
11.根据权利要求9所述的装置,其特征在于,所述分拆模块包括: 第二分拆单元,用于根据所述输入词的语境对所述输入词进行分拆以获取第一分拆词结果集合;以及 第三分拆单元,用于根据语言类型对应的最小语言单元对所述第一分拆词结果集合进行分拆以获取第二分拆词结果集合,其中,所述第二分拆词结果集合包括所述N个分拆词。
12.根据权利要求9所述的装置,其特征在于,所述生成模块具体用于:对所述N个提示结果集合进行合并,并对合并后的N个提示结果集合进行去重以生成所述最终的提示结果O
13.根据权利要求9-12中任一项所述的装置,其特征在于,还包括:创建模块,所述创建模块具有用于: 获取多个样本词; 根据访问热度对所述多个样本词进行排序,并分别将排序后的多个样本词作为多个主体词; 分别根据所述多个主体词生成每个主体词对应的相关词;以及 根据所述多个主体词和所述每个主体词对应的相关词创建所述预设的字典树模型。
14.根据权利要求13所述的装置,其特征在于,所述创建模块还具体用于: 根据每个主体词创建主体词字典树; 根据所述每个主体词对应的相关词创建相关词字典树;以及 将所述主体词字典树和所述相关词字典树进行合成以创建所述预设的字典树模型。
15.—种字典树模型的创建装置,其特征在于,包括: 获取模块,用于获取多个样本词; 排序模块,用于根据访问热度对所述多个样本词进行降序排序,并分别对排序后的多个样本词作为多个主体词; 生成模块,用于分别根据所述多个主体词生成每个主体词对应的相关词;以及 创建模块,用于根据所述多个主体词和所述每个主体词对应的相关词创建字典树模型。
16.根据权利要求15所述的装置,其特征在于,所述创建模块包括: 第一创建单元,用于根据每个主体词创建主体词字典树; 第二创建单元,用于根据所述 每个主体词对应的相关词创建相关词字典树;以及第三创建单元,用于将所述主体词字典树和所述相关词字典树进行合成以创建所述字典树模型。
【文档编号】G06F17/30GK103914569SQ201410169141
【公开日】2014年7月9日 申请日期:2014年4月24日 优先权日:2014年4月24日
【发明者】柳阳, 谢朴锐, 任志杰, 郭楚钦 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1