这个案例展示了如何利用KNIME对社交媒体数据进行情感分析。
案例中的数据抓取的是Slashdot网站首页内容,由FundaciónBarcelona Media4提供。Slashdot是1997年成立一家非常受欢迎的科技新闻站。Slashdot网站首页的主要内容就是网友发布的新闻以及网友在评论区展开的讨论。案例使用的数据共包含约41337条评论,这些评论主要是11000多名Slashdot用户对163篇政治报道的讨论。
研究思路
我们的研究目的是区分不同用户的情感取向。我们将通过对用户撰写的评论和文章的词语进行分析、做出用户情感取向判断。也就是说,我们通过测量用户(非匿名)撰写的评论和文章时使用的正面的情感、态度、观点词汇的数量以及负面情感、态度和观点词汇的数量,来判定该用户情感取向。用户使用正面词汇越多,其情感取向偏向正面,反之亦然。
此处涉及到标记词汇极性的问题,在这里我们使用MPQA主观词库来标记词汇的极性。MPQA是一个公开的词库,其中包含了关于词汇极性的数据。
研究流程
首先读取从Slashot上获取的数据,选取报道主题为“interviews”的评论,删除匿名文章和匿名评论。然后将剩下的非匿名评论转化为文档方便之后的分析。与此同时,另外一边首先读取MPQA主观词汇,提取出词汇和极性,并且拆分为正面词汇和负面词库方便之后的标记。最后,DictionaryTagger节点将每个情感标记到评论中每个词语上。
现在所有评论中的词汇都被标记成了正面或负面,我们就可以开始计算工作。我们要计算每个评论中的正面或负面词汇数量和每个用户共使用的正面或负面词汇数量。通过user id我们可以整合每个用户不同评论中的正面词汇和负面词汇。在流程图中对应的是Documentscoring和User scoring。最后,我们为不同情感取向的用户标注颜色,整理数据并制成散点图。
结果展示
下图是用户使用词汇的散点图,纵坐标是正面词汇,横坐标是负面词汇。绿色的用户情感取向正面;灰色代表用户情感取向既不是正面,也不是负面;红色代表情感取向负面。
左上角红箭头指的用户是Duc Ruby,他是情感取向最正面的用户,也是经常在Slashdot上发表评论的用户。他使用的正面词汇数量是51,负面词汇数量是10,我们用正面词汇数量减去负面词汇数量得出其情感指数是40,即情感取向最正面的用户。
右下角红箭头指的用户是whytakemine,他是情感取向最负面的用户,也是经常在Slashdot上发表评论的用户。他使用的正面词汇数量是16,负面词汇数量是25,我们用正面词汇数量减去负面词汇数量得出其情感指数是-9,即情感取向最负面的用户。
左下角圆圈部分代表了大部分中立用户,他们在Slashdot上发表的评论很少,这也是无法判断其情感取向的可能原因。
总体而言,本次案例介绍的是如何利用社交媒体UGC内容对用户进行情感分析。其实,情感分析只是对用户进行了归类,它主要还是用于后续的其他研究,如结合社会网络,对其中的Leader和Follower做进一步分析。
本文作者:沈浩
来源:51CTO