我不是唐纳德·特朗普(Donald Trump)的超级粉丝。严格说来,我一点也不喜欢他。然而,他的个人魅力是不容忽视的,他的名字一直占据着大多数报纸和社交媒体。人们对他的态度是戏剧性的和双边的。他的描述词要么是非常积极的,要么是非常消极的,对于网络搜集和情感分析来说,这是一些完美的材料。

本次研究的目的主要是使用Octoparse爬虫工具抓取Twitter上关于唐纳德·特朗普的相关推文。然后,我们使用python语言进行情感分析,以此来分析公众对总统的看法。最后,我们使用Tableau Public进行可视化。

本文特别适合以下人群

1、想了解如何采集社交媒体上的内容或者评论。

2、想了解如何利用Python进行情感分析。

首先我们打开Octoparse官网,下载官方最新版本,并按照指示完成注册,登录后,再打开内置的Twitter简易模板。

采集的数据字段包括

  • 用户名
  • 发布时间
  • 发布内容
  • 图片链接
  • Tweet链接
  • 评论数,转发数,点赞数

首先在Twitter采集模板的关键词参数中输入"Donald Trump",然后点击启动采集就会自动采集数据,正如下图所示,很简单,我大概采集了1万多条Twitter推文,你可以尽可能多的输入关键词,从而采集更多的推文,采集到推文数据后,将数据导出为文本文件,文件命名为"data.txt"。

利用Python进行情感分析

在开始之前,请确保您的电脑已经安装Python开发环境以及文本编辑器,我文章中使用的是Python2.7 和 Notepad++文本编辑器。

然后,我们使用了两个情感关键词列表组成的txt文件,来分析之前采集下来的Twitter信息,你可以在文末下载这两个文件。

这里的想法是把txt文件中的每个情感关键词提取到list列表中,然后计算这些关键词在每条推文中的频率,最后我们把相应包含情感词的推文给记录下来。

首先,把两个txt文件中的积极和消费情感关键词分别存储在plist和nlist的列表中。

然后,对采集下来的Twitter推文进行数据清洗,处理掉所有特殊符号(标点和数字等),将每条推文数据保存到word_list列表中。


经过数据处理后,数据只包含清洗后的推文,让我们更易进行数据分析。后续,我们会创建三个字典:wordcountdict, wordcountpositive, and wordcountnegative。


接下来,定义每个字典,如果在Twitter数据中出现相应的推文,则增加1,并储存到wordcountdict字典中。


接下来的话,确定每条推文是否包含积极或者消极的情感关键词,如果包含了积极的情感关键词,则wordcountpositive字典关键词加1,否则保证一个相同的值。如果包含了消极的情感关键词,wordcountnegative做相同处理。如果推文不包含任何积极或者消极关键词,则不作任何处理。

情感分析:消极还是积极

通过运行上面的Python脚本,我得到了5352个消极关键词以及3894个积极关键词,保存在上面相应的列表中,然后打开Tableau,建立了一个气泡图,如下所示。如果你不知道如何利用Tableau建立气泡图,请点击这里。


由图可以看出,很多积极关键词都是片面的,只有404种积极关键词被使用,最常见的话,例如“like”、“great”和“right”,大多数关键词是基础的并且偏口语化,如“wow”和“cool”,而使用的否定关键词更加多样化,他们大多十分正式并且高级,最常用的是“illegal”、“lies”、“racist”。其他词语,如“delinquent”、“inflammatory”、“hypocrites”也是经常出现的。

上面关键词同时也说明支持者比反对者的教育水平更低,显然,唐纳德·特朗普在推特用户中并不受欢迎。

总结:

在这篇文章中,我们谈到了如何Octoparse软件采集Twitter推文,我们还讨论了如何进行数据清洗和使用Python对Twitter推文进行情感分析。对于代码的完整版本,你可以在以下链接下载。

参考链接: