您的位置:首页 > 其它

Moodlens:一个基于表情符号的中文微博情感分析系统(A3, SIGKDD2012)

2015-09-22 17:17 381 查看

Moodlens: an emoticon-based sentiment analysis system for chinese tweets Moodlens:一个基于表情符号的中文微博情感分析系统(A3, SIGKDD2012)

文章建立了一个叫Moodlens的系统,是微博上第一中文微博情感分析系统。在Moodlens中,95个表情符号对应四个情感类:生气,厌恶,喜悦和悲伤,作为微博的类标签。收集了350万标记微博作为语料并且训练了一个快速朴素贝叶斯分类器。还实现了一个增量学习方法来处理情感转移和新词产生问题。通过使用高效朴素贝叶斯分类器,Moodlens能够进行实时在线情感监测

Moodlens系统的主要贡献:帮助解决长期存在的短文本稀疏问题;检测四种类型的情感:生气,厌恶,喜悦和悲伤,而不是传统的二值情感分析;实现了一个增量学习机制;有能力进行实时微博处理和分类,可以作为一个实时异常事件监测系统。

基于表情符号的方法

在1000多个表情符号中,手工选择95个作为情感标签(记为E),划分它们为4个不同的情感类。

从2010年12月到2011年2月,Moodlens收集了7000多万的微博,抽取包含E中表情符号的350万微博作为标记微博集并分类,记为T。这些微博可以作为初始情感语料。对于T中的每条微博,Moodlens转化其为词序列{ωi}\{\omega_i\},ωi\omega_i是一个词,i是它在t中的位置。

在Moodlens中,采用简单的朴素贝叶斯方法建立分类器,需要少量的训练时间并且快速预测类别。从标签微博,获得单词ωi\omega_i属于情感类别cjc_j的先验概率P(ωi|cj)=ncj(ωi)+1∑q(ncj(ωq)+1)P(\omega_i|c_j)=\frac{n^{c_j}(\omega_i)+1}{\sum_q(n_{c_j}(\omega_q)+1)},j=1,2,3,4j=1,2,3,4,ncj(ωi)n^{c_j}(\omega_i)是词ωi\omega_i在类cjc_j中所有微博中出现的次数,使用拉普拉斯平滑来避免0概率问题。

建立NB分类器:对于一个词序列为{ωi}\{\omega_i\}的给定微博t,类别按如下获得,c∗(t)=arg maxjP(cj)ΠiP(ωi|cj)c^*(t)=arg\ max_jP(c_j)\Pi_i P(\omega_i|c_j),P(cj)P(c_j)是cjc_j的先验概率。

为了验证分类器的性能,标记微博随机划分为两个集合,包括训练集TtrainT_{train}和测试集TtestT_{test},训练数据的比例ft=|Ttrain||T|f_t=\frac{|T_{train}|}{|T|},在TtrainT_{train}中,标记为cjc_j的微博集记为TcjtrainT_{train}^{c_j},相似的,TtestT_{test}中类cjc_j的微博记为TcjtestT_{test}^{c_j}。在测试集正确预测的类cjc_j的微博记为PcjP^{c_j}。使用精度,召回率和F值作为度量描述分类器的有效性:p=∑4j=1|Pcj||Ttest|p=\frac{\sum_{j=1}^4|P^{c_j}|}{|T_{test}|},r=14∑4j=1|Pcj||Tcjtest|r=\frac{1}{4}\sum_{j=1}^4\frac{|P^{c_j}|}{|T_{test}^{c_j}|}。文章使用一个标准词袋作为特征,设置ft=0.9f_t=0.9,P(cj)=0.25P(c_j)=0.25,得到一个朴素贝叶斯分类器。

采用一个简单的增量学习方法补充原始NB分类器。假定微博是一个流,其中有一部分的微博是情感标记的,这些标记的微博可以用于更新词的先验概率。为了验证这个方法的有效性,随机搅乱T,划分它为50个相同尺寸的小块。用第一个小块作为训练集获得初始分类器,其他的49个小块,将它们当作微博流,这意味着它们一个一个地进入分类器,对于它们中的每个,以μμ的比例随机选择为标记微博用于更新分类器。令μ=0,0.01,0.05,0.1μ=0,0.01,0.05,0.1,计算p,r,f指标。随着小块的增加,p,r,f增长。μμ越大,更新越多,提升越多。

应用

数据收集

从收集的2011前的大规模用户池,Moodlens随机选取6800个活跃用户,每个省或地区200个。活跃用户指那些真实但不是垃圾的用户。一个简单的过滤规则是,只选择有多于200个少于3000个关注者并且发表了少于3000条微博的用户。

情感模式

小时情感模式、星期情感模式、月份情感模式。分析用户的各种情感变化和峰值。

异常事件检测

直观地,真实世界中的异常事件将影响人们的情感,情感改变将通过人们发表的微博反映。检测方法的基本思想是找到情感变化的转折点,然后从微博抽取事件信息。MoodLens为情感cjc_j定义了一个分数序列{Scjt}\{S_t^{c_j}\},t是观察时间,单位可能是一天或一小时。假定观察t=t1t=t_1到t=t2t=t_2的情感变化,cjc_j中微博的平均分数定义为:<Scjt1→t2>=1t2−t1∑t2t=t1Scjt=\frac{1}{t_2-t_1}\sum_{t=t_1}^{t_2}S_t^{c_j},MoodLens可以获得cjc_j相关变化的序列:Vcjt=Scjt−<Scjt1→t2><Scjt1→t2>V_t^{c_j}=\frac{S_t^{c_j}-}{}。MoodLens定义情感变化的序列为{∑4j=1|Vcjt|}\{\sum_{j=1}^4|V_t^{c_j}|\}。这一序列递减排序,前k个选为异常时间点。对于每个时间点,MoodLens抽取当时发表的微博进行事件的信息抽取。

实时情感监测

带增量学习的NB分类器对于实时情感分析足够快速,通过微博提供的API,MoodLens每分钟可以获得最近发表的400条公开微博。这些微博可以在少于一分钟的时间内分析。可以设置收集微博的时间周期。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: