一种基于输入前缀的下拉提示方法和装置
技术领域
本发明涉及搜索技术领域,具体涉及一种基于输入前缀的下拉提示方法和装置。
背景技术
随着互联网技术的发展,互联网上的信息呈现爆炸性的增长趋势,导致用户必须通过搜索的方式去获取需要的信息。搜索是广大网民获取信息,并访问目标网站的主要渠道。
现有的搜索方式采用前缀匹配的规则,对符合前缀的搜索结果,按照页面浏览量或点击量(PageView,PV)由多到少的排序后下拉提示给用户。PV通常是衡量一个网络新闻频道或网站甚至是一条网络新闻受关注程度的主要指标。如图1所示,用户输入“h”的时候,下拉提示结果按照PV由多到少进行排序。“hold住爱”排在第一位,表示以“h”为前缀的搜索结果中“hold住爱”的搜索次数最多;“hotmail”排在第五位,表示以“h”为前缀的搜索结果中“hotmail”的搜索次数排在第五位。如果在“h”之后再输入“o”,“hold住爱”和“hotmail”的排列顺序不变,仍然为“hold住爱”排在“hotmail”的前面。
现有的搜索方式根据搜索引擎的全局PV统计信息,将下拉提示按照PV由多到少的顺序排列,下拉提示中若没有满足用户搜索意图的关键词,或者下拉提示的关键词中虽然存在可以表达用户搜索意图的关键词,但是该关键词在下拉提示中排在比较靠下的位置,距离搜索框较远,用户不能根据输入的输入前缀得到满足搜索意图的关键词,或者虽然出现了满足搜索意图的关键词,但是还需要用户在下拉提示中找到并选择该关键词,基于用户输入前缀的下拉提示满足用户搜索意图的准确度低。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于输入前缀的下拉提示装置和相应的基于输入前缀的下拉提示方法。
依据本发明的一个方面,提供了一种基于输入前缀的下拉提示方法。
本发明实施例中,包括:
确定当前输入前缀;
统计以当前输入前缀为根的输入前缀分支中,各输入前缀的权重,以及各输入前缀下的下拉提示结果的权重;
根据各输入前缀的权重,和各输入前缀下的下拉提示结果的权重,计算各输入前缀下的下拉提示结果推荐的概率;
将下拉提示结果按照推荐的概率按序排列,并选择推荐概率大的下拉提示结果作为当前输入前缀的候选项显示在客户端;
其中,输入前缀分支中的各输入前缀至少依次包括:
根输入前缀和叶子输入前缀;输入前缀分支至少由一个根输入前缀和一个与该根输入前缀相关联的叶子输入前缀组成。
根据本发明的另一方面,提供了一种基于输入前缀的下拉提示装置。
本发明实施例中,包括:
当前输入前缀确定模块,适于确定当前输入前缀;
权重统计模块,适于统计以当前输入前缀为根的输入前缀分支中,各输入前缀的权重,以及各输入前缀下的下拉提示结果的权重;
推荐概率计算模块,适于根据各输入前缀的权重,和各输入前缀下的下拉提示结果的权重,计算各输入前缀下的下拉提示结果推荐的概率;
排序显示模块,适于将下拉提示结果按照推荐的概率按序排列,并选择推荐概率大的下拉提示结果作为当前输入前缀的候选项显示在客户端;
其中,输入前缀分支中的各输入前缀至少依次包括:
根输入前缀和叶子输入前缀;输入前缀分支至少由一个根输入前缀和一个与该根输入前缀相关联的叶子输入前缀组成。
根据本发明的一种基于输入前缀的下拉提示方法和装置,在已确定的当前输入前缀为根的输入前缀分支中,根据各输入前缀的出现次数,统计得到各输入前缀的权重,根据各输入前缀下的下拉提示结果被选中的次数,统计得到各输入前缀下的下拉提示结果的权重,根据上述统计得到的两种权重,计算出各输入前缀下的下拉提示结果推荐的概率,再将下拉提示结果按照推荐的概率按序排列。由于根据各输入前缀的权重和各输入前缀下的下拉提示结果的权重计算得到推荐的概率,考虑了用户的搜索习惯和搜索经验,使得下拉提示结果按序排列更能符合用户的搜索意图,由此解决了背景技术中基于用户输入前缀的下拉提示满足用户搜索意图的准确度低的问题,取得了提高基于用户输入前缀的下拉提示准确度的有益效果。而且,根据输入前缀的所有子输入前缀的权重和其自身的出现次数,计算得到输入前缀的权重,考虑了输入前缀所在的所有输入前缀分支中,其子输入前缀的权重,提高了输入前缀的权重的准确度。
并且,在根据统计到的权重计算得到推荐的概率的过程中,由统计到的权重计算出输入前缀间的转移概率,和输入前缀到输入前缀下的下拉提示结果的转移概率;再根据下拉提示结果的权重和相应的转移概率,计算得到下拉提示结果在相应的输入前缀下被选中的概率;然后将各下拉提示结果在不同的输入前缀下被选中的概率相加起来,得到各下拉提示结果推荐的概率。根据权重依次计算得到转移概率、被选中的概率和推荐的概率,根据客观统计得到的权重,以及影响输入前缀的输入和下拉提示结果被选择的客观规律,综合计算得到推荐的概率,整体上提高了基于用户输入前缀的下拉提示准确度。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了现有技术中基于输入前缀的下拉提示示意图;
图2示出了本发明的搜索过程信息树示意图;
图3示出了根据本发明一个实施例的一种基于输入前缀的下拉提示方法流程图;
图4示出了根据本发明一个实施例的一种基于输入前缀的下拉提示方法流程图;
图5示出了根据本发明一个实施例的一种基于输入前缀的下拉提示方法中下拉提示模型示意图;
图6示出了根据本发明一个实施例的一种基于输入前缀的下拉提示方法中用户输入输入前缀的示意图;
图7示出了根据本发明一个实施例的一种基于输入前缀的下拉提示方法中选择下拉提示结果的示意图;
图8示出了根据本发明一个实施例的一种基于输入前缀的下拉提示装置结构图;
图9示出了根据本发明一个实施例的一种基于输入前缀的下拉提示装置结构图;
图10示出了根据本发明一个实施例的一种基于输入前缀的下拉提示系统示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
在输入搜索的关键词时,用户在搜索栏或者具有搜索功能的其他位置处,输入一个字符后,即输入一个输入前缀后,可以出现两种情况,一种情况是从搜索栏或者具有搜索功能的其他位置的下拉提示中选择一个与用户的搜索意图一致的下拉提示结果直接进行搜索;另外一种情况是继续输入下一个输入前缀,然后查看下拉提示的列表中是否列出需要的下拉提示结果。
用户的一次输入搜索过程可以用一棵树来表示。其中树的根节点是用户输入的第一个输入前缀,如图2所示。图2中的“情”为用户输入的第一个输入前缀,为树的根节点;用户输入第一个输入前缀之后,可能会接着输入下一个输入前缀“侣”、“趣”、“人”等,输入前缀“侣”、“趣”、“人”等构成了树的第二层节点,该层节点代表的是从树的根节点到该层节点上的路径字或词的累加,如图2中的“情侣”,“情趣”,“情人”等。
树的根节点是用户输入的第一个输入前缀;树的叶子节点是用户输入的完整的搜索词;在根节点和叶子节点之间可能还存在中间节点,中间节点是在根节点上累加路径字或词得到的。
下面通过列举几个具体的实施例详细介绍本发明提出的一种基于输入前缀的下拉提示方法、装置和系统。
实施例一,详细介绍本发明提出的一种基于输入前缀的下拉提示方法。
参照图3,示出了根据本发明一个实施例的一种基于输入前缀的下拉提示方法流程图。
步骤S11,确定当前输入前缀。
用户在网页中的搜索栏或者浏览器的搜索栏中输入字符,会根据输入的字符出现下拉提示结果,下拉提示结果均与输入的字符相互关联。一般情况下,输入的字符为下拉提示结果的第一位或前几位字符,又或者是下拉提示结果中第一个单词或文字的第一位或前几位字符。
当输入的字符为需要搜索的字符或者是需要搜索的字符的一部分时,所述输入的字符可以理解为输入前缀。
例如,当用户在搜索栏中输入字符“h”时,确定“h”为当前输入前缀。字符“h”可以为“htc”或“hello”等字符的输入前缀。如果用户继续输入了字符“t”,那么当前输入前缀则变为“ht”。
步骤S12,统计以所述当前输入前缀为根的输入前缀分支中,各输入前缀的权重,以及各输入前缀下的下拉提示结果的权重。
在步骤S11中确定了当前输入前缀之后,以当前输入前缀为根,可以建立数个甚至数十个输入前缀分支。输入前缀分支中为根的当前输入前缀表示为根输入前缀。输入前缀分支中还可以包括其他的输入前缀,但其他的输入前缀均以当前输入前缀为根输入前缀;每个输入前缀分支中的最后一个输入前缀为叶子输入前缀。
其中,所述输入前缀分支中的各输入前缀至少依次包括:
根输入前缀和叶子输入前缀;所述输入前缀分支至少由一个根输入前缀和一个与该根输入前缀相关联的叶子输入前缀组成。
例如,“h”为当前输入前缀,以“h”为根的输入前缀分支有两条,第一条为“h-ht-htc”,第二条为“h-he”。其中,“h”、“ht”、“htc”为第一条输入前缀分支中的各输入前缀,“h”为根输入前缀,“htc”为叶子输入前缀;“h”和“he”为第二条输入前缀分支中的各输入前缀,“h”为根输入前缀,“he”为叶子输入前缀。
当输入各输入前缀后,在输入的输入前缀下会出现下拉提示结果。
例如,当通过搜索栏输入“h”后,会出现“韩国代购”、“和”等下拉提示结果,则“韩国代购”、“和”为根输入前缀“h”的下拉提示结果;输入“htc”后,搜索栏中会出现“htcg12”和“htcg11”等下拉提示结果,则“htcg12”和“htcg11”为叶子输入前缀“htc”的下拉提示结果。
所以,在以“h”为根的两条输入前缀分支中,“h”、“ht”、“htc”和“he”为各输入前缀;“韩国代购”、“和”、“htcg12”和“htcg11”为输入前缀下的下拉提示结果。
在上述例子中,统计输入前缀“h”、“ht”、“htc”和“he”的权重;统计下拉提示结果“韩国代购”、“和”、“htcg12”和“htcg11”的权重。
步骤S13,根据所述各输入前缀的权重,和各输入前缀下的下拉提示结果的权重,计算各输入前缀下的下拉提示结果推荐的概率。
根据步骤S12中统计到的各输入前缀的权重,如输入前缀“h”、“ht”、“htc”和“he”的权重,和各输入前缀下的下拉提示结果的权重,如下拉提示结果“韩国代购”、“和”、“htcg12”和“htcg11”的权重,综合计算得到各输入前缀下的下拉提示结果推荐的概率,如综合计算得到下拉提示结果“韩国代购”、“和”、“htcg12”和“htcg11”推荐的概率。
步骤S14,将所述下拉提示结果按照所述推荐的概率按序排列,并选择推荐概率大的下拉提示结果作为当前输入前缀的候选项显示在客户端的搜索栏上。
将下拉提示结果按照步骤S13中计算得到的下拉提示结果推荐的概率在下拉提示结果列表中按序排列,一般情况下,可以按照推荐的概率降序排列,如下拉提示结果“韩国代购”、“和”、“htcg12”和“htcg11”推荐的概率分别为0.04、0.03、0.02和0.01,则输入输入前缀“h”之后,可以在下拉提示结果列表中按照“韩国代购”、“和”、“htcg12”和“htcg11”的顺序,由上至下依次排列。
其中,下拉提示结果“韩国代购”推荐的概率为0.04,在各下拉提示结果推荐的概率中是最大的,则可以将下拉提示结果“韩国代购”作为当前输入前缀“h”的候选项,显示在客户端中,如显示在浏览器的搜索栏或地址栏中。
综上所述,本发明实施例一提出的一种基于输入前缀的下拉提示方法,与现有技术相比,具有以下优点:
本发明实施例一提出的一种基于输入前缀的下拉提示方法,在以确定的当前输入前缀为根的输入前缀分支中,统计得到各输入前缀的权重,和各输入前缀下的下拉提示结果的权重,根据上述统计得到的两种权重,计算出各输入前缀下的下拉提示结果推荐的概率,再将下拉提示结果按照推荐的概率按序排列。由于根据各输入前缀的权重和各输入前缀下的下拉提示结果的权重计算得到推荐的概率,考虑了用户的搜索习惯和搜索经验,使得下拉提示结果按序排列更能符合用户的搜索意图,由此解决了背景技术中基于用户输入前缀的下拉提示满足用户搜索意图的准确度低的问题,取得了提高基于用户输入前缀的下拉提示准确度的有益效果。
实施例二,详细介绍本发明提出的一种基于输入前缀的下拉提示方法。
参照图4,示出了根据本发明一个实施例的一种基于输入前缀的下拉提示方法流程图。
步骤S21,确定当前输入前缀。
用户在网页中的搜索栏或者浏览器等软件中的搜索栏中输入字符,当输入的字符为需要搜索的字符或者是需要搜索的字符的一部分时,所述输入的字符可以理解为输入前缀。
在搜索栏或具有搜索功能的地址栏等位置中输入字符时,实际的、已输入的全部字符为当前输入前缀。
所述字符可以包括字母和文字等,此处不对字符的具体范围进行限定,只要属于用于搜索的字符即可确定为输入前缀。
例如,当用户在搜索栏或具有搜索功能的地址栏中输入字符“i”时,确定“i”为当前输入前缀。字符“i”可以为“ipad”或“iphone”等字符的输入前缀;当用户输入“ip”时,“ip”为当前输入前缀
步骤S22,统计以所述当前输入前缀为根的输入前缀分支中,各输入前缀的权重,以及各输入前缀下的下拉提示结果的权重。
在步骤S21中确定了当前输入前缀之后,以当前输入前缀为根,可以建立数个甚至数十个输入前缀分支。各输入前缀分支以当前输入前缀为根,呈现树形或网状结构,输入前缀分支中为根的当前输入前缀表示为根输入前缀;每个输入前缀分支中的最后一个输入前缀为叶子输入前缀;某一输入前缀分支中的根输入前缀可以为其他输入前缀分支中得叶子输入前缀,如,输入前缀分支“hot-hotel”中,“hot”为根输入前缀,在输入前缀分支“h-ho-hot”中,“hot”为叶子输入前缀。
其中,所述输入前缀分支中的各输入前缀至少依次包括:
根输入前缀和叶子输入前缀;所述输入前缀分支至少由一个根输入前缀和一个与该根输入前缀相关联的叶子输入前缀组成。
所述输入前缀分支中的各输入前缀还可以包括:中间输入前缀;
所述中间输入前缀为根输入前缀和叶子输入前缀之间的输入前缀。
所述中间输入前缀可以为多个输入前缀。
某一输入前缀分支中的中间输入前缀也可以为其他输入前缀分支中的根输入前缀或叶子输入前缀,如输入前缀分支“h-hot-hotel”中,“hot”为中间输入前缀;在输入前缀分支“h-ho-hot”中,“hot”为叶子输入前缀;在输入前缀“hot-hotel”中,“hot”为根输入前缀。
例如,“h”为当前输入前缀,以“h”为根的输入前缀分支有两条,第一条为“h-ht-htc”,第二条为“h-he”。其中,“h”、“ht”、“htc”为第一条输入前缀分支中的各输入前缀,“h”为根输入前缀,“htc”为叶子输入前缀,“ht”在根输入前缀“h”和叶子输入前缀“htc”之间,“ht”为中间输入前缀;“h”和“he”为第二条输入前缀分支中的各输入前缀,“h”为根输入前缀,“he”为叶子输入前缀。
当输入各输入前缀后,在输入的输入前缀下会出现下拉提示结果。
例如,输入“h”后,会出现“韩国代购”、“和”等下拉提示结果,则“韩国代购”、“和”为根输入前缀“h”的下拉提示结果;输入“ht”后,会出现“htchd”等下拉提示结果,则“htchd”为中间输入前缀“ht”的下拉提示结果;输入“htc”后,会出现“htcg12”和“htcg11”等下拉提示结果,则“htcg12”和“htcg11”为叶子输入前缀“htc”的下拉提示结果。
在上述例子中,统计输入前缀“h”、“ht”、“htc”和“he”的权重;统计下拉提示结果“韩国代购”、“和”、“htcg12”、“htchd”和“htcg11”的权重。
步骤S22中,统计输入前缀的权重(步骤S221和步骤S222)与统计输入前缀下的下拉提示结果的权重(步骤S223)属于并列关系,步骤S22具体可以包括:
步骤S221,统计根输入前缀、叶子输入前缀和中间输入前缀的出现次数。
根据日志统计输入前缀分支中各输入前缀的出现次数,即统计输入前缀分支中根输入前缀、叶子输入前缀和中间输入前缀的出现次数。
所述出现次数为用户输入输入前缀的次数。如用户输入“h”50次,则输入前缀“h”的出现次数为50。
例如,统计上述以“h”为根的两条输入前缀分支中,根输入前缀“h”的出现次数为200,中间输入前缀“ht”的出现次数为100,叶子输入前缀“htc”和“he”的出现次数分别为300和50。
步骤S222,将叶子输入前缀的出现次数作为该叶子输入前缀的权重;将中间输入前缀的各子输入前缀的权重及中间输入前缀的出现次数之和,作为该中间输入前缀的权重;将根输入前缀的各子输入前缀的权重及根输入前缀的出现次数之和,作为根输入前缀的权重。
其中,所述根输入前缀的各子输入前缀是指与根输入前缀具有父子关系的孩子输入前缀;所述中间输入前缀的各子输入前缀是指与中间输入前缀具有父子关系的孩子输入前缀。
例如,根输入前缀“h”的子输入前缀为中间输入前缀“ht”和叶子输入前缀“he”;中间输入前缀“ht”的子输入前缀为叶子输入前缀“htc”。
在步骤S221中统计出的各输入前缀的出现次数之后,将叶子输入前缀“htc”的出现次数300作为叶子输入前缀“htc”的权重,即叶子输入前缀“htc”的权重为300;同理,叶子输入前缀“he”的权重为50;将中间输入前缀“ht”的子输入前缀“htc”的权重300及中间输入前缀“ht”的出现次数100之和300+100=400,作为中间输入前缀“ht”的权重;将根输入前缀“h”的子输入前缀“he”、“ht”的权重及根输入前缀“h”的出现次数之和50+400+200=650,作为根输入前缀“h”的权重。
即,根输入前缀“h”的权重为650,中间输入前缀“ht”的权重为400,叶子输入前缀“htc”的权重为300,叶子输入前缀“he”的权重为50。
步骤S223,统计各输入前缀下的下拉提示结果被命中的次数,将各输入前缀下的下拉提示结果被命中的次数作为各输入前缀下的下拉提示结果的权重。
根据日志统计输入前缀分支中各输入前缀下的下拉提示结果被命中的次数,即统计输入前缀分支中根输入前缀下的、叶子输入前缀下的和中间输入前缀下的下拉提示结果被命中的次数。
所述下拉提示结果被命中的次数为用户输入输入前缀之后,在下拉提示列表中选择下拉提示结果的次数。如用户输入“h”之后,在下拉提示列表中选择下拉提示结果“韩国代购”的次数为20次,则下拉提示结果“韩国代购”在输入前缀“h”下的被命中的次数为20。
例如,统计上述以“h”为根的两条输入前缀分支中,下拉提示结果“韩国代购”在输入前缀“h”下被命中的次数为20次;下拉提示结果“和”在输入前缀“h”下被命中的次数为25次;下拉提示结果“htchd”在输入前缀“ht”下被命中的次数为100次;下拉提示结果“htcg12”在输入前缀“htc”下被命中的次数为500次。
则下拉提示结果“韩国代购”在输入前缀“h”下的权重为20;下拉提示结果“和”在输入前缀“h”下的权重为25;下拉提示结果“htchd”在输入前缀“ht”下的权重为100;下拉提示结果“htcg12”在输入前缀“htc”下的权重为500。
步骤S23,根据所述各输入前缀的权重,和各输入前缀下的下拉提示结果的权重,计算各输入前缀下的下拉提示结果推荐的概率。
步骤S23中,计算输入前缀间的转移概率(步骤S231)与计算输入前缀到输入前缀下的下拉提示结果的转移概率(步骤S232)属于并列关系,步骤S23具体可以包括:
步骤S231,根据所述各输入前缀的权重计算输入前缀间的转移概率。
所述输入前缀间的转移概率为输入某一输入前缀之后,跟随输入下一输入前缀的概率。例如,输入输入前缀“h”之后,输入输入前缀“ht”的概率为输入前缀“h”到输入前缀“ht”之间的转移概率;输入输入前缀“h”之后,输入输入前缀“htc”的概率为输入前缀“h”到输入前缀“htc”之间的转移概率。
所述输入前缀间的转移概率可以为同一输入前缀分支中,根输入前缀到中间输入前缀的转移概率,中间输入前缀到叶子输入前缀的转移概率,也可以为根输入前缀到叶子输入前缀的转移概率。
以计算上述例子中,根输入前缀“h”到中间输入前缀“ht”的转移概率为例进行说明。
根据所述各输入前缀的权重计算输入前缀间的转移概率可以按照如下两个步骤进行:
A1)、计算输入前缀的权重与该输入前缀的出现次数的差值;
计算根输入前缀“h”的权重650与根输入前缀“h”的出现次数200的差值为650-200=450;
A2)、将所述输入前缀的某一子输入前缀的权重与对应该输入前缀的所述差值相除,得到该输入前缀到该子输入前缀的转移概率;
将根输入前缀“h”的子输入前缀中间输入前缀“ht”的权重400与根输入前缀“h”的所述差值450相除,得到根输入前缀“h”到中间输入前缀“ht”的转移概率400/450=0.889。
所述输入前缀包括根输入前缀和中间输入前缀;
当根输入前缀与某一输入前缀之间存在一个或几个中间输入前缀时,将根输入前缀与所述某一输入前缀之间的,输入前缀到子输入前缀之间的转移概率相乘,得到根输入前缀到所述某一输入前缀的转移概率。
例如,计算根输入前缀“h”到叶子输入前缀“htc”的转移概率,需要先计算出根输入前缀“h”到中间输入前缀“ht”的转移概率M1,和中间输入前缀“ht”到叶子输入前缀“htc”的转移概率M2,再将M1与M2相乘,得到根输入前缀“h”到叶子输入前缀“htc”的转移概率M1xM2。
步骤S232,根据所述各输入前缀下的下拉提示结果的权重和所述输入前缀的权重,计算输入前缀到输入前缀下的下拉提示结果的转移概率。
所述输入前缀到输入前缀下的下拉提示结果的转移概率为输入某一输入前缀之后,该输入前缀下的下拉提示结果被命中的概率。例如,输入输入前缀“h”之后,该输入前缀“h”下的下拉提示结果“韩国代购”被命中的概率为输入前缀“h”到该输入前缀“h”下的下拉提示结果“韩国代购”的转移概率。
将输入前缀下的下拉提示结果的权重与该输入前缀的权重相除,得到该输入前缀到该输入前缀下的该下拉提示结果的转移概率。
例如,计算根输入前缀“h”到根输入前缀“h”下的下拉提示结果“韩国代购”的转移概率。
将下拉提示结果“韩国代购”在根输入前缀“h”下的权重20与根输入前缀“h”的权重650相除,得到根输入前缀“h”到根输入前缀“h”下的下拉提示结果“韩国代购”的转移概率20/650=0.031。
步骤S233,根据输入前缀的权重和输入前缀下的下拉提示结果的权重,或根据所述输入前缀间的转移概率和输入前缀到输入前缀下的下拉提示结果的转移概率,计算各输入前缀下的下拉提示结果被选中的概率。
根据具体的输入前缀,包括根输入前缀、中间输入前缀和叶子输入前缀,将计算各输入前缀下的下拉提示结果被选中的概率,划分为以下三种情况:
B1)、当输入前缀为根输入前缀时,将根输入前缀下的下拉提示结果的权重与根输入前缀的权重相除,得到根输入前缀下的下拉提示结果被选中的概率。
计算根输入前缀下的下拉提示结果被选中的概率时,例如,计算根输入前缀“h”下的下拉提示结果“韩国代购”被选中的概率,将下拉提示结果“韩国代购”在根输入前缀“h”下的权重20与根输入前缀“h”的权重650相除,得到根输入前缀“h”下的下拉提示结果“韩国代购”被选中的概率20/650=0.031。
B2)、当输入前缀为中间输入前缀时,将根输入前缀到该中间输入前缀的转移概率与该中间输入前缀到该中间输入前缀下的下拉提示结果的转移概率相乘,得到该中间输入前缀下的该下拉提示结果被选中的概率。
计算中间输入前缀下的下拉提示结果被选中的概率时,例如,计算中间输入前缀“ht”下的下拉提示结果“htchd”被选中的概率,将根输入前缀“h”到中间输入前缀“ht”的转移概率M1=0.889与中间输入前缀“ht”到中间输入前缀“ht”下的下拉提示结果“htchd”的转移概率M3相乘,得到中间输入前缀“ht”下的下拉提示结果“htchd”被选中的概率为M1xM3。
B3)、当输入前缀为叶子输入前缀时,将根输入前缀到该叶子输入前缀的转移概率与该叶子输入前缀到该叶子输入前缀下的下拉提示结果的转移概率相乘,得到该叶子输入前缀下的该下拉提示结果被选中的概率。
计算叶子输入前缀下的下拉提示结果被选中的概率时,例如,计算叶子输入前缀“htc”下的下拉提示结果“htcg12”被选中的概率,将根输入前缀“h”到叶子输入前缀“htc”的转移概率M1xM2与叶子输入前缀“htc”到叶子输入前缀“htc”下的下拉提示结果“htcg12”的转移概率M4相乘,得到叶子输入前缀“htc”下的下拉提示结果“htcg12”被选中的概率M1xM2xM4。
步骤S234,根据所述被选中的概率计算所述推荐的概率。
将同一下拉提示结果在各输入前缀下被选中的概率相加,得到该下拉提示结果推荐的概率。
例如,下拉提示结果“htcg13”在根输入前缀“h”下被选中的概率为N1,在中间输入前缀“ht”下被选中的概率为N2,在叶子输入前缀“htc”下被选中的概率为N3,则将N1、N2和N3相加,得到下拉提示结果“htcg13”推荐的概率N1+N2+N3。
步骤S24,将所述下拉提示结果按照所述推荐的概率按序排列,并选择推荐概率大的下拉提示结果作为当前输入前缀的候选项显示在客户端的搜索栏上。
将下拉提示结果按照步骤S234中计算得到的下拉提示结果推荐的概率在下拉提示结果列表中按序排列,一般情况下,可以按照推荐的概率降序排列,如下拉提示结果“韩国代购”、“和”、“htcg12”和“htcg11”推荐的概率分别为0.04、0.03、0.02和0.01,则输入输入前缀“h”之后,可以在下拉提示结果列表中按照“韩国代购”、“和”、“htcg12”和“htcg11”的顺序,由上至下依次排列。
其中,下拉提示结果“韩国代购”推荐的概率为0.04,在各下拉提示结果推荐的概率中是最大的,则可以将下拉提示结果“韩国代购”作为当前输入前缀“h”的候选项,显示在客户端中,如显示在浏览器的搜索栏或地址栏中。
实施例三,详细介绍本发明提出的一种基于输入前缀的下拉提示方法。
参照图5,示出了根据本发明一个实施例的一种基于输入前缀的下拉提示方法中下拉提示模型示意图。
图5表述了以“h”为根输入前缀的下拉提示模型。其中,“h”为根输入前缀,“ht”为中间输入前缀,“he”和“htc”为叶子输入前缀。“韩国代购”、“htcg13”、“婚纱”、“和”、“htchd2”、“htcg12”、“htcg7”和“htc”(此为下拉提示结果,区别于叶子输入前缀)为下拉提示结果。并表示出各输入前缀的出现次数以及权重,和下拉提示结果在不同输入前缀下被命中的次数。
参照图6,示出了根据本发明一个实施例的一种基于输入前缀的下拉提示方法中用户输入输入前缀的示意图。
先输入“h”,则“h”作为根输入前缀,输入“h”之后,还可能输入“t”或者“e”,如果输入“h”之后输入的是“t”,则接下来还可能输入“c”。
参照图7,示出了根据本发明一个实施例的一种基于输入前缀的下拉提示方法中选择下拉提示结果的示意图。
用户在输入“h”之后,可能从下拉提示结果中选择“韩国代购”,也可能选择“htcg13”、“婚纱”或者“和”;再输入“t”之后,可能选择“htcg13”、“htc”或“htchd2”;再输入“c”之后,可能选择“htcg13”、“htcg12”或“htcg7”。
统计根输入前缀“h”的出现次数是100,中间输入前缀“he”的出现次数是223,中间输入前缀“ht”的出现次数是145,叶子输入前缀“htc”的出现次数是2156,则叶子输入前缀“htc”的权重为2156,中间输入前缀“ht”的权重为2156+145=2301,根输入前缀“h”的权重是100+223+145+2156=2624。
计算根输入前缀“h”到中间输入前缀“ht”的转移概率为p(ht|h)=2301/(2624-100)=0.9;计算中间输入前缀“ht”到叶子输入前缀“htc”的转移概率为p(htc|ht)=2156/(2301-145)=1;根输入前缀“h”到叶子输入前缀“htc”的转移概率为P(htc|h)=p(ht|h)*p(htc|ht)=0.9*1=0.9。
用户当前输入的输入前缀是“h”,则根输入前缀“h”下的下拉提示结果被选中的概率为:
p(韩国代购|h)=0.03
p(htcg13|h)=0.02
p(婚纱|h)=0.02
p(和|h)=0.003
用户当前输入的输入前缀为“h”,之后可能继续输入“t”,则中间输入前缀“ht”下的下拉提示结果被选中的概率为:
p(ht|h)*p(htcg13|ht)=0.9*0.03=0.027
p(ht|h)*p(htc|ht)=0.9*0.02=0.018
p(ht|h)*p(|htchd2|ht)=0.9*0.003=0.003
用户当前输入的输入前缀为“h”,之后可能继续输入“t”和“c”,则叶子输入前缀“htc”下的下拉提示结果被选中的概率为:
p(ht|h)*p(htc|ht)*p(htcg13|htc)=0.9*1*0.45=0.405
p(ht|h)*p(htc|ht)*p(htcg12|htc)=0.9*1*0.3=0.27
p(ht|h)*p(htc|ht)*p(htcg7|htc)=0.9*1*0.23=0.207
最终计算各下拉提示结果推荐的概率:
p(韩国代购)=p(韩国代购|h)=0.03
p(htcg13)=p(htcg13|h)+p(ht|h)*p(htcg13|ht)+p(ht|h)*p(htc|ht)*p(htcg13|htc)=0.02+0.027+0.405=0.452
p(婚纱)=p(婚纱|h)=0.02
p(和)=p(和|h)=0.003
p(htc)=p(ht|h)*p(htc|ht)=1*0.02=0.02
p(htchd2)=p(ht|h)*p(htchd2|ht)==0.9*0.003=0.003
p(htcg12)=p(ht|h)*p(htc|ht)*p(htcg12|htc)=0.9*1*0.3=0.27
p(htcg7)=p(ht|h)*p(htc|ht)*p(htcg7|htc)=0.9*1*0.23=0.207
按照各下拉提示结果推荐的概率大小排序,选取概率大的作为当前用户输入的输入前缀的候选。
当用户输入输入前缀“h”后,下拉提示结果的排列顺序为“htcg13”-“韩国代购”-“婚纱”-“和”。
当用户输入输入前缀“ht”后,下拉提示结果的排列顺序为“htcg13”-“htc”-“htchd2”。
当用户输入输入前缀“htc”后,下拉提示结果的排列顺序为“htcg13”-“htcg7”-“htcg12”。
基于上述实施例,针对图1,如果使用本发明实施例所提供的方法,用户输入“h”,并在“h”之后再输入“o”,如果结合用户的输入和搜索习惯,“hotmail”可能会排在“hold住爱”的前面,但背景技术中按照PV排序的结果是“hold住爱”排在“hotmail”的前面。
由此可知,本发明实施例三中提出的一种基于输入前缀的下拉提示方法,客观、整体地考虑到用户的搜索习惯和搜索经验,使得下拉提示结果按序排列更能符合用户的搜索意图,提高了基于用户输入前缀的下拉提示准确度。
在本实施例三中,用户输入“h”,确定了“h”为当前输入前缀,以“h”为根构建出两条输入前缀分支“h-e”和“h-t-c”。其中,“he”和“ht”为根输入前缀“h”的子输入前缀,根据根输入前缀“h”的所有子输入前缀“he”和“ht”的权重,和根输入前缀“h”的出现次数计算出根输入前缀“h”的权重,考虑到了根输入前缀“h”所在的所有输入前缀分支中,其所有子输入前缀的权重,提高了输入前缀的权重的准确度。
并且,根据客观统计得到的根输入前缀“h”、中间输入前缀“ht”、叶子输入前缀“htc”的权重和各输入前缀下的下拉提示结果的权重,以及影响输入前缀的输入(如,输入“h”后可能输入“t”,若输入“t”后还可能输入“c”,通过输入前缀间的转移概率表示,包括根输入前缀“h”到中间输入前缀“ht”的转移概率,中间输入前缀“ht”到叶子输入前缀“htc”的转移概率,和根输入前缀“h”到叶子输入前缀“htc”的转移概率)和下拉提示结果被选择(通过下拉提示结果被选中的概率表示)的客观规律,综合计算得到各下拉提示结果推荐的概率,整体上提高了基于用户输入前缀的下拉提示准确度。
如果用户输入的不是“h”,而是“ht”,则“ht”为当前输入前缀,以“ht”为根构建输入前缀分支,可以得到输入前缀分支“ht-htc”;同理,当用户输入“htc”时,则“htc”为当前输入前缀,以“htc”为根构建输入前缀分支,可以得到输入前缀分支“htc-htcds-htcds2”。后续计算下拉提示结果推荐的概率的步骤也与上述实施例中介绍的原理相同,在此不再复述。
如果用户输入字母“l”,则“l”为当前输入前缀,以“l”为根构建的输入前缀分支为“l-o-o-k”和“l-u-c-k”。其中,各输入前缀下的下拉提示结果推荐的概率已经预先离线分析计算得到。当用户输入“l”时,直接将根输入前缀“l”下的下拉提示结果按照各自预先离线分析计算得到的推荐的概率排序显示;当用户输入“lu”时,直接将根输入前缀“lu”下的下拉提示结果按照各自预先离线分析计算得到的推荐的概率排序显示。
本实施例三提出的一种基于输入前缀的下拉提示方法,根据日志构建出大量的输入前缀分支,并且预先离线分析计算得到各输入前缀分支中各输入前缀下的各下拉提示结果推荐的概率,当用户输入的输入前缀为所述构建出的大量输入前缀分支中的输入前缀时,直接将已经预先离线分析计算得到的该输入前缀下的下拉提示结果推荐的概率排序显示在客户端的搜索栏上。
实施例四,详细介绍本发明提出的一种基于输入前缀的下拉提示装置。
参照图8,示出了根据本发明一个实施例的一种基于输入前缀的下拉提示装置结构图。
所述装置包括:
当前输入前缀确定模块41,权重统计模块42,推荐概率计算模块43,以及,排序显示模块44。
下面分别详细介绍各模块的功能以及各模块之间的关系。
当前输入前缀确定模块41,适于确定当前输入前缀。
所述当前输入前缀确定模块41基于用户输入的输入前缀,确定当前输入前缀。
权重统计模块42,适于统计以所述当前输入前缀为根的输入前缀分支中,各输入前缀的权重,以及各输入前缀下的下拉提示结果的权重。
以所述当前输入前缀确定模块41确定的当前输入前缀为根的输入前缀分支中,所述权重统计模块42统计各输入前缀的权重,以及各输入前缀下的下拉提示结果的权重。
其中,所述输入前缀分支中的各输入前缀至少依次包括:
根输入前缀和叶子输入前缀;所述输入前缀分支至少由一个根输入前缀和一个与该根输入前缀相关联的叶子输入前缀组成。
推荐概率计算模块43,适于根据所述各输入前缀的权重,和各输入前缀下的下拉提示结果的权重,计算各输入前缀下的下拉提示结果推荐的概率。
所述推荐概率计算模块43根据所述权重统计模块42统计的各输入前缀的权重,和各输入前缀下的下拉提示结果的权重,计算各输入前缀下的下拉提示结果推荐的概率。
排序显示模块44,适于将所述下拉提示结果按照所述推荐的概率按序排列,并选择推荐概率大的下拉提示结果作为当前输入前缀的候选项显示在客户端的搜索栏上。
所述排序显示模块44将下拉提示结果按照所述推荐概率计算模块43计算得到的推荐的概率按序排列,并选择推荐概率大的下拉提示结果作为当前输入前缀的候选项显示在客户端的搜索栏上。
综上所述,本发明实施例四提出的一种基于输入前缀的下拉提示装置,与现有技术相比,具有以下优点:
本发明实施例四提出的一种基于输入前缀的下拉提示装置,在以确定的当前输入前缀为根的输入前缀分支中,统计得到各输入前缀的权重,和各输入前缀下的下拉提示结果的权重,根据上述统计得到的两种权重,计算出各输入前缀下的下拉提示结果推荐的概率,再将下拉提示结果按照推荐的概率按序排列。由于根据各输入前缀的权重和各输入前缀下的下拉提示结果的权重计算得到推荐的概率,考虑了用户的搜索习惯和搜索经验,使得下拉提示结果按序排列更能符合用户的搜索意图,由此解决了背景技术中基于用户输入前缀的下拉提示满足用户搜索意图的准确度低的问题,取得了提高基于用户输入前缀的下拉提示准确度的有益效果。
实施例五,详细介绍本发明提出的一种基于输入前缀的下拉提示装置。
参照图9,示出了根据本发明一个实施例的一种基于输入前缀的下拉提示装置结构图。
所述装置包括:
当前输入前缀确定模块51,权重统计模块52,推荐概率计算模块53,以及,排序显示模块54。
其中,所述权重统计模块52包括:
出现次数统计子模块521,第一权重确定子模块522,第二权重确定子模块523,第三权重确定子模块524,以及,第四权重确定子模块525。
所述推荐概率计算模块53包括:
第一转移概率计算子模块531,第二转移概率计算子模块532,选中概率计算子模块533,以及,推荐概率计算子模块534。
下面分别详细介绍各模块和各子模块的功能以及之间的关系。
当前输入前缀确定模块51,适于确定当前输入前缀。
用户在网页中的搜索栏或者浏览器等软件中的搜索栏中输入字符,当输入的字符为需要搜索的字符或者是需要搜索的字符的一部分时,所述输入的字符可以理解为输入前缀。
例如,当用户在搜索栏中输入字符“h”时,所述当前输入前缀确定模块51确定“h”为当前输入前缀。字符“h”可以为“htc”或“hello”等字符的输入前缀。
权重统计模块52,适于统计以所述当前输入前缀为根的输入前缀分支中,各输入前缀的权重,以及各输入前缀下的下拉提示结果的权重。
以所述当前输入前缀确定模块51确定的当前输入前缀为根的输入分支中,输入前缀分支中为根的当前输入前缀表示为根输入前缀;每个输入前缀分支中的最后一个输入前缀为叶子输入前缀。
其中,所述输入前缀分支中的各输入前缀至少依次包括:
根输入前缀和叶子输入前缀;所述输入前缀分支至少由一个根输入前缀和一个与该根输入前缀相关联的叶子输入前缀组成。
所述输入前缀分支中的各输入前缀还可以包括:中间输入前缀;
所述中间输入前缀为根输入前缀和叶子输入前缀之间的输入前缀。
例如,“h”为当前输入前缀,以“h”为根的输入前缀分支有两条,第一条为“h-ht-htc”,第二条为“h-he”。其中,“h”、“ht”、“htc”为第一条输入前缀分支中的各输入前缀,“h”为根输入前缀,“htc”为叶子输入前缀,“ht”在根输入前缀“h”和叶子输入前缀“htc”之间,“ht”为中间输入前缀;“h”和“he”为第二条输入前缀分支中的各输入前缀,“h”为根输入前缀,“he”为叶子输入前缀。
当输入各输入前缀后,在输入的输入前缀下会出现下拉提示结果。
例如,输入“h”后,会出现“韩国代购”、“和”等下拉提示结果,则“韩国代购”、“和”为根输入前缀“h”的下拉提示结果;输入“ht”后,会出现“htchd”等下拉提示结果,则“htchd”为中间输入前缀“ht”的下拉提示结果;输入“htc”后,会出现“htcg12”和“htcg11”等下拉提示结果,则“htcg12”和“htcg11”为叶子输入前缀“htc”的下拉提示结果。
在上述例子中,所述权重统计模块52统计输入前缀“h”、“ht”、“htc”和“he”的权重;所述权重统计模块52统计下拉提示结果“韩国代购”、“和”、“htcg12”、“htchd”和“htcg11”的权重。
所述权重统计模块52,包括:
出现次数统计子模块521,适于统计根输入前缀、叶子输入前缀和中间输入前缀的出现次数。
所述出现次数统计子模块521统计输入前缀分支中各输入前缀的出现次数,即统计输入前缀分支中根输入前缀、叶子输入前缀和中间输入前缀的出现次数。
例如,所述出现次数统计子模块521统计上述以“h”为根的两条输入前缀分支中,根输入前缀“h”的出现次数为200,中间输入前缀“ht”的出现次数为100,叶子输入前缀“htc”和“he”的出现次数分别为300和50。
所述出现次数统计子模块521,还适于统计各输入前缀下的下拉提示结果被命中的次数。
所述出现次数统计子模块521统计输入前缀分支中各输入前缀下的下拉提示结果被命中的次数,即统计输入前缀分支中根输入前缀下的、叶子输入前缀下的和中间输入前缀下的下拉提示结果被命中的次数。
例如,所述出现次数统计子模块521统计上述以“h”为根的两条输入前缀分支中,下拉提示结果“韩国代购”在输入前缀“h”下被命中的次数为20次;下拉提示结果“和”在输入前缀“h”下被命中的次数为25次;下拉提示结果“htchd”在输入前缀“ht”下被命中的次数为100次;下拉提示结果“htcg12”在输入前缀“htc”下被命中的次数为500次。
第一权重确定子模块522,适于将叶子输入前缀的出现次数作为该叶子输入前缀的权重。
例如,所述第一权重确定子模块522将叶子输入前缀“htc”的出现次数300作为叶子输入前缀“htc”的权重。
第二权重确定子模块523,适于将中间输入前缀的各子输入前缀的权重及中间输入前缀的出现次数之和,作为该中间输入前缀的权重。
例如,所述第二权重确定子模块523将中间输入前缀“ht”的子输入前缀“htc”的权重300及中间输入前缀“ht”的出现次数100之和300+100=400,作为中间输入前缀“ht”的权重。
其中,所述中间输入前缀的各子输入前缀是指与中间输入前缀具有父子关系的孩子输入前缀。
例如,中间输入前缀“ht”的子输入前缀为叶子输入前缀“htc”。
第三权重确定子模块524,适于将根输入前缀的各子输入前缀的权重及根输入前缀的出现次数之和,作为根输入前缀的权重。
例如,所述第三权重确定子模块524将根输入前缀“h”的子输入前缀“he”、“ht”的权重及根输入前缀“h”的出现次数之和50+400+200=650,作为根输入前缀“h”的权重。
其中,所述根输入前缀的各子输入前缀是指与根输入前缀具有父子关系的孩子输入前缀。
例如,根输入前缀“h”的子输入前缀为中间输入前缀“ht”和叶子输入前缀“he”。
第四权重确定子模块525,适于将各输入前缀下的下拉提示结果被命中的次数作为各输入前缀下的下拉提示结果的权重。
推荐概率计算模块53,适于根据所述各输入前缀的权重,和各输入前缀下的下拉提示结果的权重,计算各输入前缀下的下拉提示结果推荐的概率。
所述推荐概率计算模块53,包括:
第一转移概率计算子模块531,适于根据所述各输入前缀的权重计算输入前缀间的转移概率。
所述输入前缀间的转移概率为输入某一输入前缀之后,跟随输入下一输入前缀的概率。
所述输入前缀间的转移概率可以为同一输入前缀分支中,根输入前缀到中间输入前缀的转移概率,中间输入前缀到叶子输入前缀的转移概率,也可以为根输入前缀到叶子输入前缀的转移概率。
以计算上述例子中,根输入前缀“h”到中间输入前缀“ht”的转移概率为例进行说明。
所述第一转移概率计算子模块531计算输入前缀的权重与该输入前缀的出现次数的差值,将所述输入前缀的某一子输入前缀的权重与对应该输入前缀的所述差值相除,得到该输入前缀到该子输入前缀的转移概率。
所述第一转移概率计算子模块531计算根输入前缀“h”的权重650与根输入前缀“h”的出现次数200的差值为650-200=450。
所述第一转移概率计算子模块531将根输入前缀“h”的子输入前缀中间输入前缀“ht”的权重400与根输入前缀“h”的所述差值450相除,得到根输入前缀“h”到中间输入前缀“ht”的转移概率400/450=0.889。
所述输入前缀包括根输入前缀和中间输入前缀。
当根输入前缀与某一输入前缀之间存在一个或几个中间输入前缀时,所述第一转移概率计算子模块531将根输入前缀与所述某一输入前缀之间的,输入前缀到子输入前缀之间的转移概率相乘,得到根输入前缀到所述某一输入前缀的转移概率。
例如,所述第一转移概率计算子模块531计算根输入前缀“h”到叶子输入前缀“htc”的转移概率,所述第一转移概率计算子模块531需要先计算出根输入前缀“h”到中间输入前缀“ht”的转移概率M1,和中间输入前缀“ht”到叶子输入前缀“htc”的转移概率M2,再将M1与M2相乘,得到根输入前缀“h”到叶子输入前缀“htc”的转移概率M1xM2。
第二转移概率计算子模块532,适于根据所述各输入前缀下的下拉提示结果的权重和所述输入前缀的权重,计算输入前缀到输入前缀下的下拉提示结果的转移概率。
所述输入前缀到输入前缀下的下拉提示结果的转移概率为输入某一输入前缀之后,该输入前缀下的下拉提示结果被命中的概率。
所述第二转移概率计算子模块532将输入前缀下的下拉提示结果的权重与该输入前缀的权重相除,得到该输入前缀到该输入前缀下的该下拉提示结果的转移概率。
例如,所述第二转移概率计算子模块532将下拉提示结果“韩国代购”在根输入前缀“h”下的权重20与根输入前缀“h”的权重650相除,得到根输入前缀“h”到根输入前缀“h”下的下拉提示结果“韩国代购”的转移概率20/650=0.031。
选中概率计算子模块533,适于根据输入前缀的权重和输入前缀下的下拉提示结果的权重,或根据所述输入前缀间的转移概率和输入前缀到输入前缀下的下拉提示结果的转移概率,计算各输入前缀下的下拉提示结果被选中的概率。
当输入前缀为根输入前缀时,所述选中概率计算子模块533将根输入前缀下的下拉提示结果的权重与根输入前缀的权重相除,得到根输入前缀下的下拉提示结果被选中的概率。
例如,所述选中概率计算子模块533将下拉提示结果“韩国代购”在根输入前缀“h”下的权重20与根输入前缀“h”的权重650相除,得到根输入前缀“h”下的下拉提示结果“韩国代购”被选中的概率20/650=0.031。
当输入前缀为中间输入前缀时,所述选中概率计算子模块533将根输入前缀到该中间输入前缀的转移概率与该中间输入前缀到该中间输入前缀下的下拉提示结果的转移概率相乘,得到该中间输入前缀下的该下拉提示结果被选中的概率。
例如,所述选中概率计算子模块533将根输入前缀“h”到中间输入前缀“ht”的转移概率M1=0.889与中间输入前缀“ht”到中间输入前缀“ht”下的下拉提示结果“htchd”的转移概率M3相乘,得到中间输入前缀“ht”下的下拉提示结果“htchd”被选中的概率为M1xM3。
当输入前缀为叶子输入前缀时,所述选中概率计算子模块533将根输入前缀到该叶子输入前缀的转移概率与该叶子输入前缀到该叶子输入前缀下的下拉提示结果的转移概率相乘,得到该叶子输入前缀下的该下拉提示结果被选中的概率。
例如,所述选中概率计算子模块533将根输入前缀“h”到叶子输入前缀“htc”的转移概率M1xM2与叶子输入前缀“htc”到叶子输入前缀“htc”下的下拉提示结果“htcg12”的转移概率M4相乘,得到叶子输入前缀“htc”下的下拉提示结果“htcg12”被选中的概率M1xM2xM4。
推荐概率计算子模块534,适于根据所述被选中的概率计算所述推荐的概率。
所述推荐概率计算子模块534将同一下拉提示结果在各输入前缀下被选中的概率相加,得到该下拉提示结果推荐的概率。
例如,下拉提示结果“htcg13”在根输入前缀“h”下被选中的概率为N1,在中间输入前缀“ht”下被选中的概率为N2,在叶子输入前缀“htc”下被选中的概率为N3,则所述推荐概率计算子模块534将N1、N2和N3相加,得到下拉提示结果“htcg13”推荐的概率N1+N2+N3。
排序显示模块54,适于将所述下拉提示结果按照所述推荐的概率按序排列,并选择推荐概率大的下拉提示结果作为当前输入前缀的候选项显示在客户端。
所述排序显示模块54将下拉提示结果按照所述推荐概率计算子模块534计算得到的下拉提示结果推荐的概率在下拉提示结果列表中按序排列。一般情况下,可以按照推荐的概率降序排列。
并且,下拉提示结果“韩国代购”推荐的概率为0.04,在各下拉提示结果推荐的概率中是最大的,所述排序显示模块54可以将下拉提示结果“韩国代购”作为当前输入前缀“h”的候选项,显示在客户端中,如显示在浏览器的搜索栏或地址栏中。
本发明实施例五提出的一种基于输入前缀的下拉提示装置,通过装置中各模块和各子模块,在以确定的当前输入前缀为根的输入前缀分支中,根据各输入前缀的出现次数,统计得到各输入前缀的权重,根据各输入前缀下的下拉提示结果被选中的次数,统计得到各输入前缀下的下拉提示结果的权重,根据上述统计得到的两种权重,计算出各输入前缀下的下拉提示结果推荐的概率,再将下拉提示结果按照推荐的概率按序排列。由于根据各输入前缀的权重和各输入前缀下的下拉提示结果的权重计算得到推荐的概率,考虑了用户的搜索习惯和搜索经验,使得下拉提示结果按序排列更能符合用户的搜索意图,由此解决了背景技术中基于用户输入前缀的下拉提示满足用户搜索意图的准确度低的问题,取得了提高基于用户输入前缀的下拉提示准确度的有益效果。而且,根据输入前缀的所有子输入前缀的权重和其自身的出现次数,计算得到输入前缀的权重,考虑了输入前缀所在的所有输入前缀分支中,其子输入前缀的权重,提高了输入前缀的权重的准确度。
并且,在根据统计到的权重计算得到推荐的概率的过程中,由统计到的权重计算出输入前缀间的转移概率,和输入前缀到输入前缀下的下拉提示结果的转移概率;再根据下拉提示结果的权重和相应的转移概率,计算得到下拉提示结果在相应的输入前缀下被选中的概率;然后将各下拉提示结果在不同的输入前缀下被选中的概率相加起来,得到各下拉提示结果推荐的概率。根据权重依次计算得到转移概率、被选中的概率和推荐的概率,根据客观统计得到的权重,以及影响输入前缀的输入和下拉提示结果被选择的客观规律,综合计算得到推荐的概率,整体上提高了基于用户输入前缀的下拉提示准确度。
实施例六,详细介绍运行本发明提出的一种基于输入前缀的下拉提示方法和装置的系统。
参照图10,示出了根据本发明一个实施例的一种基于输入前缀的下拉提示系统示意图。
所述系统预先离线分析计算得到各输入前缀分支中各输入前缀下的各下拉提示结果推荐的概率,当用户在客户端上输入的输入前缀为所述构建出的大量输入前缀分支中的输入前缀时,直接将根据已经预先离线分析计算得到的该输入前缀下的下拉提示结果推荐的概率,排序得到的候选项显示在客户端的搜索栏上。
所述系统包括:
客户端61,代理节点62,元数据服务器63,以及,存储节点64。
其中,代理节点62,具体可以包括:
查询转发模块621,数据转发模块622,路由表同步模块623,以及,路由表更新模块624。
客户端61,适于接收搜索目标关键字请求,并将所述搜索目标关键字请求发送至代理节点62,所述搜索目标关键字请求中包含当前输入前缀。
代理节点62,代理节点62具体可以包括:
查询转发模块621,适于将所述搜索目标关键字请求转发至相应的存储节点64;基于全局路由表信息查询相应的存储节点。
数据转发模块622,适于将存储节点64返回的对应当前输入前缀的候选项转发至客户端61。
所述对应当前输入前缀的候选项为推荐概率大的下拉提示结果。
路由表同步模块623,适于将元数据服务器63的全局路由表信息同步至代理节点62。
路由表更新模块624,适于当收到元数据服务器63的路由表更新通知时,从元数据服务器63更新全局路由表信息。
当出现某个存储节点64故障或者新增存储节点64时,元数据服务器63上维护的全局路由表信息都会发生变化,因而,此时可以通过路由表更新模块624更新全局路由表信息。
元数据服务器63,适于维护指向存储节点64的全局路由表信息;维护存储以及相应的修改更新等。
至少一个存储节点64,适于基于接收到的客户端61输入搜索目标关键字请求,从本地存储中获取所需数据,即根据预先离线分析计算得到的当前输入前缀的下拉提示结果推荐的概率,排序得出的候选项,并发送当前输入前缀的的候选项至代理节点62。
在本实施例六所述的系统中,客户端61将接收到的输入搜索目标关键字请求发送至代理节点62。
代理节点62中的查询转发模块621基于全局路由表信息,将请求转发给相应的存储节点64。
存储节点64基于接收到的请求,从本地存储中获取所需数据,并发送包括目标Value的回应包给代理节点62。
代理节点62中的数据转发模块622将存储节点64返回的包括目标Value的回应包传送给客户端61。
至此,所述系统完成了一次基于输入前缀的下拉提示方法的工作过程。
需要强调的是,存储节点64从本地存储中获取的所需数据,可以是根据预先离线分析计算得到各输入前缀分支中各输入前缀下的各下拉提示结果推荐的概率,排序得出的各输入前缀的候选项。存储节点64可以包括上述一种基于输入前缀的下拉提示装置中的全部或者部分模块。只是,得到各输入前缀分支中各输入前缀下的各下拉提示结果推荐的概率的计算过程是预先离线进行的,当用户在客户端61上输入某输入前缀时,通过代理节点62,将已经根据预先离线分析计算得到的该输入前缀所在输入前缀分支中各输入前缀下的各下拉提示结果推荐的概率,排序得出的该输入前缀的候选项发送到客户端61上显示。存储节点64也可以包括对应当前输入前缀的候选项,所述对应当前输入前缀的候选项是在预先离线分析计算得到的各输入前缀分支中各输入前缀下的各下拉提示结果推荐的概率中,概率大的下拉提示结果。
当元数据服务器63将路由表更新通知发送到代理节点62时,代理节点62中的路由表更新模块624,从元数据服务器63获取新的全局路由表信息。
并且,路由表同步模块623,将元数据服务器63的全局路由表信息同步至本地代理节点62。
当客户端61实时地接收到搜索目标关键字请求时,可以将预先离线分析计算得到的对应当前输入前缀的候选项加载并显示到客户端61的搜索栏上。
假如预先离线分析计算得到两条数据:
输入前缀K1和其候选项V1;
输入前缀K2和其候选项V2。
当客户端61实时接收到的搜索目标关键字请求中的当前输入前缀为K1时,可以将预先离线分析计算得到的与当前输入前缀为K1对应的候选项V1显示在客户端的搜索栏上;当客户端61实时接收到的搜索目标关键字请求中的当前输入前缀为K2时,可以将预先离线分析计算得到的与当前输入前缀为K2对应的候选项V2显示在客户端的搜索栏上。
所述系统可以对预先离线分析计算得到的数据逐条进行更新,例如,对输入前缀K1对应的候选项V1进行一次更新操作;对输入前缀K2对应的候选项V2进行一次更新操作。所述更新操作可以多线程同时进行,相互之间不受影响。
需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必需的。
对于上述装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如上面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在上面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于输入前缀的下拉提示装置和系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。