李东昊,杨文忠,仲丽君,张志豪,王雪颖
新疆大学 信息科学与工程学院,乌鲁木齐830046
随着移动终端和移动互联网的迅速发展,人们不再受时间地域的限制,可以方便快捷地接入互联网,随时随地地获取信息、表达情感。社交网络中每天都会产生大量的数据信息,这使得利用网络数据进行事件分析成为热点。例如2017年11月的红黄蓝幼儿园事件、2018年7月长生疫苗事件等,很多事件通过网络首先被爆料出来,然后才吸引主流媒体关注并报道。在这段时期,公众易受不良信息的影响,会对某些社会问题或事件产生强烈的主观情感并通过发表微博、点赞、转发、评论等社交行为表达出来,带有负面情感的信息在社交群体中相互传播、相互作用,从而导致新一轮舆情爆发,这种非常态的网络舆情通过负面情绪的扩散,会随着时间的推移逐渐演变成一种特殊的社会压力。突发事件具有突发性、导向性,如果不加以监管,其引发的舆论信息会随着互联网四处传播,不仅会污染网络环境,还会造成社会恐慌,影响社会稳定。文献[1]发现当突发事件发生后,社交网络上的讨论总是爆发在传统新闻媒体的报道之前,这为社交网络下突发事件检测打下了基础,许多学者展开了基于社交网络的事件检测研究。
由于微博事件发展变化迅速,表现形式复杂,从海量实时的微博数据流中检测突发事件仍然是事件检测领域中具有挑战性的问题。基于突发事件检测的研究已经广泛应用在结构化的文本上,如新闻数据、博客帖子、文章报道等[2]。微博信息具有用户情感倾向,与结构化语言不同,微博文本长短不一,口语化严重,同时混合多种信息,包括不同语言、符号图片等,这给基于微博的突发事件检测带来了极大的困难。
目前社交网络中突发事件检测方法总体上分为三大类:(1)通过计算时间间隔内的社交网络用户发布内容的相似性进行聚类,从而进行突发事件检测,如文献[1,3-4]。(2)通过计算从社交网络数据中获得的具有突发特征的词,统计突发词的共现度,进行突发事件的检测,如文献[5-7]。(3)引入情感分析技术,利用时间窗口间的差异性进行事件检测,通过判断两个时间间隔内的特征变化(情感倾向、情感符号)进行突发事件检测。如文献[8]根据相邻时间窗口内情感符号的态势变化进行突发事件检测。文献[9]计算两个相邻时间窗口内情感的相对熵进行事件检测。文献[2]将获取的Twitter数据经过情感分析后,通过拟合的指数分布模型计算日本地震发生的概率。文献[10]考虑到事件空间、时间或主题信息的区别,提出一种基于事件的演化(考虑事件增长)进行检测的方法,通过事件演化特征可以识别出不同的Twitter事件集群,应用在75个品牌Twitter销售数据中,并尝试预测销售中出现的事件,得出带有情绪的博文能够提高对销售事件预测的准确率。文献[11]结合微博内容和社交关系提出一种基于用户兴趣的微博话题检测模型,实验证明能够有效检测出突发事件。
突发事件检测方法建立在对实时获取的数据流进行分析的基础上,实时获取全局的微博数据流难度较大,而且在海量的社交网络数据中存在许多噪声数据,这会降低事件检测的准确性与时效性。鉴于此,许多专家学者采用限定地域的方式精简数据集,再进行事件检测。
文献[5]首先对地域进行划分,然后结合词频、关联用户、博文、社交行为等特征进行突发事件检测,提高了检测的准确率。但是,基于地理位置的博文数量较少,同时突发事件除了会引起当地人的广泛讨论,还会借助社交网络的影响力,迅速蔓延,引发全网的讨论。基于地域的方法通过地理位置过滤掉噪声信息,单一地根据事件发生地域的社交网络信息进行突发事件检测,缩小了数据集,减少了计算量,但忽略了在突发事件检测中至关重要却又不包含地理位置的信息。
文献[6]提出了一种核心词加从属词的方法对微博突发事件进行检测。收集2012年7月到11月的30万条微博数据作为实验数据集,用核心词与从属词表示微博,通过LDA(Latent Dirichlet Allocation)提取主题特征,采用凝聚的层次聚类方式检测突发事件。在实时事件的检测上表现出了较好的性能,但是对于检测到的事件,需要借助搜索引擎以突发词检索相关报道的方式,对事件进行分析与描述,降低了时效性。
文献[12]提出GeoBurst方法进行突发事件检测,对内容完整、语法明确的博文,通过TFIDF权重计算出突发词,采用随机游走的方式进行相似度检测,对于满足阈值条件的博文,根据地域条件和语义条件进行聚类,得到候选事件集,将与突发词联系密切的博文作为描述事件的背景知识,对聚类得到的地域事件簇进行事件描述。实验表明该方法在时间与空间利用度上均有较好的效果。通过博文辅助突发词进行事件的描述,增加了事件检测的准确性与可描述性,但是通过突发词确定描述突发事件的博文需要人工选择。
研究地域事件所能使用的数据较少,带有地理标记的微博数据仅占总数据量的2%[6],扩充数据集的方式也仅仅是通过微博内容的地域关键字进行地域微博数据集的扩充。与局部地域事件检测不同,突发事件由于其显著的影响力能够在短时间内通过社交网络扩散开来,与地域无关的引发公众关注并广泛参与讨论的突发事件的相关微博数能够在短期井喷,并随着事件的发展变化,数量发生进一步的变化。因此直接应用传统的限定地域的事件检测方法具有局限性,准确率与召回率较低,同时还要考虑如何过滤日常发生的事件。
针对社交网络的突发事件检测研究,与传统事件检测相比存在以下问题:
(1)突发事件的判定没有统一标准。无论是通过基于突发事件特征的突发词聚类,还是基于内容相似度的博文聚类,在从潜在的事件集中挖掘突发事件时,均采用人工判断的方式进行突发事件的检测,没有对事件的突发性进行定量分析。
(2)无法兼顾全局事件和局部事件。局部突发事件受有效数据较少的影响,容易被大量噪声数据淹没;全局突发事件检测,从海量数据中检测事件发生与否,受到数据采集困难的限制,无法获得全面实时的海量数据。
现有的突发事件检测研究中均没有考虑过博文影响力对突发事件的贡献度,在处理时间间隔内的微博数据时,仅通过计算词频的变化来反映突发事件的爆发特性,存在噪声数据的干扰,具有偶然性,导致事件检测的效果不够理想。因此,本文在分析社交网络中突发事件特点的基础上,以微博突发事件数据集的构建为核心,提出了一种基于重点微博识别的突发事件检测方法。通过计算词的突发度,展开了基于突发词与相关博文相结合的突发事件检测的研究,通过关联重点微博数据与突发词判断潜在事件的突发性,最后从准确率、召回率、时效性三方面进行方法的有效性分析。
由于突发事件具有突发性、随机性的特点,单一的特征无法准确地检测出突发事件,因此针对社交网络中突发事件的检测目前常采用多特征融合的方法,从多个角度出发,描述、检测社交网络突发事件。
本文提出考虑博文影响力的突发事件检测方法(Key Burst Database,KBD),目的在于通过重点微博信息,挖掘突发词,构建潜在突发事件集,进行突发事件检测。为此,着重解决以下几个问题:
(1)重点微博的判断以及如何从海量数据中获取重点微博。
(2)如何在时间间隔内获得突发词。
(3)如何通过突发词构建突发事件数据集。
下面结合本文提出的突发事件检测框架进行说明。
不同的用户表达自己看法的方式不同,用户对于事件的看法,可以通过发布带有主观情感的原创内容,以及对相关事件的微博进行评论、点赞、转发等一系列的社交行为表现出来。根据微博信息传播的特性[13],不同微博对事件的影响力不同,因此事件检测,首先要识别出一些重要的博文,将其作为中心轴点。如用户媒体发布的第一条相关事件的爆料微博,这种具有爆炸性信息的微博,一经出现能够迅速吸引大量用户的关注,从而引发全网讨论。因此,本文认为重点微博的检测是突发事件检测的基础。根据获得的重点微博数据,提取突发词,利用突发词,采用关键词搜索的方式从海量数据集中构建出潜在突发事件微博数据集。将突发事件检测的重点放在构建高质量的潜在突发事件数据集上,不仅能够减少噪音数据的干扰,同时还能降低数据量,提高检测效率。本文将突发事件检测系统分为7个模块,突发事件检测系统框架如图1所示。
图1 突发事件检测系统框架
本文以新浪微博数据为研究对象。由于新浪上线了新版的个人保护政策,导致通过使用申请开发者权限调用API的采集方式,无法获得实时数据。采集到的信息数量及质量不能够支撑突发事件的检测,因此本文采用网络爬虫的方式,通过构造访问请求,解析网页信息来获得本文的实验数据。数据包括微博用户信息、微博内容、微博发布时间、转发数、评论数、点赞数。
由于新浪微博的更新,用户发布的微博内容长度不再限于140字以内,使得新浪微博可以发布的内容更加丰富,包括图像、链接、表情、符号在内的信息会干扰到下一步的计算,因此需要对数据进行预处理操作。处理流程如下:
(1)过滤内容中的url、表情、图片、符号。
(2)过滤掉长度低于4个字的微博,太短的微博无法表达事件信息。
(3)对过滤后的数据分词,去停用词。
微博用户在社交网络中谈论突发事件的同时,还会提及他们的日常生活和个人兴趣。为了提高从微博数据流中检测突发事件的准确率,过滤掉这些“私人”博文是非常有必要的。利用热点微博传播的特性[14],本文提出的重点微博计算模型如图2所示。
图2 重点微博计算模型
本文提出的重点微博计算模型充分考虑了社交网络中信息传播的各种特征,一条重点微博由四部分组成。当爆料信息刚刚出现,转发、点赞、评论数较小时,考虑用户影响力能够使重要信息不会被遗漏。同时,假设某个用户在某一时刻发布的微博,在一定时间内被阅读的次数可以通过点赞数、转发数、评论数等价代替,因此将点赞数、转发数、评论数作为衡量信息传播能力的指标。在综合考虑上述四个特征的基础上,通过计算得到重点微博。四种指标的计算方法如下:
用户影响力:用户影响力Ui是指发布微博的用户在社交网络中的身份,不同的用户具有不同的粉丝数、关注数、发布微博数等信息,通过对这些信息的计算,能够对其发布信息的重要性进行初步筛选。
其中,Nfee指用户的关注数,Nfed指用户的粉丝数,Npost指用户发表的微博数。Ui越大说明该用户发表的微博产生的影响力越大,其发表的该条微博wi越重要。
点赞数:Sup(wi)代表微博wi获得的点赞数,可以直接从微博wi中获取。Sup(wi)直接反映了其他用户对微博wi的认可程度,其值越大表示人们的关注度越大。
评论数:Com(wi)表示微博wi获得的评论数,可以直接从微博中获取。Com(wi)反映了其他用户对微博wi的观点,其值越大表明该条微博的热度就越高。
转发数:Rep(wi)是微博wi被转发的次数,可以直接从微博中获取。Rep(wi)越大表明该微博的传播影响力越大。
基于一般性讨论提出假设:
如果用户影响力较小,但是其发布的微博能够在短时间内引发大量的用户评论、点赞、转发,认为这是一条重点微博。
如果用户影响力大,且在一定时间内引发了大量的讨论,认为属于重点微博。
如果用户影响力大,但是在一定时间内没有引发大量用户评论、点赞、转发等社交行为,认为属于重点微博。
如果用户影响力小,且在一定时间内没有引起大量用户评论、点赞、转发等社交行为,认为不属于重点微博。
注:一定时间指微博发布到采集的这段时间间隔。
表1使用的数据是人工抽取的来自微博8月27日的300条重点微博。通过计算用户影响力、评论数、点赞数、转发数之间的关联关系,对影响微博重要程度的特征进行分析。
如表1所示,在突发事件中微博重要程度的计算上,微博的评论数与点赞数呈现出中等强度相关,评论数与转发数呈现出强相关,点赞数与转发数呈现出极强相关。而用户影响力与点赞数、评论数、转发数呈现出弱相关或极弱相关。这种现象符合突发事件的特征,微博信息传播扩散的方式具有不确定性、突发性[15]。社交网络中突发事件的引爆点与用户的相关性很小,相关微博的出现,通过网络扩散开,引发广泛讨论,从而形成社会舆论。整个过程中用户的影响力对其产生的突发性影响较小。在突发事件中,网民关注的焦点都集中在事件上,而不会集中注意力去关注发布微博的用户,网民受突发事件的影响,或产生共鸣引发群众发泄自己的情感,表现形式多为点赞或转发该微博;或产生对未来的担忧引发群众对未来事件发展趋势的相关评价,表现形式多为网民对该事件主观的评论。由于突发事件的社会影响力大,微博用户会更加主动地了解事件的详情,为了全面地了解事态的严重性,用户会不断通过查阅微博内容来了解突发事件相关的信息,并时刻关注事件的进展。因此与表1反映出的信息一致,验证了假设的有效性。用户在突发事件中关注的焦点是事件自身的信息,在深入了解事件的过程中会以点赞、转发、发布评论等形式表现出来。通过相关性分析,验证了用户影响力、点赞数、评论数、转发数四方面特征间的联系,证实了不同特征对微博重要性的影响力不同,不能一概而论。这里提出重点微博的计算方法:
其中,α、β、γ、δ是调节系数,用于调节Rep(wi)、Com(wi)、Sup(wi)、Ui四类特征的权重,α+β+γ+δ=1,α≥0,β≥0,γ≥0,δ≥0。Key(wi)为微博wi的重要度,其值越大,说明wi越重要,其内容更有说服力。因此重点微博计算模型的准确性,取决于Key(wi)的阈值θ。调节参数α、β、γ、δ的确定以及阈值θ的计算在实验部分给出(详见第4.2节)。
算法1重点博文识别算法
输入:带有社交行为与用户信息的微博wi。
输出:时间间隔t内的重点博文集Dt。
(1)计算用户影响力Ui;
(2)统计Com(wi)、Sup(wi)、Rep(wi);
(3)计算微博wi的重点度Key(wi);
(4)将重点度大于阈值θ的微博wi加入到重点博文集Dt。
应用算法1通过计算构建出时间间隔t内的重点微博数据集,能够过滤掉一些噪声数据,提高突发词计算的准确性。
首先将重点微博中无法表达实际意义的动词去掉,如“过去”“做”“发现”等,然后判断剩下的词语是否为突发词。计算方法如下[1]:
表1 突发事件中微博重要程度相关性分析
这里,Bt(tw)表示在时间间隔t中词tw的爆发度,它反映了该词在时间间隔t内的变化量;ft(tw)表示词tw在时间间隔t中出现的频率;ut(tw)表示在时间间隔t中词tw出现的平均次数。文献[1]在计算词对突发事件的影响程度时,将权重分为两部分,基础权重(词频)与爆发权重(Bt(tw)),通过组合分析得出突发词。式(3)在计算突发词时没有考虑到突发事件的爆发特性,即在突发事件发生时,事件相关信息迅速扩散,会吸引大量用户关注并参与讨论,因此会产生大量与突发事件相关的微博,用于描述突发事件的单词频率就会快速上升,而在突发事件产生前,与描述突发事件相关的词出现的频率不高。鉴于这一点,本文得出结论:单词出现的历史数据会影响突发事件检测效果。
因此,本文在计算突发词时,将历史数据考虑在内,在文献[5]的基础上,提出了一种利用历史数据计算基础权重的方法:其中,为时间间隔数,越大,表明在当前时间间隔内词tw更有可能成为突发词,分母引入历史数据的标准差,能够更加准确地识别出在过去时间间隔内变化平稳,而在当前时间间隔内突发性强的词。
如果考虑太久的历史数据,不仅会加大计算量,还会产生未知的负面影响,因此这里仅考虑将前一个时间间隔的数据作为历史数据,式(4)可简写为:
将基础权重Ft(tw)与爆发权重Bt(tw)线性结合起来,计算词tw的突发度Et(tw)。
考虑到博文间影响力的差异,在利用历史博文数据的基础上,词突发度的计算如算法2所示。
算法2词突发度计算算法
输入:使用算法1得到的重点博文集Dt。
输出:词tw的突发度Et(tw)。
(1)计算词tw的爆发度Bt(tw);
(2)计算词tw的基础权重Ft(tw);
(3)联合Bt(tw)与Ft(tw)计算词tw的突发度Et(tw)。
将每个词tw按照突发度Et(tw)排序,得到候选突发词集kw,利用四分差法确定突发度出现的阈值,大于阈值的词作为突发词。阈值计算方式如下[16]:
其中,Q1为第一个四分位数,Q3是第三个四分位数,IQS(kw)是四分差的距离,其计算公式如下:
由公式可知,阈值过小将导致突发词数量过多,不仅会增加计算成本,还会增加时间开销;阈值过大会导致突发词较少,一些重要的突发词可能会被遗漏,使得构造出的突发事件数据集不够全面。由于四分位数的间距不受个别极大值或极小值的影响,因此采用突发词集中突发度的四分位距离作为阈值的判断标准[16],可以稳定地描述数据的离散程度。本文以一天作为时间间隔,从数据库中抽取8月27日的数据进行实验,同时将8月26日的数据作为历史数据,共计实验数据12 345条。采用本文提出的重点微博发现方法获得共计300条重点微博,进行预处理后得到2925个词,采用提出的突发词提取方法,得到597个突发词,由式(7)计算出Threshold为4,最终得到突发词数为60个。采用的实验设备:操作系统为Win8,处理器为Intel Core i5 3230M,内存8 GB,CPU为2.5 GHz。计算突发词耗时约1 min,在时间成本上是可接受的。如果选择性能更高的服务器,在海量微博数据流中计算突发词在时间成本上也是可行的。
社交网络中的用户数量庞大,每天产生的数据量非常多,同时数据中存在大量噪音数据。针对突发事件的检测需要细化分析,因此高质量的事件数据集是事件检测准确率的重要保障。本文以重点微博为基础,将计算出的突发词集作为关键词,从爬取的微博数据集中通过关键词匹配的方式检索相关微博,构造潜在突发事件数据集。考虑到数据量大,数据类型繁多,非结构化数据库凭借处理并发性高、查询速度快、存储格式多等优势,已经广泛应用在数据挖掘领域。因此本文采用非关系型数据库MongoDB进行数据的存储与查询。
在突发事件检测中,常用的聚类思路有两种:一种是利用突发词进行聚类,利用历史数据和当前时间窗口内的数据提取多维度特征(用户数、微博数、词频等)计算突发词,构建突发词集共现矩阵,并将其作为聚类输入,用得到的突发词簇来进行突发事件检测。另一种是利用当前时间窗口内的数据通过微博文本相似度直接聚类,从聚类的簇中提取突发事件的特征进行事件检测。
由于微博取消了博文字数的限制,长度不再局限于140个字符,越来越多的用户开始利用微博来描述自己的所见所闻,因而微博内容中含有更丰富的与事件相关的潜在信息。在以突发词为聚类输入的突发事件检测方法中,突发词的数量难以确定,太少会造成信息丢失,太多会产生歧义;同时,从文本中提取突发词信息,根据突发词集进行聚类,不能够全面地描述事件特征,无法进行深入的事件分析。以文本作为聚类输入的事件检测方法,存在噪声数据的干扰,同时会消耗大量计算资源,提取到的特征与数据集的质量密切相关,无法保证事件检测的准确性。
本文提出的KBD方法,融合了上述两种方式的优点,首先从初始数据集中提取重要微博,计算得到突发词,然后通过关键词检索的方式过滤初始数据集,得到事件相关数据集,最后利用K-Means聚类算法对文本进行聚类,进而提取特征,进行突发事件检测。通过突发词进行过滤的方法提高了数据集与事件的相关性,同时采用文本作为聚类输入的方式则保留了更多的事件信息,能够全面地提取到事件的特征,提高事件检测的准确性。
与大多数专家学者将聚类结果与浏览器搜索网页相结合的描述方式不同,本文认为对事件描述的准确与否对判断该事件是否为突发事件起着至关重要的作用,且重点微博中包含大量事件相关信息,因此本文采用与类簇中的关键词相关性最强的重点微博进行事件描述,克服了结合人工描述事件的主观性因素。相应的验证由4.3节表6给出。
本文使用的数据集来自新浪微博,通过模拟微博登录来爬取微博数据,以具有代表性的微博用户ID为起点,采集数据并存入数据库,获取粉丝与关注列表用户的ID,递归执行,即可获得大量微博数据。获得的数据存在大量冗余信息,这里可以根据新浪用户ID与发布时间去重过滤,然后根据发布时间排序,得到带有时间序列的微博数据集。语料采集时间为2018年8月24日至2018年8月28日,共40 842条微博,统一格式存储在MongoDB中,微博的存储格式如下:
{
"_id":ObjectId("5b83a8b4ff7a7d40fc7d9cbf"),
"id":"4277391314945737",
"follow":"528",
"fans":"3380000",
"pubnum":"1230",
"attitudes":57413,
"time":"2018-08-26 22:31",
"text":"#延禧攻略#剧终人不散,感恩大家",
"comments":8018,
"reposts":3402
}
其中_id是MongoDB中的键值,每个文档都有唯一的"_id"值,来确保集合中每个文档都能被唯一标识,id是新浪微博用户的唯一用户编号,follow是用户的关注数,fans是用户的粉丝数,pubnum是用户发布的微博总数,attitudes是该条微博的点赞数,time是该条微博的发表时间,text是该条微博的内容,comments是该条微博的评论数,reposts是该条微博的转发数。
目前,突发事件检测依旧属于开放性问题,无论是限定地域还是限定类型的突发事件检测方法,因为没有统一规范的数据集,所以评测标准不定。研究者们评价方法时选取的数据集都是来自真实的社交网络,如twitter、新浪微博等,在限定突发事件产生的时间间隔内,进行事件检测性能的评价,从而比较各个方法的优劣。表2列出了近年来部分事件检测所采用的数据集及评价指标。
由表2可知,不同学者评价检测效果采用的方法受时间间隔、数据量大小等特征影响,选择的评测标准不同。因此,参考主流的评测方法,本文选用准确率、召回率、运行时间作为突发事件检测的评价指标。
表2 部分文献检测的突发事件以及评价标准
表3 重点微博的调节参数取值
这里P表示正确检测到的突发事件数量,S表示检测到的总事件数,T表示人工判断得到的真实突发事件数。
实验所采用的方法为KDB,通过重点微博挖掘突发词来构建突发事件数据集,从而进行突发事件的检测。本文将人工挑选的1 000条重点微博与随机抽取的普通微博数据作为训练集,对重点微博计算模型进行训练,计算出模型的调节参数α、β、γ、δ以及重点度阈值θ。综合考虑每个特征的重要程度,采用人工干预的方式调节参数的取值,进行了17组实验,其中将每个参数可取的权重值分别设为[0,0.25,0.3,0.4,0.6,0.7,1.0]。
区分度=重点微博重点度均值-普通微博重点度均值。本文根据区分度进行调节参数的选择。由表3可知,将调节参数α、β、γ、δ分别设置为0、0、1、0时重点微博的重点度均值与普通微博重点度均值有明显的差距,区分度为12.95,重点微博的重点度最小值(9.78)大于普通微博重点度(7.90)。但是这样的参数设置,刻意强调了点赞的影响力,并没有考虑到社交媒体用户的多样性以及微博内容的灵活性,不能全面地描述微博的重要性,因此不予考虑。当调节参数α、β、γ、δ分别设置为0.1、0.1、0.7、0.1时,能够取得较大的区分度(11.60),并且重点微博重点度均值(8.76)大于普通微博重点度(7.29)。分析原因发现,这样的参数设置与3.3节表1的重点微博相关性分析结果一致,点赞数对重点微博的贡献度最大。因此针对本文的微博数据集,通过实验调节参数分别设置为α=0.1、β=0.1、γ=0.7、δ=0.1,重点度阈值θ=8.76。
本文设定时间间隔为一天,设定K-Means聚类算法的最大迭代次数max_iter=300,获取初始簇中心的更迭次数n_init=40,初始簇中心的获取方法init='kmeans++',最大聚类数k=9,以词向量表示的文本空间相似度为特征进行聚类,构成最终事件集合,阈值及参数设置见4.2节。
为了验证本文提出的KBD方法的有效性,设定通过时间间隔内的数据计算博文突发特征,利用博文进行事件检测的方法作为基线方法[4],并与BBW(Basic-Burst Weight)[1]在准确率、召回率、运行时间三方面进行了对比。BBW是2015年Zhang等人在改进TFIDF的基础上提出的突发事件检测方法,针对Twitter数据流,抽取时间窗口中的突发词,并根据获得的突发词共现度进行层次聚类,从而检测突发事件。设置层次聚类阈值θ=1.2,时间间隔为1天,能取得较好实验效果。在8月27日检测数据集上的实验结果见表4。
表4 算法性能比较
由表4可以看出,本文提出的KBD方法,综合了利用博文与基于突发词事件检测的优点,在保证事件检测准确率、召回率的同时优化了检测时间,与基线方法和BBW方法相比在准确率与召回率上均有显著提高。在运行时间上,与基线方法相比因为缩减了数据集,所以提高了事件检测的效率。与BBW相比增加了运行时间,原因在于KBD方法存在计算重点微博以及构建潜在突发事件集的步骤,虽然会增加一定的运行时间,但是时间增长量在可接受的范围内。将聚类得到的事件簇,根据关键词排名降序取出前5个关键词对聚类结果的描述,事件检测结果见表5。
基线方法聚类得到的事件结果如表5所示,第一个话题是“延禧攻略”,第二个是“顺风车女孩遇害”,第三个属于日常生活相关的话题。从结果上看,基线方法检测的效果较差,主要是由于时间间隔内的数据量大,包含过多噪声数据(如广告与饮食旅游推荐等信息),这些无关的博文增加了数据的维度,不仅会影响聚类结果的准确性,还会增加计算成本。
BBW方法并不直接对文本进行处理,而是根据其定义的突发词计算方法,从实验数据集中计算出代表突发事件的突发词集,再根据突发词在数据集中的共现次数,构建出共现矩阵,将其作为特征进行聚类从而进行突发事件的检测。从事件检测的结果上看,与KBD方法比较发现,将突发词间的共现矩阵作为突发事件特征,没有考虑到句子整体的语义特征,因此每个事件簇的可解释性不高。如表5中的第二个聚类结果将两个不相关的事件突发词聚到了一起。由结果可知,第三个类簇主要是事件“亚运会苏炳添夺冠”,却出现了中国蓝十周年庆典的相关事件突发词。
本文提出的KBD方法,综合考虑用户以及博文的影响力,从获取的微博数据中发现重点微博,通过改进突发词计算方法,结合历史数据挖掘在重点微博数据集时间间隔内的突发词,通过突发词构建出一个高质量的潜在突发事件数据集,进而进行突发事件的检测。从表5的实验结果可以看出,第一个是滴滴顺风车事件,第二个是2018年8月雅加达亚运会上苏炳添夺冠事件,第三个是延禧攻略大结局事件。从结果上看该方法取得的效果最理想。分析原因主要是通过实验数据集中的重点微博计算出的突发词,能够充分考虑到微博突发事件发展的特征,以突发词构建出的数据集,过滤掉了大量噪声数据,避免了局部日常事件的干扰,降低了数据维度,采用以TFIDF为词向量表示博文特征的聚类方法,与突发词共现矩阵聚类相比增加了事件的可解释性。
由表6可知,采用事件检测结果关联重点微博的方式能够对所检测事件进行全面的描述,进而可以判断检测出的事件是否为突发事件,对辅助决策有重要意义。
在基于社交网络突发事件检测的研究中,不应忽视博文间影响力的差异,结合突发事件爆发特征的事件检测方法是日后研究的重点方向。通过与主流突发事件检测方法的比较,KBD方法提高了事件检测的准确率。结果表明,本文提出的突发事件检测框架能够有效地从微博数据中检测突发事件。该流程框架对实际系统开发有一定的参考价值,对社交网络中突发事件的管理与监控也有着积极的促进作用。
在后续的研究中,应着重于以下几个方面:(1)如何甄别出粉丝恶意提高权重的重点微博(如刷评论、骗关注、刷转发数等行为),从而剔除虚假重点微博;(2)在缩短时间间隔的条件下如何提高重点微博的识别率;(3)为了应对海量的微博数据,将尝试引入高效的数据挖掘算法,提高实时检测突发事件的效率。
表5 突发事件检测结果(各取前3个)
表6 重点微博描述突发事件