基于用户权威度与热度分配聚类的微博热点发现

2020-04-24 03:07曹春萍
计算机工程与设计 2020年3期
关键词:特征词热点话题权威

曹春萍,黄 伟

(上海理工大学 光电信息与计算机工程学院,上海 200093)

0 引 言

随着微博成为网民公众公开的表达意愿的平台,政治、教育、民生、舆情监控等各个领域都与微博话题息息相关,从而使得信息传播的影响也越来越难以控制。微博信息以指数级暴增,使得大众对信息的获取增加了难度,而微博热点话题的发现能够对政府的决策起参照作用,增强用户信息获取的能力。因此,通过分析微博数据内容,从微博的海量文本数据中挖掘出热点话题的影响因素和热点话题,对政府部门与官方微博在舆情监控以及舆论沟通方面上的决策具有重要意义[1]。

但是由于微博文本自身的特点,内容短小、表达随意,且微博间还包含一些转发评论点赞等引用关系,使得传统的文本挖掘算法在微博中的表现不是很好。故本文针对微博的特点,综合微博文本和微博用户之间的关系,将特征词、用户权威度和微博之间的引用关系考虑到热度分配算法中,得到特征词的热度排序结果,最后结合文本聚类得到大概主题即热点话题。

1 相关工作

目前,可以将微博热点挖掘研究分为两大类。一类是基于微博内容的研究。微博内容的研究主要分为概率模型和文本聚类两大类方法。概率模型以LDA模型为代表,徐佳俊等[2]对微博语料集使用LDA模型,将话题从语料中提取出来,通过话题空间对应的话题文档,计算话题强度,最终得到话题强度的排序。林丹等[3]利用LDA得到的关键词进行聚类分析,提出文本关联词算法,最后对LDA话题簇进行优化调整,得到热点话题。虽然当时LDA算法已经相当成熟,但是它并不能很好得将词之间语义融合到热点话题中,在话题提取中表现不佳。随着深度学习在自然语言处理方面的巨大成功,这使得微博热点话题挖掘又有了一大进步。刘少鹏等[4]研究了微博时效性、用户喜好及话题符号对热点话题的影响,通过聚类解决数据稀疏问题,将分层Dirichlet过程集成到非参数贝叶斯模型中,并提出了MB-HDP模型。于洁[5]指出,使用分布式方法得到的词向量,能够体现词之间的相关性,从而克服微博话题中数据稀疏的问题。但是采用深度学习的进行文本聚类权值的选择相对复杂,聚类时间相对较长。这类研究对词频,特征权重及引用关系的挖掘较准确,但往往会忽视用户的相关属性对文本聚类的影响,从而会使结果存在一些偏差。

另一类是基于微博用户的研究,微博用户的权威度因素,通过影响粉丝的对话题的关注与转发,对微博热点话题产生影响。陈姝等[6]基于理性行为分析微博用户的转发行为,考虑了微博语义、用户特征、用户交互等特点,发现了用户活跃度、微博文本与用户兴趣的相似度对转发行为影响显著。刘功申等[7]研究用户行为对微博转发操作的影响,根据博主拥有的粉丝数量,以及粉丝与博主之间的互动,提出用户对转发量的影响力度量算法。但是上述研究仅根据影响力来研究热门话题的产生,忽视了特征词权重、词对关系及引用关系,具有局限性。

针对以上问题,获取较准确的微博热点话题需综合多个因素,每个因素的权重大小又会影响话题准确性。因此,本文提出基于用户权威度与热度分配聚类的微博热点挖掘算法,该模型综合特征词权重排序顺序、用户权威度及博文之间的引用关系进行聚类分析计算特征词热度,得到特征词的热度排序结果即热点话题。

2 基于用户权威度与热度分配聚类的算法设计

本章认为:每条微博除了表面显式的文本内容外,还有一些隐藏属性,称为隐式属性。选择哪些因素可以参考文献[8]。本文选取下列显式属性,文字、话题标签、被转发数、被评论数、被点赞数;选取下列隐式属性,特征词以及权重、词对关系、用户权威度;作为评估微博热门话题的因素。

2.1 特征词的权重及聚类

对于微博的文本,要从两个方面着重研究:第一,微博普通文本;第二,带有话题标签的文本。对于话题标签,本文用topicTag表示,topicTag基本上是由##和【】表示,针对微博中的这些topicTag,还需单独考虑其权重问题。

特征词ti在微博dj中的权重及微博dj中含有topicTag信息的权重,使用改进TF-IDF[9]公式。

特征词ti在微博dj中的基本权重,如式(1)所示

(1)

对于博文中含有topicTag信息的权重,如式(2)所示

(2)

最后,特征词ti在微博dj中的权重定义为

weightij=tag_weightij×wij

(3)

微博文本中,使用基于SSE的自适应聚类算法[10]对微博数据进行聚类,得到聚类结果。

2.2 用户权威度的度量

微博用户权威度是通过对用户转发、评论的影响,从而间接性地影响微博热点话题热度。本文从用户权威UA(user authority)入手,对其进行度量。具体定义见张仰森等的定义说明[11],用户权威度的评价特征如下:

用户扩散水平包括用户粉丝数、博文被转数、博文被评数;用户活动率包括用户关注数、用户发博数、用户评论数、用户注册时间;用户平台认证指数包括是否认证用户、账号等级。

构建评价特征三元组E(UDI,UAR,UPI), 其中UDI表示用户扩散水平,UAR为用户活动率,UPI表示用户平台认证指数。

用户权威度UA(ui)、UDI(ui)、UAR(ui) 以及UPI(ui) 的计算公式将使用UIRank算法[11]。

用户权威度具体如式(4)所示

UA(ui)=v1×UDI(ui)+v2×UAR(ui)+v3×UPI(ui)

(4)

关于用户扩散水平,具体如式(5)所示

(5)

关于用户活动率,具体如式(6)所示

(6)

关于用户平台认证指数,具体如式(7)所示

UPI(ui)=φ·A(ui)+ω·G(ui)

(7)

2.3 词热度分配算法

微博中,存在大量转发、评论和点赞关系,称之为引用关系,引用的微博约占微博总数的71%,引用的微博又是与主题相关的,本文算法将引用关系作为算法的重要因素。2.1节是关于特征词在微博中的权重计算,可根据其权重计算结果对特征词进行降序排序,排序越靠前表明越重要。

微博之间的引用关系可以用一个有向网络来描述。被引用的微博用集合D={d1,d2,…,dm} 表示,引用的微博用集合C={c1,c2,…,cn} 表示,链接由上面两个集合组成,方向从引用微博指向被引用微博,其中转发关系用集合RP={rp1,rp2,…,rpl}, 比重为α; 评论关系用集合CM={cm1,cm2,…,cml} 表示,比重为β; 点赞关系用集合L={l1,l2,…,ll} 表示,比重为γ; 其中α+β+γ=1取α=0.3,β=0.5,γ=0.2。 特征词用集合W={w1,w2,…,wl} 表示。

热度分配算法(hot allocation method,HAM),HAM方法计算过程如图1和图2所示,详细过程如下。

图1 HAM方法计算过程1

图2 HAM方法计算过程2

(1)随机选取数据集中包含特征词wi的微博dj, 并生成与微博dj有引用关系的微博集C={c1,c2,…,cb}。 接下来我们定义集合Pj={d1,d2,…,dc}, 该集合中的每条微博至少和微博dj有一个共同的特征词,并且和微博集Cj有引用关系。

(2)我们计算Pj中第h条微博被集合Cj引用的引用权重qj,h, 其中rpx,y,cmx,y,lx,y分别表示cx与py之间是否有转发、评论、点赞关系,且α+β+γ=1, 如式(8)所示

qj,h=∑rpx,y×α+∑cmx,y×β+∑lx,y×γ

(8)

然后计算一个热度共享矩阵A,其元素是awi,h, 表示Pj中第h条微博中的wi特征词的热度含量。假设wi在包含k个特征词的第h条微博中位于第r个位置,则awi,h的计算公式如下

(9)

(3)mwi,j表示特征词wi在微博dj中分配的热度,公式如下

(10)

其中,τ表示权重系数取τ=0.45, 在实验部分确定,UA表示该条微博对应的用户权威度。

(5)通过对M进行降序排序,我们就能得到特征词的热度排名。

2.4 算法总流程

通过对微博影响因素的分析与总结,得出算法总过程如下。

提取微博文档数据集的topicTag信息。使用ICTCLAS分词系统对文本内容及话题标签进行分词。根据式(3)计算微博中特征词分配得到的权重,并使用基于SSE的聚类算法进行聚类。根据式(4)计算每篇微博对应博主的用户权威度。根据词热度分配算法计算,得到特征词的热度排序降序结果。根据排序结果中的特征词,得到对应聚类类簇的大概主题。

3 实验结果与分析

3.1 实验数据

本实验目的是验证本文提出的基于用户权威度与热度分配的热点话题发现算法是否能够更准确地挖掘微博中的热点话题。

本文采用八爪鱼爬虫工具从微博中爬取实验数据集U,以2016年8月份微博的数据内容作为采集数据对象,总共采集了63 416个用户的博文数据。该数据包括用户信息、微博文本、文本间引用(转评赞)关系。经过筛选剔除后,共得到有效样本52 450个用户数据,甄别无效样本10 966个用户数据。

本文对数据集进行人工话题筛选,得到10个话题类别,见表1。

表1 实验语料

3.2 实验评测指标

TDT评测会议给出了话题检测的相关规范指标[12],本文采用的评价指标为:吞吐量、运行时间、准确率以及F值。

吞吐量(TPS)测试主要用来观察模型建立的过程,每秒能够进行多少条微博的处理;运行时间(T)表示从分词之后到得到热度分配的排序结果以及词对共现矩阵排序结果的时间;准确率是算法结果与官方处理结果之间的正确性的比值;F值用于评价算法的综合指标。

3.3 参数确定

首先通过实验为式(2)的常数ε选取合适的值,分别选取数据集中8000,15 000,25 000条数据的情况下,研究不同的ε值对热度分配算法排序结果的准确性影响。

当ε过小时,与传统的TF-IDF区别不大,当ε过大时,忽略微博中topicTag以外的特证词,通过结果可知,ε=1.5的正确率是最高的,故本文选取ε=1.5。

其次,确定式(4)中的v1,v2,v3权值系数。求解最大特征值以及最大特征向量,并且加入一致性校验,最终得到评价特征的权值为(v1,v2,v3)=(0.6373,0.1353,0.2273); 同理得到式(7)中的两个因素的特征权值为(φ,ω)=(0.8334,0.1666)。

3.4 算法对比与结果分析

实验步骤分为吞吐量测试、运行时间测试、准确率测试和F值测试4个部分。本文算法作为算法1与以下两种算法进行比较。算法2:刘少鹏等的基于MB-HDP模型的微博主题挖掘[4];算法3:Yan D等词向量+Single-Pass聚类[13]。

吞吐量测试主要用来检查热度分配与词对共现矩阵模型建立的过程,吞吐量测试结果如图3所示。

图3 吞吐量测试结果

由结果可知,本文算法吞吐量结果基本稳定在8000条/s,在数据量大的情况下表现较好可以应对大数据的情况。

在运行时间测试之前,为了使实验更具有对比度,本文将原始数据集U随机分为3组不同的数据集进行测试。A组有8456微博数,B组有10 577微博数,C组有24 417微博数。

针对3组数据,分别使用上面说明的算法1、算法2以及算法3进行计算,运行时间的测试结果如图4所示。

图4 运行时间对比

可以看出在数据集规模相差较大的情况下,算法1运行时间受数据量影响不大,算法2、算法3运行时间受数据规模影响较为敏感,会随着数据集的增长而较快增长。由此可见,本文算法效率适用于大数据集的场景,并且表现相对较好。

对于准确率的测试,本文收集了微博官方给出的热门话题列表,将算法结果与官方结果进行比较。使用运行时间测试中的C组数据进行测试,准确率测试结果如图5所示。

图5 准确率测试结果

通过对比可以看出,本文算法在准确率方面也是优于算法1和算法2,得到热点话题与官方话题基本相同,仅在话题顺序上有点不同,同时选出的热点话题带有topicTag标记,使得话题描述更加准确。

F值测试主要用来检测聚类的效果,为了进一步验证算法的稳定性,验证微博数据集为5000-40000逐渐递增情况下的F值,F值测试的结果如图6所示。

图6 微博数据集对F值的影响

从图6中可以看出,算法1的聚类效果随着微博数据集增加F值的表现越来越好,符合聚类算法的特性。

4 结束语

本文针对以往热点话题挖掘的缺陷,综合多个热点话题的影响因素,提出了基于用户权威度与热度分配的微博热点话题算法,该算法很好结合了微博热点话题的影响因素,综合特征词权重降序顺序,对微博文本进行聚类分析得到主题类簇;根据用户权威度及博文之间的引用关系计算特征词热度,得到特征词的热度排序结果,获取特征词对应聚类类簇的大概主题即热点话题。实验结果表明本文算法在微博热点话题挖掘上表现较好。下一步可以考虑在文本内容之外,结合图片表情及视频资料,对微博数据内容进行更全面的分析,从而对微博话题进行更好的挖掘。

猜你喜欢
特征词热点话题权威
基于类信息的TF-IDF权重分析与改进①
各大权威媒体聚焦流翔高钙
基于改进TFIDF算法的邮件分类技术
产品评论文本中特征词提取及其关联模型构建与应用
跟踪督察:工作干得实 权威立得起
2017年高考作文热点话题预测
权威发布
基于SVM的热点话题跟踪实现过程研究
面向文本分类的特征词选取方法研究与改进
权威的影子