首页 / 一种搜索建议生成方法、装置及系统

一种搜索建议生成方法、装置及系统有效专利 发明

技术领域

[0001] 本申请涉及互联网技术领域,特别是涉及一种搜索建议生成方法、装置及系统。

相关背景技术

[0002] 随着网络技术的快速发展,当今社会迎来了信息爆炸时代。面对网络上的海量数据,搜索引擎技术是解决信息过剩最常用的方法。搜索引擎技术是通过网络爬虫抓取网络上的大量数据,进行序列化存储,建立索引库,然后利用前段搜索页面,对用户输入的关键词进行分词处理和匹配检索,而后将符合条件的推荐信息按照一定的排序方式进行展现,供用户选择。
[0003] 在进行搜索的过程中,需要用户在搜索框中输入搜索关键词,普通用户不愿意输入太长或者过于复杂的关键词。为了能使用户尽快完成关键词的输入,节省用户的输入成本,在用户输入关键词的部分内容后,网页会采用提供搜索建议的方式,在自动下拉栏中提供若干个建议的关键词供用户选择,从而不需要用户手动输入完整的长关键词,还能在一定程度上纠正用户输入的错别字或拼写错误,为用户提供的了方便的搜索操作。
[0004] 现有的搜索建议生成方式是,在词典中记录一些高频词。当用户进行搜索时,根据当前用户已输入的部分内容,在词典中找到相匹配的高频词,供用户选择。这种搜索建议的生成方式,在某些情况下可以降低用户的输入成本,然而在生成搜索建议考虑的仅是用户当前输入内容与关键词的匹配程度,对于所有的用户而言,使用统一的高频词词典,因此不同的用户只要输入的内容相同,所给出的搜索建议都是一样的,并不能针对不同用户的兴趣爱好、背景差异提供个性化的搜索建议,因此无法进一步降低用户在搜索时的输入成本。

具体实施方式

[0057] 首先对本申请实施例所提供的一种搜索建议生成方法进行说明,该方法可以包括以下步骤:
[0058] 预先获取用户的搜索历史行为数据,根据用户的历史行为数据,生成该用户的搜索建议词典;
[0059] 接收到用户的输入的搜索内容后,实时根据当前输入内容与该用户搜索建议词典中内容的匹配关系,生成搜索建议。
[0060] 以上技术方案,是基于用户的搜索历史提供搜索建议,与现有技术相比,使得背景不同、兴趣各异的用户均能够较好地获得符合自己使用习惯的搜索建议,从而进一步降低了用户在搜索时的输入成本。此外,上述技术方案中的建议结果还能够与通用建议的结果相结合,从而提供更为全面的搜索建议给用户,以更好地满足用户需求。
[0061] 上述步骤的执行主体,可以位于服务器端,例如是在搜索引擎中的一个功能装置;也可以位于客户端,例如集成在客户端的浏览器中。与现有技术中,根据通用的高频词词典向所有的用户生成相同搜索建议的方案相比,本申请实施例所提供的技术方案是基于用户的搜索历史提供搜索建议,使得背景不同、兴趣各异的用户均能够较好地获得符合自己使用习惯的搜索建议,从而进一步降低了用户在搜索时的输入成本。此外,上述技术方案中的建议结果还能够与通用建议的结果相结合,从而提供更为全面的搜索建议给用户,以更好地满足用户需求。
[0062] 为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请保护的范围。
[0063] 图1所示为本申请实施例所提供搜索建议生成方法的一种流程图,该方法可以包括以下步骤:
[0064] S101,获取用户的搜索历史行为数据;
[0065] 本申请实施例方案,是基于用户搜索行为的历史数据,对用户的搜索兴趣进行分析,预测用户更倾向于使用哪些关键词进行搜索,作为生成搜索建议的依据。对于使用过搜索服务的每一名用户,系统都会记录用户的各种搜索行为,并将这些行为记录在用户日志中。常见的搜索行为包括:用户搜索时所使用的关键词内容、使用每个关键词的次数、用户自行输入的搜索关键词、用户利用搜索建议所选择的关键词等等。当然,对于不同应用的搜索系统,所记录的具体搜索行为数据的种类也可以各不相同,本领域技术人员可以根据实际的应用需求,获取不同类型的用户搜索历史行为数据,本实施例对此并不进行限定。
[0066] 本申请实施例方案中,除了通过服务器的端的用户日志中获取用户搜索历史行为数据之外,还可以从客户端所记录的数据(例如浏览器所生成的cookie)获取用户搜索历史行为数据。在实际应用中,可以获取用户从第一次搜索行为开始至今的所有搜索行为数据作为生成搜索建议的依据。而考虑到用户的兴趣很可能是随着时间阶段性变化的,因此也可以选择用户在最近一段时间(例如30天、60天等等)的搜索行为数据作为生成搜索建议的的依据。本领域技术人员可以根据实际需求对所查询时间段进行设定。
[0067] S102,根据用户的搜索历史行为数据,生成该用户的搜索建议词典;
[0068] 与现有技术相比,本实施例方案的区别在于:根据不同用户的搜索历史行为数据,为不同的用户分别生成搜索建议词典,从而能够根据用户间的兴趣差异,为不同用户有针对性地提供搜索建议。
[0069] S103,接收到用户的输入的搜索内容后,实时根据当前输入内容与该用户搜索建议词典中内容的匹配关系,生成搜索建议。
[0070] 在本实施例的一种实现方式中,在步骤S102可以直接将用户所使用过的所有搜索关键词记录在搜索建议词典中,后续在步骤S103,当用户进行搜索时,在输入搜索关键词的过程中,每输入一个字符,系统就到搜索建议词典中进行查找,如果有成功匹配的结果,就将结果直接作为搜索建议展示给用户。用户可以直接在所建议的结果中进行选择,以减少需要手工输入的内容,快速完成搜索请求的提交。
[0071] 在本实施例的另一种实现方式中,在步骤S102,除了将用户所使用过的搜索关键词记录在搜索建议词典中之外,还可以进一步记录用户使用每一个搜索关键词的次数。对于使用次数较多的关键词,可以认为用户在后续的搜索过程中仍有较大的可能使用该关键词,因此相应地,在步骤S103生成搜索建议时,可以将这类关键词排在比较靠前的位置。
[0072] 在本实施例的另一种实现方式中,在步骤S102,还可以进一步将“用户兴趣随时间变化”这一因素列为考虑,具体方法是,利用以下公式对关键词排序分值R进行计算:
[0073] 对于任一关键词,定义其关键词排序分值R=SN*P
[0074] 其中P为修正参数,取值范围为P∈(0,1];默认情况下,可以取P=1。当P小于1时,表示进一步考虑了其他因素计算排序分值,具体方法将在后面的实施例中进行说明。
[0075] Sn(n∈[1,N])表示该关键词对于当前用户而言,在第n天的累计分数。这里对于n的定义是:当n=1时表示所选取历史时间段的第一天,相应的,n的最大取值N应为所选取历史时间段的总天数。
[0076] 例如,当前是7月1日,取前30天的用户搜索行为作为生成搜索建议的依据,则所选取历史时间段为6月1日-6月30日,那么n=1对应的是6月1日这一天,而n的最大值N=30。计算出SN后,就可以用作在当前日期生成搜索建议的依据。
[0077] Sn的具体表达式如下:
[0078] Sn=Cn+W*Sn-1
[0079] 其中,Cn表示用户在第n天是否使用该关键词,当Cn取值1时,表示使用,当Cn取值0,表示未使用。W为修正参数,取值范围W∈(0,1)。
[0080] 可以看出,Sn的具体表达式的一个迭代公式的形式,这里设S1=0,将Sn展开,可以得到
[0081] S1=0
[0082] S2=C2+WS1=C2
[0083] S3=C3+WC2
[0084] S4=C4+WC3+
[0085] S5=C5+WC4+W2C3+W3C2
[0086] ......
[0087] 通过上面的展开可以看出,Sn的值会受到第1天到当前日期每一天的Cn影响,但是由于修正参数W小于1,因此随着距离当前日期的时间越来越久,相应日期的Cn影响也就越小,其实际意义在于,同样对于用户在前30天中所使用过搜索关键词,距离当前的日期越近,则越能体现用户的兴趣变化倾向。因此,对于用户近期经常使用的关键词和很久以前使用的关键词而言,前者将会得到更高的排序分值。
[0088] 在上述公式中的参数W,可以根据经验值预设,也可以根据更多的用户历史行为数据(可以不仅限于预定的时间段)使用fisher准则进行估算,本实施例对此并不需要进行限定。
[0089] 进一步地,还可以利用修正参数P对Sn做进一步的修正,其中P可以用以下方式确定:
[0090] 计算该关键词的长度所对应的用户点击比例P1:
[0091] 可以首先对用户曾经使用过的关键词进行统计,得到每种长度的关键词对应的用户点击比例,这里的“点击”指的是用户直接点击搜索建议的结果提交搜索请求。
[0092] 可以理解的是,按照一般的使用习惯,关键词越长,用户会越倾向于点击搜索建议而不是手动输入,因此在本实施例的另一种实现方式中,也可以先假设P1和关键词长度L的是存在线性关系,并且建立如P1=aL+b形式的线性关系模型,然后根据更多用户的搜索历史行为(可以不仅限于预定的时间段),利用最小二乘法得到参数a和b。然后,对于任意长度的搜索关键词,利用该模型直接计算得出相应的P1得分。
[0093] 计算用户点击搜索建议的次数与搜索总次数的比值P2:
[0094] 并不是所有用户都习惯使用搜索建议的结果,有些用户更习惯于手动输入,对于这类用户,即使给出了建议的结果,在很多情况下,他也不会点击。对于这类用户可以通过统计预置时间段内(点击搜索建议的次数/搜索总次数)的值作为P2的分值。
[0095] 对于上述计算得到的P1和P2,可以分别用于作为修正参数P。也可以用P1*P2的值作为修正参数P。
[0096] 通过以上方法,对词典中的存在的每一个搜索关键词都给予相应的排序分值。在步骤S103中,在搜索建议词典中存在多个与当前输入内容相匹配的关键词的情况下,可以根据词典中这些关键词排序分值的高低,对多个关键词进行排序,然后根据排序结果生成搜索建议。
[0097] 以上提供了一种基于用户的搜索历史行为,为用户提供个性化搜索建议的方法,在实际应用中,上述方法还可以此外,上述方法还可以与通用建议的结果相结合,从而提供更为全面的搜索建议给用户,以更好地满足用户需求。具体实现方案是利用在用户搜索建议词典中成功匹配的关键词,与在通用搜索建议词典中成功匹配的关键词共同生成搜索建议。
[0098] 当用户输入搜索关键词的部分内容时,一方面,系统利用上述提供的方法在用户搜索建议词典中,实时获得与当前输入内容相匹配的关键词,在本实施例中将这类与用户的个别行为相关的关键词称为第一类关键词,另一方面,利用现有技术,从通用的搜索建议词典实时获得与当前输入内容相匹配的关键词,在本实施例中将这类与用户的个别行为无关的关键词称为第二类关键词。然后,可以选取预定数量的第一类关键词,将选取结果插入第二类关键词的序列中,生成搜索建议。考虑到第一类关键词更贴近用户的实际需求,因此可以将第一类关键词排在第二类关键词的前面,以便减少用户的浏览成本。如果出现两类关键词重复的情况,系统可以对最终结果整合再进行输出。
[0099] 相应于上面的方法实施例,本申请还提供一种搜索建议生成装置,参见图2所示,该装置包括:
[0100] 词典维护单元210,用于预先获取用户的搜索历史行为数据,根据用户的历史行为数据,生成该用户的搜索建议词典;
[0101] 本申请实施例方案,是基于用户搜索行为的历史数据,对用户的搜索兴趣进行分析,预测用户更倾向于使用哪些关键词进行搜索,作为生成搜索建议的依据。对于使用过搜索服务的每一名用户,系统都会记录用户的各种搜索行为,并将这些行为记录在用户日志中。常见的搜索行为包括:用户搜索时所使用的关键词内容、使用每个关键词的次数、用户自行输入的搜索关键词、用户利用搜索建议所选择的关键词等等。当然,对于不同应用的搜索系统,所记录的具体搜索行为数据的种类也可以各不相同,本领域技术人员可以根据实际的应用需求,获取不同类型的用户搜索历史行为数据,本实施例对此并不进行限定。
[0102] 本申请实施例方案中,除了通过服务器的端的用户日志中获取用户搜索历史行为数据之外,还可以从客户端所记录的数据(例如浏览器所生成的cookie)获取用户搜索历史行为数据。在实际应用中,可以获取用户从第一次搜索行为开始至今的所有搜索行为数据作为生成搜索建议的依据。而考虑到用户的兴趣很可能是随着时间阶段性变化的,因此也可以选择用户在最近一段时间(例如30天、60天等等)的搜索行为数据作为生成搜索建议的的依据。本领域技术人员可以根据实际需求对所查询时间段进行设定。
[0103] 获取搜索历史行为数据之后,根据不同用户的搜索历史行为数据,为不同的用户分别生成搜索建议词典,从而能够根据用户间的兴趣差异,为不同用户有针对性地提供搜索建议。
[0104] 搜索建议生成单元220,用于接收到用户的输入的搜索内容后,实时根据当前输入内容与该用户搜索建议词典中内容的匹配关系,生成搜索建议。
[0105] 在在本申请方案的一种实施方式中,词典维护单元210,可以直接将用户所使用过的所有搜索关键词记录在搜索建议词典中,相应地,当用户进行搜索时,在输入搜索关键词的过程中,每输入一个字符,搜索建议生成单元220就到搜索建议词典中进行查找,如果有成功匹配的结果,就将结果直接作为搜索建议展示给用户。用户可以直接在所建议的结果中进行选择,以减少需要手工输入的内容,快速完成搜索请求的提交。
[0106] 在本实施例的另一种实现方式中,词典维护单元210,除了将用户所使用过的搜索关键词记录在搜索建议词典中之外,还可以进一步记录用户使用每一个搜索关键词的次数。对于使用次数较多的关键词,可以认为用户在后续的搜索过程中仍有较大的可能使用该关键词,因此相应地,在搜索建议生成单元220生成搜索建议时,可以将这类关键词排在比较靠前的位置。
[0107] 在本实施例的另一种实现方式中,词典维护单元210还可以进一步将“用户兴趣随时间变化”这一因素列为考虑,具体方法是,利用以下公式对关键词排序分值R进行计算:
[0108] 对于任一关键词,定义其关键词排序分值R=SN*P
[0109] 其中P为修正参数,取值范围为P∈(0,1];默认情况下,可以取P=1。当P小于1时,表示进一步考虑了其他因素计算排序分值,具体方法将在后面的实施例中进行说明。
[0110] Sn(n∈[1,N])表示该关键词对于当前用户而言,在第n天的累计分数。这里对于n的定义是:当n=1时表示所选取历史时间段的第一天,相应的,n的最大取值N应为所选取历史时间段的总天数。
[0111] 例如,当前是7月1日,取前30天的用户搜索行为作为生成搜索建议的依据,则所选取历史时间段为6月1日一6月30日,那么n=1对应的是6月1日这一天,而n的最大值N=30。计算出SN后,就可以用作在当前日期生成搜索建议的依据。
[0112] Sn的具体表达式如下:
[0113] Sn=Cn+W*Sn-1
[0114] 其中,Cn表示用户在第n天是否使用该关键词,当Cn取值1时,表示使用,当Cn取值0,表示未使用。W为修正参数,取值范围W∈(0,1)。
[0115] 可以看出,Sn的具体表达式的一个迭代公式的形式,这里设S1=0,将Sn展开,可以得到
[0116] S1=0
[0117] S2=C2+WS1=C2
[0118] S3=C3+WC2
[0119] S4=C4+WC3+
[0120] S5=C5+WC4+W2C3+W3C2
[0121] ......
[0122] 通过上面的展开可以看出,Sn的值会受到第1天到当前日期每一天的Cn影响,但是由于修正参数W小于1,因此随着距离当前日期的时间越来越久,相应日期的Cn影响也就越小,其实际意义在于,同样对于用户在前30天中所使用过搜索关键词,距离当前的日期越近,则越能体现用户的兴趣变化倾向。因此,对于用户近期经常使用的关键词和很久以前使用的关键词而言,前者将会得到更高的排序分值。
[0123] 在上述公式中的参数W,可以根据经验值预设,也可以根据更多的用户历史行为数据(可以不仅限于预定的时间段)使用fisher准则进行估算,本实施例对此并不需要进行限定。
[0124] 进一步地,词典维护单元210还可以利用修正参数P对Sn做进一步的修正,其中P可以用以下方式确定:
[0125] 计算该关键词的长度所对应的用户点击比例P1:
[0126] 可以首先对用户曾经使用过的关键词进行统计,得到每种长度的关键词对应的用户点击比例,这里的“点击”指的是用户直接点击搜索建议的结果提交搜索请求。
[0127] 可以理解的是,按照一般的使用习惯,关键词越长,用户会越倾向于点击搜索建议而不是手动输入,因此在本实施例的另一种实现方式中,也可以先假设P1和关键词长度L的是存在线性关系,并且建立如P1=aL+b形式的线性关系模型,然后根据更多用户的搜索历史行为(可以不仅限于预定的时间段),利用最小二乘法得到参数a和b。然后,对于任意长度的搜索关键词,利用该模型直接计算得出相应的P1得分。
[0128] 计算用户点击搜索建议的次数与搜索总次数的比值P2:
[0129] 并不是所有用户都习惯使用搜索建议的结果,有些用户更习惯于手动输入,对于这类用户,即使给出了建议的结果,在很多情况下,他也不会点击。对于这类用户可以通过统计预置时间段内(点击搜索建议的次数/搜索总次数)的值作为P2的分值。
[0130] 对于上述计算得到的P1和P2,可以分别用于作为修正参数P。也可以用P1*P2的值作为修正参数P。
[0131] 通过以上方法,对词典中的存在的每一个搜索关键词都给予相应的排序分值。搜索建议生成单元220在搜索建议词典中存在多个与当前输入内容相匹配的关键词的情况下,可以根据词典中这些关键词排序分值的高低,对多个关键词进行排序,然后根据排序结果生成搜索建议。
[0132] 本申请实施例还提供一种搜索建议生成系统,参见图3所示,该系统可以包括:用户建议生成装置310、通用建议生成装置320、输出装置330,
[0133] 其中,用户建议生成装置310,可以是如前所述本申请所提供的搜索建议生成装置,用于在用户搜索建议词典中进行关键词匹配;
[0134] 通用建议生成装置320,可以是现有技术中的搜索建议生成装置,用于在通用搜索建议词典中进行关键词匹配;
[0135] 所述输出装置330,用于根据所述用户建议生成装置和通用建议生成装置的成功匹配的结果,共同生成搜索建议。
[0136] 当用户输入搜索关键词的部分内容时,一方面,用户建议生成装置310在用户搜索建议词典中,实时获得与当前输入内容相匹配的关键词,在本实施例中将这类与用户的个别行为相关的关键词称为第一类关键词,另一方面,通用建议生成装置320利用现有技术,从通用的搜索建议词典实时获得与当前输入内容相匹配的关键词,在本实施例中将这类与用户的个别行为无关的关键词称为第二类关键词。然后,输出装置330可以选取预定数量的第一类关键词,将选取结果插入第二类关键词的序列中,生成搜索建议。考虑到第一类关键词更贴近用户的实际需求,因此可以将第一类关键词排在第二类关键词的前面,以便减少用户的浏览成本。如果出现两类关键词重复的情况,系统可以对最终结果整合再进行输出。
[0137] 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0138] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
[0139] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0140] 以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

当前第1页 第1页 第2页 第3页