APP下载

基于微博文本和元数据的话题检测

2016-09-26李继云

计算机应用与软件 2016年3期
关键词:博文主题词聚类

孙 莉 张 振 李继云 王 梅

(东华大学计算机科学与计算机学院 上海 201620)



基于微博文本和元数据的话题检测

孙莉张振李继云王梅

(东华大学计算机科学与计算机学院上海 201620)

在微博热点话题发现中,微博文本短、词量少、时效性高,传统的话题检测方法不再适用。针对这些新的特点,提出一种基于微博文本和元数据的话题发现方法。首先利用微博发布时间、用户信息、微博转发评论等元数据构造描述微博词汇能量的复合权值,进而提取出话题的主题词汇,然后基于上下文关系构造主题词汇簇,最后对微博文本进行二次聚类,从而得到微博中的隐含话题以及相关微博文本。在真实微博数据上的实验表明,该方法能有效发现热门话题,提高话题检测的准确率和查全率。

微博元数据聚类话题检测

0 引 言

随着互联网行业的飞速发展,微博的注册用户数量持续升高,微博变得越来越深入大家的日常生活,成为了互联网用户分享生活、联络关系的一个重要平台。最早的微博应用模式来源于2006年诞生于美国的twitter,随后中国新浪公司在2009年推出了新浪微博,自此微博正式进入了中文上网人群的视野。随着微博的出现以及爆炸性发展,刷微博逐渐成为了人们获取信息和发表意见的重要方式,从微博中监控舆论也因此成为一种重要的舆论监控方式。

与传统的新闻文本不同,微博的内容简短,长度一般不超过140字,因此包含的词语数量较少[1]。微博的文风也不像长篇新闻报道那样正式,它的写法随意,语言丰富多彩,行文措辞不规范。微博具有很强的实时性,针对这种特征对微博内容进行处理分析,可以及时检测事件的发生,发现大众观点,从而进行舆论的监控。传统的新闻话题识别[2,3]一般将长文本中的词语视为特征,先利用特征向量来表示文本,再采用一定的聚类算法根据文本向量间的距离对文本进行聚类,然而由于微博的文本简短、词语稀疏、写法随意、发布实时等特点使得传统的聚类或分类方法在微博话题检测方面变得不再适用。

本文仔细分析了微博的特点,提出一种基于微博文本和元数据的话题发现方法,先进行主题词聚类再对微博文本进行二次聚类。首先从词语的角度出发,而不是从整个微博文本比对的角度,使得单条微博中词语稀疏的问题得以解决,同时也使得热点词语的检测变得更加重要。本文在获取微博数据后,采用中科院的ICTCLAS分词库对微博文本进行分词与词性标注,把一个时间段内所有微博包含的词语集合看成一个整体单元,充分结合微博元数据找到该时间段内的TOP-N个热点词语;然后计算热点词语在微博文本里共同出现的概率,如果两个词语共同出现概率超过一个阈值则可以确定它们之间的语义关系,根据这些关系可以构造出一个N顶点图,由图得到主题词汇簇;最后基于主题词汇簇对微博文本进行二次聚类,从而得到微博中的隐含话题以及相关的微博文本。

1 相关研究

话题检测旨在将输入的报道归入不同的话题簇,本质上等同于无指导的聚类。常用的聚类方法有单通道聚类、凝聚式聚类、层次聚类、增量聚类和K-Means聚类等。CMU的Y. Yang和UMASS的J. Allan等人运用单路径聚类方式实现了话题检测[4;5]。而CMU的Yiming Yang结合了凝聚式聚类算法与平均聚类算法,使TD系统同时可以用于回顾相关事件[6]。虽然以上算法在特征丰富的传统长文本中取得了不错的效果,但并不适合特征稀疏的短文本类型。随着微博的兴起,针对微博话题检测的研究也越来越多。Changchun Yang等人针对微博的特性使用LSI模型达到降维和去噪的目的[7]。Silong Zhang等人利用LDA来拓展文本特征空间,基于上下文相似度和语义相似度在微博话题检测中取得了不错的效果[8]。上述两种方法都起到了数据降维的作用,并在一定程度上解决了微博特征稀疏的问题,但效果并不明显。之后赖锦辉等人提出了一种消除孤立点的微博热点话题发现方法[9],该方法可以较大程度上提高话题检测的准确性,但文本特征稀疏的问题仍未得到很好的解决。Wenqing Zhao等人不再从微博文本相似度比对的角度出发,而是根据一段时间内词语的变化检测话题,提出了一种基于词共现图的中文微博话题识别方法,从而较好地解决了短文本特征稀疏的问题,更适用于微博的话题检测[10]。之后Suzhi Xue等人对微博话题发现问题引入了二元组的时间序列,提出了基于速度增长的微博热点话题发现方法[11]。微博时间的引入提高了热点话题发现的准确度。Feifei Peng等人则在研究中引入了微博的转发评论量作为热点词语的修正权值,但是他们对微博元数据的考虑还不够充分[12],比如对发布微博者的用户信息的考量。具有不同影响力的用户发布的微博应拥有不同的权值,用户信息的引入将更为有效的提高微博话题检测的准确率。

本文首先从词语的角度出发,与从整个微博文本比对的角度不同,充分利用微博发布时间、用户信息、微博转发评论等元数据来构造描述微博词汇能量的复合权值,找到TOP-N个能量最高的热点词语;然后基于上下文关系对热点词语构造主题词汇簇;最后基于主题词汇簇对微博文本进行二次聚类,从而得到微博中的隐含话题以及相关的微博文本。

2 微博话题检测算法

本文采取的基于微博文本和元数据的话题检测算法主要包括以下步骤:收集数据和数据预处理,结合微博元数据发现热点词语,聚类出主题词汇簇,微博文本二次聚类,聚类效果分析。微博话题检测算法流程图如图1所示。

图1 微博话题检测算法流程图

2.1数据预处理和分词

数据预处理和分词作为微博话题检测的准备工作,有着不可忽视的作用。数据预处理能在一定程度上达到去噪、降维的目的,同时在一定程度上解决了特征稀疏的问题。文本分词效果的好坏则在很大程度上决定着后期的聚类效果。该过程的具体步骤如下:

(1) 过滤掉互粉人数低于阈值F的用户的微博文本。如果互粉人数过低的一般可以认为是广告账号或者僵尸账号,这些账号所发的微博噪音过大,会对后面的聚类产生干扰,因此提前过滤掉。

(2) 因为微博文本中常常包含@符号,它表示该条微博想让@的用户看到。这些用户名可能会对我们后面的分词产生影响,而且用户名并不能表征出微博中所说的话题,因此过滤掉文本中的“@用户”。

(3) 将微博的评论信息和原始微博文本信息进行合并。对一条微博的评论可以看成是对该微博的补充,它们叙说的一般是同一话题。微博与其评论的合并使得文本长度增加,文本包含词语数增多,一定程度上解决了短文本特征稀疏的问题。

(4) 有不少较为成熟的中文分词算法和工具,本文采用的是中科院的ICTCLAS分词系统的JAVA版本。该工具因分词效果好、使用简单、带有详细词性标注等特点而被广泛应用于科研工作中。通过该分词系统分词后,微博文本转化为一系列的词语,每个词语都带有词性标注,如动词、名词、形容词、副词等等。不同词性的词语对主题表达的贡献程度不同,其中动词和名词具有最高的主题辨识度,因此本文中将主要考虑这两种词性的词语,过滤掉其他词性的词语。

2.2热点词检测

我们发现在之前的研究中多采用单纯的词频方式,而忽略了微博所特有的一些元数据,这些元数据包括该条微博的转发量、评论量和微博的用户属性等。一个拥有大量粉丝、经常发布微博的加V用户的微博影响力应比只有少量粉丝、不经常使用用户的微博影响力大。因此在计算微博能量的时候不仅要考虑微博的转发量和评论量,而且要考虑微博发布者的用户属性。微博的能量公式如下:

k=lg(numreplies+numretransmits)+u(U)

(1)

其中numreplies表示微博的评论数量,numretransmits表示微博的转发数量,u(U)表示用户信息的影响权值,k表示微博能量。其中u(U)的计算方式如下:

(2)

根据U值的范围决定u(U)的最终取值。其中U的计算方式如下:

(3)

其中numfollowers表示微博用户的粉丝量,numstatuses表示微博用户发布的微博数量,numbi_followers表示微博用户的互粉好友的数量,v用于表示用户是否为认证用户,如果是认证用户则v为100,否则为0。

每条微博文本分词后,词语的出现量将乘以参数k。例如一条关于“中国好声音”的微博文本中“歌曲”这个词语出现了2次,则这条微博中“歌曲”这个词语的加权出现量将为2k个。

实时性是微博的一个重要特征,微博中热门话题会随着时间的变化而改变。比如关于“李天一案件”的微博文本数量随着时间的变化先增后减,在案件开庭前后的相关微博文本数量最多,这说明了微博是有历史属性的。因此我们不仅要考虑一个时间段内微博词语的出现量,而且要考虑两个连续时间段相同词语出现量的变化。把词语的增长或者减少趋势考虑进来,从而得到关于词语出现量的时间权值t,计算方式如下:

(4)

其中numword_now表示当前时间段内词语word的出现量,numword_past表示过去一个时间段内词语word的出现量。如果当前时间段比过去时间段的相应词语多,则t的值大于1,否则小于1。词语最终得分公式如下:

(5)

其中t为时间权值,ki为第i条微博的能量,numword_i为第i条微博词语word的出现量,M为微博的总条数。之后根据词语得分进行降序排列得到一个序列,该序列具有明显的长尾现象,得分较低的词语占据了序列的绝大部分,因此只需取top-N个词语作为当前的热点词语。这些热点词语很有可能决定了当前微博的隐含话题,称其为主题词。

2.3主题词聚类

如果在一个大规模的语料库中,2个词语经常出现在同一个单元中(例如一句话、一段文字、一篇文章等),则可以认为这两个词语的组合比较稳定,在语义上存在关联。词语的共现率越高,代表它们之间的关联性越强。每个微博文本可以理解为一个简短的自然段或者文章,当两个词语经常出现在一个微博中时,则可以认为这两个词语存在语义上的关联。

不同主题词在文本中共同出现的现象称为主题词的共现,而存在主题词共现现象的微博文本在总文本中的比率称为主题词的共现率。比如,一共有1000个微博文本,主题词A和主题词B在其中的100个微博中同时出现,则主题词A和主题词B的共现率为0.1。把所有主题词当作点,当两个主题词的共现率超过阈值F时,就连接两点建立边,最终得到一个非连通图。该图中的每个连通子图构成了一个主题词汇簇,由此得到所有的主题词汇簇。

图2 主题词汇簇连通图

如图2所示,每一个黑色的圆点代表一个主题词,圆点之间连接的边代表两个主题词共现率超过了阈值F。每一个连通的图构成了一个主题词汇簇,例如图中word 1-word 4为一个主题词汇簇,word 5-word 8为另一个主题词汇簇,二者分别用于确定一个话题。主题词聚类算法流程图如图3所示,具体描述如下:

输入:top-N个主题词和主题词之间的共现率

输出:多个主题词汇簇

步骤1以第一个主题词作为初始簇的第一个词语;

步骤2输入下一个主题词,分别计算该主题词与每个词汇簇中所有词语的共现率的平均值,并找到最大的平均共现率K,以及对应的词汇簇X;

步骤3判断最大平均共现率K是否超过阈值F,如果超过则主题词归入词汇簇X;否则生成一个包含该主题词的新词汇簇;

步骤4读取top-N列表里的下一个主题词。重复步骤2、步骤3直到列表里的每个主题词都划入相应的簇中;

步骤5输出结果。

图3 主题词聚类算法流程图

2.4微博文本二次聚类

前面得到的主题词汇簇即可用来确定一个话题原型,词汇簇中包含的主题词具有较好的话题区分度。把微博文本中的每个词语当成一个元素,微博文本可以转化成一个包含n个元素的微博向量t(a1,a2,…,ak,…,an),其中下标1~n对应top-N个主题词,ak(1≤k≤n)为对应主题词是否存在的逻辑值,如果存在则为1,否则为0。同理,由多个主题词构成的主题词汇簇也可以转换为包含n个元素的主题词汇簇向量w(b1,b2,…,bk,…,bn)。由向量t和向量w可以求出它们之间的夹角余弦值,夹角余弦值越大代表向量间的相似度越高,而微博向量与主题词汇簇向量的相似度越高,代表微博文本离主题词汇簇越近。根据微博向量和主题词汇簇向量相似度的大小来确定微博文本应该划入哪个主题词汇簇中。微博文本二次聚类算法流程如图4所示,具体描述如下:

输入:主题词汇簇和微博文本

输出:每条微博文本所属的主题词汇簇

步骤1所有的主题词汇簇转换为主题词汇簇向量;

步骤2输入一条微博文本,转换为微博向量。计算微博向量与各个主题词汇簇向量的相似度,找到最大相似度simmax和对应的主题词汇簇向量W;

步骤3判断最大相似度simmax是否超过阈值G,如果超过则将微博向量对应的微博文本划入主题词汇簇向量W对应的主题词汇簇中;否则该微博不属于任何一个热门话题;

步骤4重复执行步骤2、步骤3直到所有微博文本都判断完成;

步骤5输出结果。

图4 微博文本二次聚类算法流程图

3 实 验

本文实验环境为Intel Core i5-2400 3.10 GHz CPU、4 GB内存、500 GB硬盘的PC机。操作系统为Win7,实验工具为eclipse3.7.2,JDK版本为1.7.0。实验所采用的原始数据集来自于数据堂,内容包括新浪微博几天内与15个话题相关的4千多条微博。每条微博都已标注了所属的话题,话题包括“斯诺登棱镜事件”、“李天一案件”等。然后使用新浪微博官方API提取与这些微博相关的元数据,例如微博发布者的用户信息,微博的转发评论数量等。

3.1主题词聚类结果分析

主题词聚类为本文话题检测方法的一个重要部分。对实验数据集进行数据预处理、分词和热点词检测,得到top-N个主题词以及这些主题词之间的共现率。把这些主题词以及它们之间的共现率作为微博主题词聚类算法的输入,得到多个主题词汇簇。每个主题词汇簇有着不同的能量值,首先对每个主题词汇簇中包含的主题词的能量进行加和运算以得到该主题词汇簇的能量值,然后将其排序,最后选取数值超过阈值J的主题词汇簇,结果如表1所示。

表1 主题词聚类效果

从表1可以看出通过主题词聚类得到的主题词汇簇和对应的话题高度吻合,例如话题“李天一案件”对应的主题词汇簇里的“律师”、“轮奸”、“受害人”等主题词都明显与该话题高度相关。而且主题词汇簇的数量刚好为15个,与所选的实验数据集中话题的数量一致并且逐一对应,因此可以看出本文采用的主题词聚类算法取得了较好的效果。

3.2微博文本二次聚类结果分析

传统的话题检测多采用聚类算法,结合文本间相似度进行聚类。经典聚类算法包括singlePass、kmeans等,它们虽然在传统长文本上取得了不错效果,但是在微博这种短文本上效果却不佳。而单纯基于词频的话题检测虽然适合特征稀疏的短文本,但未考虑微博特有元数据对微博能量的影响。本文提出的方法将微博文本和主题词汇簇作为输入,经过微博文本二次聚类算法得到最终的话题检测结果。为了验证本文所述方法更适合微博的话题检测,将本文方法与singlePass聚类方法、kmeans聚类方法和单纯基于词频方法进行效果评价,结果如图5、图6所示。评价指标为查全率、准确率、漏检率和错检率,各个参数的计算方法如下:

(6)

其中a为检测到的话题相关微博文本数;b为检测到的话题不相关微博文本数;c为未检测到的话题相关微博文本数。

图5 各算法准确率和查全率对比图

由图5所示:singlePass聚类的准确率和查全率都明显不如本文方法;kmeans聚类虽然由于本身算法特点使得查全率为百分百,但准确率却比本文方法低了很多;单纯基于词频的话题检测方法由于未考虑微博元数据对微博能量的影响,准确率和查全率不如本文方法。

图6 各算法错检率和漏检率对比图

由图6所示:本文方法的错检率相比较其他方法有所下降,特别是对比传统的singlePass聚类和kmeans聚类方式;本文方法的漏检率相比较singlePass聚类和词频方法也有所降低。

综上所述,本文采用的话题检测方法在实验数据集上取得了较好的效果。

4 结 语

微博热点话题的识别有着重要的应用价值,本文在仔细分析微博的特有属性后,提出了一种基于微博文本和元数据的话题发现方法,先进行主题词聚类再对微博文本进行二次聚类。通过数据预处理、分词、发现热点词语、基于上下文关系聚类出主题词汇簇、微博文本二次聚类等步骤最终得到微博中的隐含话题以及相关的微博文本。基于真实数据的实验结果证明了该方法的有效性,但是该方法受限于文本的数量,在大数据时代,实际的数据量往往是TB级,甚至PB级。为了保证算法的效率,有必要将算法移植到分布式平台下并行处理。在保证效率的同时,准确率和查全率的提升也是本文后续研究的重点。

[1]KwakH,LeeC,ParkH,etal.WhatisTwitter,asocialnetworkoranewsmedia?[C]//Proceedingsofthe19thinternationalconferenceonWorldwideweb,2010:591-600.

[2]MoriM,MiuraT,ShioyaI.Topicdetectionandtrackingfornewswebpages[C]//Proceedingsofthe2006IEEE/WIC/ACMInternationalConferenceonWebIntelligence,2006:338-342.

[3]AllanJ,CarbonellJG,DoddingtonG,etal.Topicdetectionandtrackingpilotstudyfinalreport[R].UMassAmherst,1998.

[4]YangY,CarbonellJ,BrownR,etal.Multi-strategylearningfortopicdetectionandtracking[M].Topicdetectionandtracking.SpringerUS,2002:85-114.

[5]AllanJ,LavrenkoV,SwanR.Explorationswithintopictrackinganddetection[M].Topicdetectionandtracking.SpringerUS,2002:197-224.

[6]YangY,PierceT,CarbonellJ.Astudyofretrospectiveandon-lineeventdetection[C]//Proceedingsofthe21stannualinternationalACMSIGIRconferenceonResearchanddevelopmentininformationretrieval,1998:28-36.

[7]YangC,YangJ,DingH,etal.AHotTopicDetectionApproachonChineseMicroblogging[C]//ProceedingsoftheInternationalConferenceonInformationEngineeringandApplications(IEA) 2012,2013:411-420.

[8]ZhangS,LuoJ,LiuY,etal.Hotspotsdetectiononmicroblog[C]//MultimediaInformationNetworkingandSecurity(MINES), 2012FourthInternationalConferenceon, 2012:922-925.

[9] 赖锦辉, 梁松.一种消除孤立点的微博热点话题发现方法[J]. 计算机应用与软件, 2014,31(1):105-107,139.

[10] 赵文清, 侯小可. 基于词共现图的中文微博新闻话题识别[J].智能系统学报,2012,7(5):444-449.

[11] 薛素芝, 鲁燃, 任圆圆. 基于速度增长的微博热点话题发现[J].计算机应用研究,2013,30(9):2598-2601.

[12]PengF,QianX,LiG.AResearchofHotTopicDetectionthroughMicroblogging[C]//IntelligentHuman-MachineSystemsandCybernetics(IHMSC), 2012 4thInternationalConferenceon,2012:185-188.

TOPIC DETECTION BASED ON MICROBLOGGING TEXT AND METADATA

Sun LiZhang ZhenLi JiyunWang Mei

(SchoolofComputerScienceandTechnology,DonghuaUniversity,Shanghai201620,China)

Traditional topic detection method is no longer applicable on hot microblogging topic discovery, because microblogs are too short in text with fewer words and high timeliness. For these new characteristics, in this paper we present a topic discovery method which is based on microblogging text and metadata. First, we make use of the metadata, such as posting time of microblogs, users information, and forwarding and comments of microblogs, to construct the composite weight value of microblogging vocabulary energy, and then extract themes vocabulary of topics. After that we construct the themes vocabulary clusters based on the context. At last, we conduct secondary clustering on microblogging texts so that to get the implicit topics in microblogs and the related microblogging texts. Experiments on real microblogging data show that this method can effectively find the hot topics and improve the accuracy rate and recall rate of topics detection.

MicroblogMetadataClusterTopic detection

2014-07-26。国家自然科学基金项目(61103046)。孙莉,副教授,主研领域:数据库技术,面向对象分析与设计。张振,硕士。李继云,副教授。王梅,副教授。

TP391

A

10.3969/j.issn.1000-386x.2016.03.014

猜你喜欢

博文主题词聚类
第一次挣钱
基于K-means聚类的车-地无线通信场强研究
谁和谁好
基于高斯混合聚类的阵列干涉SAR三维成像
《老年医学与保健》2017年第23卷主题词索引
Review on Tang Wenzhi’s The Gist of Chinese Writing Gamut
一种层次初始的聚类个数自适应的聚类方法研究
我校学报第32卷第5期(2014年10月)平均每篇有3.04个21世纪的Ei主题词
我校学报第32卷第6期(2014年12月)平均每篇有3.00个21世纪的Ei主题词
《疑难病杂志》2014年第13卷主题词索引