搜索方法、搜索装置以及搜索服务器
技术领域
本发明涉及搜索领域,尤其涉及对搜索词时效性的判定。
背景技术
随着互联网的发展和搜索技术的改善,人们愈发依赖搜索引擎从互联网的海量信息中及时准确地获取自己所需的信息。用户通过向搜索引擎提交查询来获取相应的结果。通常情况下,搜索引擎返回的最为相关的结果。但是对于突发或者热门事件,用户会更倾向于获取时效性更好的结果,例如,最新消息或是近期的新闻专题。
信息的时效性是指信息的效用依赖于时间并有一定的期限,其价值的大小与提供信息的时间密切相关。传统方法会从字面上去分析用户的时效性需求,该方法只在用户的搜索请求中包含时效性的特征词的时候才能起作用。但是通常用户都倾向于提交更短的中心词,这种情况在使用移动设备时更为明显。如何在缺少时效性特征词的情况下更为快速和准确的判断出用户的时效性需求,并给出更为及时或是最新的信息,对于搜索,尤其是移动搜索而言十分重要。
发明内容
一般情况下,将由于突发和热门事件引发的时效性称为突发时效性。从搜索服务的角度上看,当出现突发时效性事件时,通常都伴随着资源突发和相关搜索突发,即,相关新闻和搜索量的显著增加。
基于上述认识,本申请通过在线实时统计用户搜索的相关资源和相关搜索的数量来建立时间序列统计分析模型,通过分析时间序列模型来判断用户是否具有时效性需求。上述分析可以是白噪声检验或基于某些默认时间点的趋势分析。在未通过白噪声检验或是趋势分析显示出突变性的前提下,再寻找序列中的突变点,通过对比突变点前后的序列数据的差异来判断时效性的强度和趋势,由此作为调序搜索结果的进一步的指导。
于是,本发明能够在缺少时效性特征词的情况下快速准确地判断出用户的时效性需求。
在本发明的一个方面,公开了一种搜索方法,包括:接收用户的搜索请求以获取搜索词;获取基于所述搜索词得到的搜索结果、搜索结果数量以及与所述搜索词相关的搜索数量;对一定时间段内的所述搜索结果数量和所述搜索数量进行时序分析,以判断所述搜索词的时效性;响应于判定所述搜索词具有时效性,以时效性作为调序依据对所述搜索结果的排列顺序进行调整。
这样,通过对仅对搜索结果的数量和搜索请求的数量进行时序分析,就能推断出缺乏时间词的用户搜索的时效性意图,由此提升返回内容的准确性,从而改善用户的搜索体验。
优选地,对搜索结果数量和搜索数量进行时序分析,以判断所述搜索词的时效性特征的步骤可以包括:将所述时间段内的搜索结果数量和搜索数量按时间间隔划分,生成第一时间序列数据;对所述第一时间序列数据进行白噪声检验并根据所述白噪声检验的结果判断所述搜索词的时效性特征。
上述“时间间隔”例如可以是一天,比如将两个月内的数据按天划分,得到第一时间序列数据。这样,通过常见的白噪声检验对已有数量数据的时序分析,为本发明的搜索方法提供了一个相对简单的实现。
优选地,对第一时间序列数据进行白噪声检验并根据所述白噪声检验的结果判断所述搜索词的时效性特征的步骤可以包括:假设所述第一时间序列数据x1,x2,x3...xn的QLB统计量符合卡方分布:
其中n是所述时间段经所述时间间隔划分后得到的值,
m是自由度,
是自相关系数;响应于所述QLB统计量的P值小于作为约定的显著性水平的第一阈值,判断搜索词具有时效性特征。
这样,通过本领域周知的Q值和P值进行白噪声检验,为本发明的搜索方法提供了一个相对简单的实现。
优选地,对所述搜索结果数进行时序分析,以判断所述搜索词的时效性特征的可以步骤包括:选择与当前时刻相距不同时段的默认时间点,计 算当前时刻到默认时间点的各时段内的搜索结果数量M1,M2,...,Mj-1,Mj,其中j是默认时间点的个数,且所述时段中的最长不长于获取搜索结果数量的所述时间段;求取从所述时段中的最长时段到所述时间段之间按所述时间间隔划分的每一项的平均值Mm,计算M1,M2,...,Mj-1,Mj与Mm的比值:
响应于有任一项R的值大于第二阈值,判断所述搜索词具有时效性特征。
这样,通过设置默认时间点来对已有的搜索结果数量数据进行趋势分析,就能通过简单的计算来判断搜索词的时效性,由此为实现本申请的目的提供了另一个简单的实现方式。
优选地,如果判断所述搜索词具有时效性,则时序分析还可以包括进行突变点检测,以找出表征所述时效性的突变点位置。
由于不仅判断时效性,还具体找出突变点的位置,就能够更为精确地为用户返回搜索结果,由此改善用户的搜索体验。
优选地,突变点检测可以针对上述第一时间序列数据进行,并且包括:找出使下式的五个值都大于第三阈值的k值以确定突变点的位置:
diff1=xk-xk-1
diff2=xk-xk-2
diff3=xk-xk-3。
diff4=xk+1-xk-1
diff5=xk+2-xk-1
这样,通过简单的差分判断就能够找出突变点位置,并且还能够根据突变点的位置更为精确地对搜索结果进行调序,以返回更符合用户需要的内容。
优选地,还可以根据找出的k值,将所述第一时间序列数据划分成2个单独的时间序列数据S1=x1,x2...xk-1,S2=xk,xk+1...xn,并根据S1和S2的数据模型判断时效性是在增强、衰减还是趋于平稳;以及根据时效性是在增强、衰减还是趋于平稳作为调序依据对所述搜索结果的排列顺序进行调整。
这样,通过对k点前后的数据分别建模,就能够判断出时效性的趋势,由此进一步精确对搜索结果的调序。
根据本发明的另一方面,公开了一种搜索装置,包括:接收单元,用于 接收用户的搜索请求以获取搜索词;获取单元,用于获取基于所述搜索词得到的搜索结果、搜索结果数量以及与所述搜索词相关的搜索数量;时序分析单元,用于对一定时间段内的所述搜索结果数量和所述搜索数量进行时序分析,以判断所述搜索词的时效性;以及调序单元,用于响应于判定所述搜索词具有时效性,以时效性作为调序依据对所述搜索结果的排列顺序进行调整。
优选地,时序分析单元还可以用于将所述时间段内的搜索结果数量和搜索数量按时间间隔划分,生成第一时间序列数据;并对所述第一时间序列数据进行白噪声检验并根据所述白噪声检验的结果判断所述搜索词的时效性。
优选地,时序分析单元还可用于:假设所述第一时间序列数据x1,x2,x3...xn的QLB统计量符合卡方分布:
其中n是所述时间段经所述时间间隔划分后得到的值,
m是自由度,
是自相关系数;并响应于所述QLB统计量的P-value小于作为约定的显著性水平的第一阈值,判断所述搜索词具有时效性特征。
优选地,时序分析单元还可用于:选择与当前时刻相距不同时段的默认时间点,计算当前时刻到默认时间点的各时段内的搜索结果数量M1,M2,...,Mj-1,Mj,其中j是默认时间点的个数,且所述时段中的最长时段不长于获取搜索结果数量的所述时间段;求取从所述时段中的最长时段到所述时间段之间按所述时间间隔划分的每一项的平均值Mm,计算M1,M2,...,Mj-1,Mj与Mm的比值:
响应于有任一项R的值大于第二阈值,判断所述搜索词具有时效性特征。
优选地,如果所述时序分析单元判断所述搜索词具有时效性,则所述时序分析单元还可以进行突变点检测,以找出表征所述时效性的突变点位置。
优选地,所述突变点检测可以包括找出时下式的五个值都大于第三阈值的k值以确定突变点的位置:
diff1=xk-xk-1
diff2=xk-xk-2
diff3=xk-xk-3。
diff4=xk+1-xk-1
diff5=xk+2-xk-1
优选地,所述时序分析单元还可以根据找出的k值,将所述第一时间序列数据划分成2个单独的时间序列数据S1=x1,x2...xk-1,S2=xk,xk+1...xn,并根据S1和S2的数据模型判断时效性是在增强、衰减还是趋于平稳;以及调序单元可以根据时效性是在增强、衰减还是趋于平稳作为调序依据对所述搜索结果的排列顺序进行调整。
根据本发明的又一方面,公开了一种搜索服务器,包括:存储器,用于与搜索词关联存储的网络信息并存储用户对搜索词的搜索记录;接收装置,用于接收用户的搜索请求;处理器,连接到所述存储器和所述接收装置,用于从由所述接收装置接收的所述搜索请求获取搜索词,从存储器中获取基于所述搜索词得到的搜索结果、搜索结果数量以及与所述搜索词相关的搜索数量,对一定时间段内的所述搜索结果数量和所述搜索数量进行时序分析来判断所述搜索词的时效性,以及响应于判定所述搜索词具有时效性,以时效性作为调序依据对所述搜索结果的排列顺序进行调整;发送装置,用于向用户的客户端设备发送以时效性作为调序依据调整了排列顺序的所述搜索结果。
由此,就为根据本发明的搜索方法提供了装置上的支持。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1是根据本发明一个实施例的一种搜索方法的示意性流程图。
图2是根据本发明的一个实施例的一种搜索装置的示意性方框图。
图3是根据本发明的一个实施例的一种搜索服务器的硬件组成图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1是根据本发明一个实施例的一种搜索方法的示意性流程图。
在步骤S110,接收用户的搜索请求以获取搜索词。
在步骤S120,获取基于该搜索词得到的搜索结果、搜索结果数量以及与该搜索词相关的搜索数量。
在步骤S130,对一定时间段内的搜索结果数量和搜索数量进行时序分析,以判断所述搜索词的时效性。
在步骤S140,响应于判定所述搜索词具有时效性,以时效性作为调序依据对所述搜索结果的排列顺序进行调整。
由此,就能够仅通过对一定时间内搜索结果的数量和搜索的数量进行时序分析来实现对搜索词时效性的判断,并由此对搜索结果的排列顺序进行相应的调整。
在这里,时序分析所指的是本领域内周知的概念,即“将一组按时间顺序排列的观测数据(称为时序)与某种参数模型拟合并进行分析”。
对步骤S110加以进一步说明。搜索引擎都是根据用户的搜索请求来召回相应的文档。一般情况下,用户的搜索请求各种各样。如果仅按字面查询则很可能会漏掉大量相关结果。由此,需要对用户请求进行一定的处理,例如,需要去掉搜索请求中的一些不重要的词,并对用户搜索中的部分词语进行适当的变换,增加召回的结果的数据。
从搜索请求中获取搜索词的处理并非本发明的主要内容,在此不再赘述。
在一个优选实施例中,步骤S130可以包括将上述一定时间段内的搜索结果数量和搜索数量按一定时间间隔划分,生成第一时间序列数据。上述“时间间隔”例如可以是一天,上述“时间段”例如可以是两个月(为方便计算,视为60天),因此比如可以将近两个月的数据按天划分来生成第一时间序列数据。如下将结合示例详述对搜索结果数量和搜索数量的数据准备。
本发明用来判断用户时效性需求的依据主要是两份数据,一份是用户请求的相关资讯的数量(例如,相关新闻的数量),另外一份是其他用户进行类似搜索的数量。在一个优选实施例中,可以预先将这两份数据分别建成资讯索引和查询日志索引以便后续的数据统计和召回。
在一个优选实施例中,资讯索引可以包括两部分:天级更新索引和实时更新索引。资讯索引的数据来源,例如可以是人工和机器挑选出来的新闻的种子页面,爬虫实时的爬取种子页面上页面的链接,将爬取的新闻数据建立索引。
在一个优选实施例中,查询日志索引可以包括两个部分:天级更新索引和小时级更新索引。该查询日志的数据可以来自线上用户搜索的实时查询日志。
在一个优选实施例中,资讯索引可以是从当前时间起两个月内索引的资讯页面(例如,爬虫爬取到的新闻页面),获取的值是相关资讯页面的数量。
在一个优选实施例中,查询日志索引相应地可以是从当前时间起两个月内所有的用户搜索的查询日志,获取的是相关或者相似查询的数量。
在一个优选实施例中,上述天级更新索引可以是按1天、2天、3天…60天逐天更新的索引。小时级更新例如可以是以1小时、3小时、6小时、9小时、12小时、15小时、18小时、21小时、24小时进行更新。
应该理解的是,以上关于两个月、逐天、每三小时的限定仅是为方便说明而提供的例子,本领域技术人员可以根据具体实现选取不同的值。获取原始数据的“一定时间段”可以是两个月之外的任何合适时间段,例如两周、一个月、半年等。用于划分该一定时间段的“时间间隔”可以是一天之外的任何时间间隔,例如半天、隔天、每三天等。“小时级更新”可以是例如每小时、每两小时、甚至是间隔不等的更新。显而易见的是,这些变化 都位于本发明原理所涵盖的范围之内。
在一个优选实施例中,将用户查询召回的资源数量和相关搜索的数量按照一定时间间隔进行划分,得到一个带有时间下标的向量,将数据按照离当前时间的远近排序,生成时间序列数据x1,x2,x3...xn。例如,将近两个月(这里为方便计算,取两个月为60天)的数据按天划分,得到时间序列数据x1,x2,x3...xn,这里n取1到60之间的整数。
在对第一时间序列数据进行分析时,首先建立如下的基本假设:在正常的随机查询下召回的相关结果和相关查询满足正态分布,生成的时间序列是白噪声,而在查询具有时效性特征时,召回的时间序列存在突变点,并且突变点前和突变点后的数据的分布明显不同。
随后,可以对时间序列数据x1,x2,x3...xn进行基本统计量的计算。基本统计量可以包括均值,方差,自协方差和自相关系数等。
在一个优选实施例中,步骤S130还可以包括对所述第一时间序列数据进行白噪声检验并根据白噪声检验的结果判断搜索词的时效性。
在一个优选实施例中,假设所述第一时间序列数据x1,x2,x3...xn的QLB统计量符合卡方分布:
其中n是所述时间段经所述时间间隔划分后得到的值,
m是自由度,
是自相关系数;响应于所述QLB统计量的P值(P-value)小于作为约定的显著性水平的第一阈值,判断所述搜索词具有时效性特征。
具体地,在这里可以直接使用按天级汇总的值。在计算仅30天数据的情况下,假如今天是30号,那么检测用的序列数据就是本月30号、29号、28号…3号、2号和1号的数据。
在一个优选实施例中,步骤S130可以包括选择与当前时刻相距不同时段的默认时间点,计算当前时刻到默认时间点的各时段内的搜索结果数量M1,M2,...,Mj-1,Mj,其中j是默认时间点的个数,且所述时段中的最长不长于获取搜索结果数量的所述时间段;求取从所述时段中的最长时段到所述时间段之间按所述时间间隔划分的每一项的平均值Mm,计算M1,M2,...,Mj-1,Mj与Mm的比值:
响应于有任一项R的值大于第二阈值,判断搜索词具有时效性特征。
具体地,在一个优选实施例中,可以在原始时间序列包括近两个月(例如,60天)的数据的情况下选择如下五个默认时间点:离当前时间点1小时、3小时、1天、3天和7天。对由这五个时间点划分出的时间段内的数据进行求和。对第六个时段,即第7天至第60天,计算该时段内基本时间序列数据的均值Mm。在一个优选实施例中,可以在计算均值时去掉一个最高值和去掉一个最低值,以防止异常数据造成的统计结果和真实的模型发生大的偏离。由此,得到上述六个时段的平均资源数量:
Mh1,Mh3,Md1,Md3,Md7,Mm
求取前五个时段相当于第六个背景时段的比值:
通过分析上述的比例数据,如果上述R值中有任一个大于某一特定阈值,则认为搜索结果体现出时效性特征。
由此可知,可以对一定时间段内的搜索结果数量和搜索数量进行时序分析,通过对搜索结果数量和搜索数量的白噪声检验来判断搜索词的时效性。也可以对搜索结果数量进行默认时间点的趋势分析,作为上述通过白噪声检验进行判断的补充或是替换。
在一个优选实施例中,在通过上述途径判断出用户的当前查询具有时 效性特征之后,可以对时间序列数据进行更细致的分析以确定时效性的强度和趋势。
在一个优选实施例中,可以在判断搜索词具有时效性之后,对第一时间序列模型进行突变点检测,以找出表征所述时效性的突变点位置。
在数据无法通过白噪声检验和/或默认时间点分割的时间序列的数据的分布差异比较明显的情况下。可以认为当前用户查询很有可能具有时效性。由此可以根据之前的假设,认为该时效性查询对应的时间序列数据存在突变点,通过寻找突变点和分析突变点前后的序列数据的分布的变化,能够帮助我们分析和判断时效性的强度和趋势。
在一个优选实施例中,可以使用差分检测来寻找突变点。具体地,可以计算在某一个时间点的差分值是否发生了剧烈的变化。在这里,仍然可以使用前例中的时间序列数据x1,x2,x3...xn。在n取1到60之间的整数时,在近六个月的实践中查找突变点(以某一天为限)。在一个优选实施例中,可以仅使用近30天的数据来进行计算。
在一个优选实施例中,可以计算如下的5个差分值可以大致确定时间序列的突变点的位置。
diff1=xk-xk-1
diff2=xk-xk-2
diff3=xk-xk-3
diff4=xk+1-xk-1
diff5=xk+2-xk-1
当这5个值的绝对值都大于某一特定的阈值时,可以推测这个值就是这个时间序列的突变点。即,时间序列数据的分布在此时发生结构突变。
应该理解的是,也可以根据具体实现计算更多和更少个差分值(例如,3个、7个),这都在本发明原理所涵盖的范围之内。
在找出突变点之后,则可以根据找出的k值,将第一时间序列数据划分成2个单独的时间序列数据S1=x1,x2...xk-1,S2=xk,xk+1...xn,并根据S1和S2的数据模型判断时效性是在增强、衰减还是趋于平稳,并且根据时效性是在增强、衰减还是趋于平稳来作为搜索结果调序依据。
一般情况下,如果突变点后的数据均值远大于突变点之前的数据均值,则可以认为在突变点时刻之后相应查询的资源发生了爆发。如果突变点后 的差分持续为正,则可认为与搜索词对应的事件或者对象在持续的发酵,如果二阶差分持续为正那么则更有证据表明其时效性在不断增强。如果分析差分在某个点之后持续为负数,则可认为相应的资源的数量或者用户的搜索数量在下降,表明当前用户查询的时效性已经发生了衰减。如果正负相差不多,则可认为时效性已在慢慢回归平稳。
如上已经结合图1描述了搜索方法及其优选实施例。下面描述的装置中相应单元和部件的功能分别与上面参考图1及随后优选实施例所描述的相应步骤的功能相同。为了避免重复,这里重点描述装置可以具有的结构和部件,而对于一些细节则不再赘述,可以参考上文中的相应描述。
图2是根据本发明一个实施例的一种搜索装置20的示意性方框图。搜索装置20可以包括接收单元100、获取单元200、时序分析单元300以及调序单元400。
接收单元100可以接收用户的搜索请求以获取搜索词。
获取单元200可以获取基于所述搜索词得到的搜索结果、搜索结果数量以及与所述搜索词相关的搜索数量。
时序分析单元300可对一定时间段内的搜索结果数量和搜索数量进行时序分析,以判断所述搜索词的时效性。
调序单元400可以响应于判定该搜索词具有时效性,以时效性作为调序依据对所述搜索结果的排列顺序进行调整。
在一个优选实施例中,时序分析单元300可以将上述时间段内的搜索结果数量和搜索数量按时间间隔划分,生成第一时间序列数据,对第一时间序列数据进行白噪声检验并根据白噪声检验的结果判断搜索词的时效性特征。由该时序分析单元300进行的白噪声检验可以与前述的具体方法相同,在此不再赘述。
在一个优选实施例中,该时序分析单元300还可以如上所述进行默认突变点处的趋势分析。
在一个优选实施例中,该时序分析单元300还可以进行突变点检测。时序分析单元300可以在其判断搜索词具有时效性的情况下对第一时间序列模型进行突变点检测,以找出表征时效性的突变点位置。
在一个优选实施例中,突变点检测也可以是通过与上文针对搜索方法 描述的差分取值法相类似地寻找突变点,并生成前后两个不同的时序模型以判断时效性趋势,在此不再赘述。
在一个优选实施例中,调序单元400可以根据时效性是在增强、衰减还是趋于平稳来作为搜索结果调序依据。
以上结合图2描述了根据本发明的搜索方法的功能模块实现。如下将结合图3描述相应装置的硬件支持。
图3是根据本发明的一个实施例的一种搜索服务器30的硬件组成图。该搜索服务器30可以包括处理器31、存储器32、接收装置33及发送装置34。
存储器32可以与搜索词关联存储的网络信息并存储用户对搜索词的搜索记录。
接收装置33可以接收用户的搜索请求。
处理器31连接到存储器32、接收装置33及发送装置34。处理器31可以对由接收装置33接收的搜索请求加以处理以获取搜索词,可以从存储器32中获取基于所述搜索词得到的搜索结果、搜索结果数量以及与所述搜索词相关的搜索数量,对一定时间段内的搜索结果数量和所述搜索数量进行时序分析来判断所述搜索词的时效性,以及响应于判定所述搜索词具有时效性,以时效性作为调序依据对所述搜索结果的排列顺序进行调整。
发送装置34可以向用户的客户端设备发送以时效性作为调序依据调整了排列顺序的所述搜索结果。
搜索服务器30可以与图2的搜索装置20是分别表征硬件和功能模块的同一装置,也可以是不同装置。它们都可以实现图1示例及其优选实施例中描述的方法。
上文中已经参考附图详细描述了根据本发明的搜索方法和装置。
此外,根据本发明的方法还可以实现为一种计算机程序,该计算机程序包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。或者,根据本发明的方法还可以实现为一种计算机程序产品,该计算机程序产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的上述方法中限定的上述功能的计算机程序。本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和 算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的***和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。