具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
在本发明实施方式中,从搜索引擎、微博系统等多种网络平台的用户查询中自动发现热点事件。
同时,优选能够给出其对应的时新度值,并能够有效去除其中的周期性话题。
图1为根据本发明实施方式的基于查询输入的热点事件确定方法流程图。
如图1所示,该方法包括:
步骤101:确定每个查询输入在预定时间窗口中的每个单位时间粒度内的查询次数。
在这里,预定的时间窗口一般是若干天,而单位时间粒度的优选单位为1天。针对每个查询输入,都统计出该查询输入在预定时间窗口中的每个单位时间粒度内的查询次数。比如,假设预定的时间窗口为3天,而单位时间粒度为1天,则统计出每个查询输入在最近3天之内的每一天中的查询次数。
在具体实施中,可以从搜索引擎、微博、新闻网站等诸多类型平台的查询日志中来获取查询次数。
以上虽然罗列出单位时间粒度、时间窗口的具体数值和/或数值单位,本领域技术人员可以意识到,这仅起到阐述作用,而并不用于限定本发明实施方式的保护范围。
步骤102:基于每个查询输入在预定时间窗口中的每个单位时间粒度内的查询次数,确定每个查询输入在该预定时间窗口内的时新度。
首先,新闻是事实的报道,而事实作为某些事物的稳定态出现,总是相对的、暂时的、瞬息的,而且即便是这种“稳定态”,实际上也在不停地运动和变化.新闻所报道的,实际上是事物的某种变动,是变动的事实。事实作为事物稳定态出现及其所具有的变动不居、瞬息万变的特性,便是事实的瞬息性,因此时新度是一项非常关键的指标。
基于每个查询输入在预定时间窗口中的每个单位时间粒度内的查询次数,可以了解到在每一个单位时间粒度内的查询次数,从而根据该查询次数在该预定时间窗口中的相对升降情况,可以确定每个查询输入在该预定时间窗口内的时新度。
步骤103:选择时新度符合预定条件的查询输入作为热点事件。
在这里,计算出各个查询输入的时新度后,可以选择符合预定条件的查询输入作为热点事件。比如:选择时新度高于预先设置的时新度阈值的查询输入作为热点事件;或按照时新度从大到小的顺序选择预定数目的查询输入作为热点事件。
选择出热点事件之后,可以主动向用户推出热点事件榜单,或者基于用户的请求向用户推出热点事件榜单。此时,该热点事件榜单完全基于用户的查询输入(比如:对应于用户的查询输入的特定事件),而且该热点事件榜单综合考虑了时新度,因此符合用户的需求,并且保证了即时性。
优选地,在该方法中进一步包括设置查询输入次数阈值的步骤。在确定每个查询输入在该预定时间窗口内的时新度之前,该方法进一步包括:过滤去查询输入次数低于查询输入次数阈值的查询输入,从而去除一些可能具有一定时新度但是关注热点却不够的查询输入。
在一个实施方式中,在确定每个查询输入在预定时间窗口中的每个单位时间粒度内的查询次数之前,进一步对每个查询输入执行归一化处理。
更具体地,由于用户对同一事件的描述可能各不相同,因此输入的查询可能不同。例如用户输入的“ipad发布”与“ipad發布”实际内容并无区别,仅是简繁体的差别;“ipad发布”与“ipad发布”实际内容并无区别,仅仅是前者多了空格,而这些描述的事件均为“ipad发布”。
因此,可以通过归一化处理来将所有的用户查询归一化,将同一事件的查询用统一的方式描述。归一化处理具体可以包括:
(1)将所有查询输入统一转换为相同的字符集。比如:利用简繁转换对应词表,将所有用户查询统一转换为简体或繁体。
(2)将所有查询输入中具有数字意义的符号之外的所有其它标点符号替换成空格。比如:将用户查询中的所有中英文标点符号替换成空格,而小数点或时间间隔符等有数字意义的符号除外。
(3)将所有查询输入之间的空格去除。比如:不改变语义的情况下,将中英文之间,中文与数字之间的空格去除;将多个连续的空格去除。
根据归一化后的用户查询,可以统计一段时间粒度以内不同查询的各自查询次数,并可以得出该段时间内查询与次数列表。
优选地,查询的统计有两种方式:
1.将同一用户在同一时间窗口(即时间段内)的多次查询记为一次,此时统计的是该时间段内某查询对应用户数,这种方式可以避免某一用户恶意大量查询造成的失真,此处记为查询的PV。
2.将同一用户在同一时间窗口(即时间段内)的多次查询记多次,也即每次查询都记录,这种情况更接近实际,此处记为查询的QV。
比如:时间粒度以天为例,可以统计出列表如下:
表1
查询 |
次数(PV或QV) |
ipad发布 |
1500 |
美国总统竞选 |
1000 |
...... |
...... |
统计时间粒度以天为例,统计一定时间窗口(若干天,设为T)内所有查询的QV或PV信息,可以得到如下列表:
表2
图2为根据本发明实施方式的历史日志划分示意图。
如图2所示,该预定时间窗口分为T-n部分和n部分,其中T为该预定时间窗口的长度,n为从当前时间算起的时间粒度数。
假设某个查询输入(query)在前T-n天的总共查询次数是pT-n,在近n天的总共查询次数是pn,其中i为序号。即:
当pT-n>=pn时,定义时新度为0;
当pT-n<pn时,定义该查询输入在用户日志中的时新度fn是:
(式1)
由式1可见,当pn与pT-n的差异越大,fn值就越大。这也符合时新性定义的要求,最新的查询次数量与历史的差异越大,时新度越高。
优选地,为fn定义一个时间衰减系数rn,它随着n的增大而指数衰减:rn=αn,其中0<α<1。
因此对于每个查询输入,其时新度可以表示为
(式2)
在实际使用中,为了简化计算,通常将n少数几个离散的值,例如:当时间窗口T=90时,只取f5和f20,对应的系数选取 其他的项忽略。
因此简化的时新度f为:
此时,根据上述简化公式,计算表2中查询输入(“ipad发布”和“美国总统竞选”)的时新度。
对于“ipad发布”,其时新度为:
对于“美国总统竞选”,因为查询的近3天没有PV,则p8←3<p3,同理p8←1<p1,因此其时新性为零,也即没有时新性。
由此可以计算每一个候选查询的时新性f,而f越大表明此查询的时新度更高,因此可以参考总体查询结合的时新性f取值的范围,选取时新性f最高的一部分查询生成查询热榜的榜单。
比如,“ipad发布”相对“美国总统竞选”而言,更具有时新性。因此可以将“ipad发布”作为热点事件,并通过搜索引擎、微博、新闻网站等多种方式主动推送给用户。
另外,对于有一些查询输入,可能具有周期性大量爆发的特征。例如“周末去哪里”会在周末之前大量被查询;“换季穿什么”会在每次换季时大量出现。由于统计的总天数的限制,一些周期性出现的查询在统计的时间范围内不会出现周期性的特征。例如以60天的统计范围,可能不会发现“换季穿什么”有周期性,因此可能将此类查询作为热点事件的候选输出。
当不需要周期性查询作为热点事件或者热门话题时,可以利用此类查询的周期性,将其从候选中去除。在一个实施方式中,首先保存之前已经计算过时新度的查询输入;然后在选择时新度符合预定条件的查询输入作为热点事件之前,进一步过滤去已被保存的查询输入,从而从候选中去除周期性查询输入。
更具体地,对于周期性查询,首先保存过去每天查询量超过一定阈值的查询及其对应的查询次数,保存的事件跨度应当超过周期性查询的最小周期,例如对于“周”或“月”为周期的事件保存一年。将这些查询放在历史数据库中。然后将本次计算出的时新性查询与历史数据库中的查询进行比较,如果时新性查询在历史数据库中出现过,将其从候选列表中过滤。
过滤历史数据库中的查询的依据是该查询不具有时新性,因为在历史上大量出现过。而周期性事件的查询在较大的时间范围内(超过其周期数倍),曾经大量出现过,因此周期性查询可以通过此方法过滤。
基于上述详细分析,本发明实施方式还提出一种基于查询输入的热点事件确定系统。
图3为根据本发明实施方式的基于查询输入的热点事件确定系统结构图。
如图3所示,该系统包括查询次数确定单元301、时新度确定单元302和热点事件选择单元303。
其中:查询次数确定单元301,用于确定每个查询输入在预定时间窗口中的每个单位时间粒度内的查询次数;
时新度确定单元302,用于基于所述每个查询输入在预定时间窗口中的每个单位时间粒度内的查询次数,确定每个查询输入在该预定时间窗口内的时新度;
热点事件选择单元303,用于选择时新度符合预定条件的查询输入作为热点事件。
优选地,该系统进一步包括归一化处理单元304。归一化处理单元304,用于在确定每个查询输入在预定时间窗口中的每个单位时间粒度内的查询次数之前,对每个查询输入执行归一化处理。而且,对每个查询输入执行归一化处理可以包括执行下列处理中的任一项或者多与两项的任意组合:将所有查询输入统一转换为相同的字符集;将所有查询输入中具有数字意义的符号之外的所有其它标点符号替换成空格;将所有查询输入之间的空格去除,等等。
优选地,该系统进一步包括查询输入过滤单元305。查询输入过滤单元305,用于设置查询输入次数阈值,并且在所述确定每个查询输入在该预定时间窗口内的时新度之前,过滤去查询输入次数低于所述查询输入次数阈值的查询输入。
在一个实施方式中,时新度确定单元302,用于确定每个查询输入在该预定时间窗口内的时新度包括:将该预定时间窗口分为T-n部分和n部分,其中T为该预定时间窗口的长度,n为从当前时间算起的时间粒度数;计算所述T-n部分内的所有查询输入次数pT-n以及所述n部分内的所有查询输入次数pn;其中:
i为序号,PVi为第i个时间粒度内的查询输入次数;
针对每个查询输入,计算在该预定时间窗口内的时新度f,其中:
pT-n>=pn时,f为0;
而当pT-n小于pn时,
其中rn=αn;
rn为衰减系数;0<α<1。
综上所述,在本发明实施方式中,首先确定每个查询输入在预定时间窗口中的每个单位时间粒度内的查询次数;然后基于每个查询输入在预定时间窗口中的每个单位时间粒度内的查询次数,确定每个查询输入在该预定时间窗口内的时新度;再选择时新度符合预定条件的查询输入作为热点事件。由此可见,应用本发明实施方式之后,通过结合时间窗口中的查询次数统计趋势,能够自动从各种查询日志中基于时新度确定出热点事件,从而保证了热点事件的即时性。
而且,本发明实施方式还能够给出热点事件对应的时新度值,方便人工参考和过滤。
还有,本发明实施方式通过过滤机制,能够有效去除热点事件中的周期性事件或话题,从而保证了热点事件的时新性和准确性。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。