微博是近年来出现的新兴媒体, 和传统的博客不同, 它是一个可以方便快捷地发布、分享、传播以及获取信息的平台, 用户可以通过网页、WAP页面、短信、实时消息软件、电子邮件以及各种客户端组件等发布和接收信息,可以随时和朋友、关注的人和被关注的人进行交流、讨论。目前, 国外著名的微博服务有Twitter, 国内中文微博服务主要有网易微博、腾讯微博、搜狐微博和新浪微博等。据中国互联网信息中心 (CNNIC) 统计显示, 截至2012年6月底, 我国微博用户数达到2.73亿, 较上一年底增长了9.5%, 网民使用率为50.9%[ 1]。
微博具有便捷性、背对脸和原创性等特性。尤其是便捷性, 不再像传统博客每次都要思考很久并且长篇大论; 反之, 用户可以随时随地发布自己的信息, 这给人们的信息交流带来质的飞跃。然而, 微博中充斥着各种各样的短信息, 也给用户获取自己感兴趣的突发话题增加了难度[ 2]。在数据爆炸的今天, 用户不可能通过阅读大量的微博信息来获取实时的突发事件。因此, 从海量微博数据中挖掘出用户感兴趣的突发事件, 是非常有意义的。
目前, 国内外针对文本流的突发事件研究已经有不少成果, 但是针对微博的突发事件研究, 还是比较新的领域。
按照突发特征识别的顺序, 突发事件识别可以分为以文本为中心的方法[ 3, 4]和以突发特征为中心的方法[ 5, 6, 7]。前者是先进行文本聚类, 再在类中抽取出突发特征, 进行突发事件的识别; 后者是先抽取出突发特征, 再对突发特征进行分组, 使用突发特征组进行突发事件的识别。
以文本为中心的方法针对传统的文本, 效果较好, 但是微博文本中含有很多垃圾信息, 先进行聚类再进行突发特征识别会引入很多噪声信息, 并且在文本聚类时还存在较多阈值的选取问题, 阈值选取大多是根据经验值来设定, 对聚类结果比较敏感。以特征为中心的方法避免了阈值的问题, 但是没有很好地解决垃圾信息的问题。
在以文本为中心的事件识别中, 由于微博受字数限制 (一般在140个字以内) 导致本身内容短小, 数据稀疏性问题比较严重。针对数据稀疏性问题, 目前常用的方法有基于语义扩展的方法[ 8, 9, 10, 11]和进行主题建模的方法。主题建模方法中, 最常用的是经典的LDA方法以及LDA方法的一些扩展[ 3, 12, 13]。
与以上方法不同, 本文先进行突发词集抽取, 使用突发词表示文本, 然后分析微博描述突发事件的特性, 对文本进行过滤, 去除垃圾信息, 最后提出一种基于“绝对聚类”的方法对文本进行聚类, 返回各类簇中热度最大的微博作为突发事件的检测结果。
本文研究的内容和话题检测与跟踪 (Topic Detection and Tracking, TDT) 研究中的子任务话题检测 (Topic Detection Task, TD) 有一些共同之处, 主要任务都是检测和组织系统预先未知的话题[ 14]。不过两者也有很大不同, 相对于TD而言, 本文更侧重于从大规模数据中检测突发事件, 并且还涉及到垃圾信息的处理。
由于微博内容简短, 传统的基于词的特征向量方法易导致向量的稀疏性问题和空间高维性问题。因此, 本文使用突发词作为微博文本的特征, 构建基于突发词的微博文本特征向量。
定义1: 突发词.
对于在某个时间段Si (i> 0) 内出现的任意一个词k, 如果Fi, k≥δ1、Ri, k≥δ2且Wi, k≥δ3, 则称这个词为突发词。
其中, Fi, k表示词k在时间段Si内的词频, Ri, k表示从时间段Si-1到时间段Si内词k的增长率, Wi, k表示词k在时间段Si内的TF-PDF值, δ1、δ2和δ3表示待设定的三个阈值。Fi, k≥δ1表述词k的“热点性”, Ri, k≥δ2表述词k的“突发性”, Wi, k≥δ3表述词k的“重要性”。
(1) 词增长率计算.
词的增长率Ri, k表示当前时间段Si中的词k相对于上一个时间段Si-1的增长率, 计算方法如下:
当Fi-1, k=0, 即当前时间段Si内出现的某个词k词频很大, 但是上一时间段Si-1内没有出现时, Ri, k的值为一个比较大的常数NaN。
(2) TF-PDF权重计算.
TF-IDF算法是信息索引领域常用的权重算法, 其中IDF的计算倾向于在别的文本中出现更少“区分度”较高的词。而突发事件中, 出现突发词的文本数比较多, 使用TF-IDF算法不利于突发词的权重计算。而TF-PDF (Term Frequency-Proportional Document Frequency)[ 15]算法能很好地解决这个问题, 并且该算法考虑到词在不同渠道 (Channel) 下的权重, 本文使用TF-PDF算法计算语料中词的权重, 计算方法如下:
其中, Wj为词j的权重, 在微博渠道 (Channel) c中, Fjc为词j的词频, njc为包含词j的文档数, Nc为所有文档数, K为某个微博渠道中所有词的词数, D为微博渠道的数目。
根据定义1, 抽取时间段Si (i> 0) 中所有满足突发词条件的词, 构成Si内的突发词集, 记为BurstSeti。
BurstSeti={Termi1, Termi2, …Termi, j, …} (4) .
其中, Termi, j表示时间段Si中的第j个突发词。
对于某个时间段Si中的任意微博文本texti, j, 可以用突发词向量表示为:
texti, j={e1, e2, …eL} (5) .
其中, 如果texti, j包含该时间段中的某个突发词k, 则ek=1, 反之, ek=0。例如, 如果Si内突发词集为{汶川, 地震, 纪念}, 文本texti, j中包含突发词{汶川, 纪念}, 则texti, j={1, 0, 1}。
本文中, 使用突发词表示的文本称为突发词文本。
微博中具有各种各样的信息, 包括很多关于日常生活的描述、感慨以及一些广告信息等, 这些信息对突发事件的检测有很大的干扰作用。同时, 使用传统的基于突发词的文本和聚类的方法将导致严重的数据稀疏性问题。
在新闻领域, 描述新闻的要素一般包括: 何时 (When) 、何地 (Where) 、何人 (Who) 、何事 (What) 、何故 (Why) , 后来增加了一个要素, 即如何 (How) , 用英文字头简称“5W1H”, 被称为新闻六要素[ 16]。微博内容由于受字数限制, 往往不能完整地对突发事件进行描述。
通过对新浪微博和网易微博中的突发事件进行分析, 本文认为, 如果一条微博描述了一个突发事件, 那么它至少包含“三个要素”, 即何地、何人、何事。如“法国 (Where) 、总统 (Who) 、危机 (What) ”简约描述了法国新总统应对欧债危机考验的相关事件; “汶川 (Where) 、地震 (Who) 、纪念 (What) ”, 简约描述了针对汶川地震周年展开纪念的相关事件。
基于这个原则, 一个描述突发事件的微博文本应该至少包含三个突发词 (“三要素”) 。因此, 本文过滤掉语料中含突发词少于三个的微博文本。
使用突发词匹配法来计算微博文本之间的相似度, 在此基础上, 传统的基于对象和聚类中心点的距离的聚类算法不能有效地判断一个新文本和一个已有类的相似性。因此, 本文提出一种“绝对聚类”算法, 实现基于突发词的微博文本聚类。
(1) 突发词文本相似条件.
对于突发词文本texti, j和texti, x, 分别使用突发词向量表示, 则它们之间的距离tdj, x定义为:
tdj, x=min (|texti, j|, |texti, x|) -texti, j×texti, x (6) .
其中, texti, j×texti, x为两个文本向量的数量积。两个微博文本的相似条件算法如下: .
输入: 两个突发词文本texti, j和texti, x, |texti, j|和|texti, x|分别表示两个突发词文本包含突发词的个数.
输出: 是否满足相似条件 (true/false) .
①如果|texti, j|> 3且|texti, x|> 3, 则执行步骤②; 否则执行步骤③。
②当tdj, x≤2时, 则texti, j和texti, x满足一定条件的相似, 返回true; 否则不相似, 返回false。
③当tdj, x< 2时, 则texti, j和texti, x满足一定条件的相似, 返回true; 否则不相似, 返回false。
(2) 基于“绝对聚类”的微博文本聚类算法.
“绝对聚类”的思想是: 如果某一个对象属于既有的一个类, 那么它应该和这个类中的每一个对象都相似, 即“绝对”属于这个类, 否则不属于这个类。基于“绝对聚类”的微博突发词文本聚类算法 (ACFD算法) 流程如下: .
输入: 突发词文本集Corpus.
输出: 突发词文本类簇集Cluster.
①任意选择Corpus中的两个突发词文本texti, j和texti, k, 如果它们满足一定的相似条件 (即一定条件的相似) , 则把它们归为一类Cluster1; 否则, 将它们分别归类为Cluster1和Cluster2。将texti, j和texti, k从Corpus中移除。
②对于Corpus中的任意突发词文本texti, x, 如果存在某个类Clusterk, texti, x和Clusterk中的所有文本都满足一定的相似条件, 则执行步骤③; 否则执行步骤④。
③将texti, x归入类Clusterk中, 从Corpus中移除texti, x。
④新建一个类Clusterk, 将texti, x归入其中, 并从Corpus中移除texti, x。
⑤循环执行步骤②-步骤④, 直到Corpus为空, 结束。
定义2: 热度.
热度是对一个事件被关注程度的量化。
突发事件在传播过程中会产生很大的影响, 在微博平台中则具体表现为描述突发事件的微博的转发数和评论数。因此, 使用微博的转发数和评论数衡量单条微博的热度, 计算方法如下: .
Hot (tweet) =λ1×N (replyCount) +λ2×N (retweetCount) (7) .
其中, N (replyCount) 和N (retweetCount) 分别表示单条微博的评论数和转发数, λ1和λ2为两个参数且λ1+λ2=1。
本实验数据来源于网易微博和新浪微博, 利用爬虫跟踪下载工具获取2012年5月1日至2012年5月30日共303 581个用户的微博数据。以一天为一个时间段, 主要对2012年5月12日这一天进行微博突发事件的检测。
当前使用最多的话题建模模型是LDA模型, 常用的聚类方法是K-means聚类[ 3], 使用基于LDA模型和K-means聚类的方法作为本文方法的对比实验方法。
为了使阈值δ1、δ2和δ3能够适用于不同时间段的事件检测, 采用一种动态阈值法, 根据突发词的“热点性”、“突发性”和“重要性”, 分别将δ1设置为Si中词频最大的第100个词的词频值, δ2设置为增长率最大的第50个词的增长率值, δ3设置为TF-PDF权重最大的第30个词的TF-PDF值。即, 最终抽取30个突发词作为时间段Si中的突发词集。
当前实验时间段中各个突发词及其TF-PDF值如表1所示:
对微博进行突发词特征表示, 并过滤突发词少于三个的微博文本。
对于每个突发词文本, 聚类结果只有4种情况, 分别如下:
(1) CT (Cluster Text) : 突发词文本被正确地归为某个类。
(2) MT (Miss Text) : 突发词文本被错误地归为某个类。
(3) FT (Fail Text) : 突发词文本属于某个类, 但是没有归入那个类。
(4) NC (Not Cluster) : 突发词文本不属于任何现有的类。
准确率和召回率分别定义为:
准确率 (Precision) =CTCT+MT×100% (8)
召回率 (Recall) =CTCT+MT+FT×100% (9)
F值 (F-measure) =2×准确率×召回率准确率+召回率 (10) .
本文利用ACFD算法和对比实验的方法 (基于LDA和K-means聚类的方法) 进行分析, 聚类结果和评测结果分别如表2和表3所示。其中K-means方法中k值为5, LDA模型中隐主题数分别为5、10、15、20、25、30、35、40、45和50。
由表3可以看出, ACFD算法能够比较准确地对突发词文本进行聚类, 对比实验方法在某个隐主题值的设置下, 如隐主题值为10时, 也能获取较高的F值; 但是在某些条件下, 如隐主题值为30和35时, F值不是很理想, 其他隐主题值下聚类结果的F值也有较大的变化。由此表明, LDA模型中经验主义的隐主题数值对聚类F值的影响较大。相比而言, ACFD算法在聚类前不用设置固定的k值, 也不用根据经验主义设置隐主题值, 同时还能保证较高的F值, 优于对比实验的方法。
从ACFD聚类结果中选择类簇最大的5个类代表当前的突发事件类, 然后分别从这5个事件类中抽取热度最大的一条微博来代表当前的突发事件。使用公式 (7) 计算单条微博热度, 考虑到微博中转发和回复对突发事件的传播的作用, 参数λ1和λ2分别设置为0.7、0.3。5类突发事件中, 表示每类事件的突发词如表4所示:
(注: 其中突发词加黑, Where、Who和What三要素为人工标注。) .
从表4中的突发事件和事件的突发词描述可以看出, ACFD算法能够比较准确地发现微博突发事件, 事件的突发词描述也大致符合“三要素”的假设。同时, 微博中的突发事件也有其自身的特点: 突发事件往往关注的人比较多 (热度比较大) ; 通常, 社会名人 (如, 突发事件3) 发布的微博, 成为突发事件的可能性比一般用户的大, 即使有时候发布的只是一般事件的微博。以下对各事件进行简要的分析:
(1) 突发事件1描述的是“云南巧家县爆炸案件”。由于此案件涉及到社会安全, 同时网民对云南官方给出的关于该事件的调查报告提出了质疑, 一时间在微博上引起很大的关注。
(2) 突发事件2描述的是“云南美女公务员要求饭店女老板下跪”相关事件。事件中女公务员由于对饭店女老板不满而要求其下跪道歉, 并威胁恐吓, 在微博中一经发布, 立刻遭到网民口诛笔伐, 造成很大的社会影响。
(3) 突发事件3描述的是任志强关于中国人精神现状的总结。该微博总结了国人在权利、意识、法律和规则之间的取舍和关系。由于任志强是明星用户, 微博发布后得到广泛的评论和转发, 因而被本文检测为突发事件。
(4) 突发事件4描述的是“骆家辉跪幼”事件。骆家辉作为美籍华裔在华官员, 在中国的一言一行都受到广泛的关注, 在和某专家的会面中, 骆家辉半跪着跟一个小女孩聊天, 显示了官员亲切和善的一面。这和中国的“跪官不跪幼”的作风形成鲜明对比, 获得网友的一片赞扬; 另外也有人对当前我国官员的一些作风提出了批评。
(5) 突发事件5描述的是“纪念汶川地震”的相关事件, 由于5月12日是汶川地震的纪念日, 这是一个全国性的重大事件, 所以必然引起网民的热切关注。
本文通过分析微博自身内容的简短性和突发事件在微博中的传播特性, 使用突发词构建文本的特征向量, 提出了一种基于“绝对聚类”的微博突发词文本聚类算法 (ACFD) 。实验证明, ACFD算法能够比较准确地实现微博突发事件的检测。同时, 如果需要检测更多的突发事件, 可以通过设置突发词集中词的个数来实现。然而, 本文还有一些可以改进的地方:
(1) 突发词集的抽取。可以采用多种权重算法相结合, 从而得到含信息量更多, 更能准确地反应突发事件特征的突发词集。
(2) 突发事件的描述。目前还没有很好的方法能够自动、准确地对突发事件进行描述, 这也是下一步将要研究的工作。
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|
[16] |
|