技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 算法 --> 一种生成事件脉络的方法

一种生成事件脉络的方法

浏览:1751次  出处信息

本文介绍一种生成新闻事件脉络的方法,该方法已经应用于百度新闻的新闻事件专题页中。

前言

    对于一些延续时间较长的新闻事件,我们希望通过机器挖掘的手段,抽取出事件发展的重要阶段,称为事件的脉络信息;使得用户能够通过脉络信息,直观的了解该事件发展的过程。比如:在中国协助智利解救被困矿工一事的专题页中,展现如下的事件回顾信息,能够帮助用户迅速的领略该事件的来龙去脉。

图1:事件专题页

    

图2:事件的脉络信息

    

问题描述

输入:关于某一事件的相关新闻集合,包含的新闻量最好多于10篇;我们实验用的数据,是利用文本聚类得到的新闻簇,新闻簇的大小从几十到几百篇都有。(得到事件新闻集合的方法,还可以通过事件检测与跟踪的办法,或者通过获取搜索引擎的返回结果等方法,新闻集合的质量越好,覆盖的时间窗越长,对挖掘脉络越有利)

输出:事件的脉络信息,简单一些,就是:给出一个重要新闻的列表,这些重要的新闻涵盖了该事件的各个重要阶段的重要信息。

挖掘方法

这里介绍的方法,是想通过分析新闻媒体对事件跟踪报道的变化,来拟合新闻事件的发展阶段的变化。这种方法主要是从新闻的外部属性(主要是发布时间和转载情况)进行分析,前提假设是:在事件有重要进展的阶段时,就会有一些高质量的新闻跟进报道,而且越是重要的进展,报道越多越集中。实验的结果也验证了这一假设是成立的。

时间片聚类

我们使用了一种叫做时间片聚类的方法,来发现事件发展的主要阶段。

对于每一篇新闻,我们抽取出该新闻的发布时间;然后按照新闻的发布时间,把一个新闻事件集合内的新闻进行排列。如果把新闻按照发布时间投影到时间轴上,如果事件有明显的发展阶段,根据前面的设想,就能在时间轴上看到一些新闻比较密集的区域,这些区域就是我们要获取的事件的各个阶段。

至于如何获取新闻比较密集的时间片段,可选的方法有很多种。这里介绍一种利用凝聚层次聚类的方法,将时间轴切分成若干个片段的方法。

先把每篇新闻看成一个时间片段(其实是一个点),然后每次合并距离最近的两个片段,直到任意两个片段之间的距离都大于一个预先设定的阈值。这是凝聚层次聚类的基本做法,选用层次聚类的一个主要原因是:它不需要事先指定要得到的划分的个数,而一些其他常见的聚类算法,如k-means,k-mediods等方法。而我们也确实很难提前确定一个事件应该切分成几个阶段。

影响聚类效果的另一个重要因素,就是“距离”的计算,在本问题中,则是两个时间片段之间的“距离”的计算。在尝试对比了最短距离、最长距离和平均距离之后,我们选择了平均距离作为度量的指标,即计算两个片段内的新闻两两之间的距离的平均值,公式如下:

A,B表示两个片段。其中a1,a2,…,an是A片段内的n篇新闻,b1,b2,…,bm是B片段内的m篇新闻。dist(a,b)是新闻a和新闻b之间的发布时间间隔。

代表新闻的选取

通过时间片聚类的办法,获取到了事件的若干个进展以后,则要从每个进展的新闻集合中,抽取出一篇代表新闻。

具体的策略,可以根据具体的产品需求来定。一般都会考虑如下因素:新闻来源的站点是否权威,该新闻的发布时间(在同一个片段内而言),该新闻是否有更多的转载等等。

如果要求更多媒体化,还可以从新闻集合中,抽取出相应的图片,视频等相关资源。

一些改进的办法

新闻时间距离

为了改进时间片聚类的效果,在计算新闻之间的时间距离时,我们用到了“新闻时间距离”的概念。一天有24个小时,各个小时的新闻发布数量是有很大差别的。通过统计,我们能看出,新闻发布的高峰是在8:00~11:30,以及14:00~16:00。统计不同时间段的新闻发布数量,对于后续的时间片聚类是有帮助的。

“新闻时间距离”是相对于“自然时间距离”来说的,一天24小时,每个小时的跨度是一样的,即从凌晨2点到凌晨3点的时间间隔,和上午9点到上午10点的时间间隔都是1个小时。但是对于新闻来说,由于新闻发布并不是在24小时内均匀分布的,所以我们认为:在新闻发布高峰期间隔1个小时,要比在新闻发布的低谷期间隔一个小时,造成的时间跨度更长。

统计的方法是:按照每半小时为一个小时间片,统计每个时间段内的新闻发布数,求出各个时间段新闻数占所有时间片新闻总数的比值,这个比值可以用来重新分配24小时的时间长度,计算“新闻时间距离”。最终的结果可能是:在0点至6点之间的1个小时,在“新闻时间距离”中只有半个小时,甚至更少,而在9:00~11:00期间的一个小时,相当于2~3个小时。

新闻集合的去噪

在我们的实验中,还发现另外一个现象:各媒体对事件跟进报道的时效性不一,比如同样的新闻内容,新华网的报道更具时效性,在当前20:00就发布了,而一些小的新闻站点,则可能要等到第二天的9:00才发布,这样就导致描述同一阶段的新闻,往往会被分到不同的阶段中去,这样就影响了时间片聚类的效果。所以我们在进行时间片聚类之前,还进行了相似新闻的去重。

相似新闻去重的实现方法是:对新闻集合内的新闻,进行一次相似度,如果碰到文本相似度很高的新闻,则归档在一起,以最早的那篇新闻为代表新闻,参加时间片聚类。具体的做法是:按照新闻的发布时间由远及近的顺序,计算每篇新闻与之前的新闻的文本相似度,如果相似度太高,则认为可能是重复的内容,则把这篇新闻标记为更早的新闻的转载或者相近报道。

为了避免同一事件中的新闻太相似,我们还利用新闻集合中的所有新闻,抽取出了的事件的特征向量,利用该特征向量,对单篇新闻的特征向量进行一定程度的降权,从而放大新闻集合内的新闻之间的差异。

另外,如果新闻集合太大,则可以选取一些高质量的新闻来做精简,这样的噪音就更少了。在我们的试验中,主要是利用转载和站点权威性来做的过滤。

总结

本方法利用了新闻媒体对新闻事件的报道行为,来挖掘出新闻事件的发展阶段以及代表新闻,从而给用户提供简单明了的新闻事件脉络。主要利用了时间片聚类算法来自动将事件划分成若干个进展阶段,然后从各个进展阶段中,抽取出代表新闻。为了改善算法,还提出了一种“新闻时间距离”的度量方法;同时,还结合了文本内容分析的手段,来对新闻集合进行精简,去噪,改善脉络抽取的效果。

建议继续学习:

  1. Js事件监听封装(支持匿名函数)    (阅读:3433)
  2. jQuery事件编写进阶    (阅读:3267)
  3. jQuery事件的冒泡过程    (阅读:2873)
  4. js中鼠标滚轮事件详解    (阅读:2412)
  5. 关于Javascript的俩个有趣的探讨    (阅读:2261)
  6. javascript事件:获取事件对象getEvent函数    (阅读:2153)
  7. 基于事件的社会化网站    (阅读:1818)
  8. C#的设计缺陷(1):显式实现接口内的事件    (阅读:1371)
  9. 使用jquery卸载全部事件    (阅读:817)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1