奔达知识屋

Twitter数据采集以及情感分析方法

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

I'm not a big fan of Donald Trump. Strictly speaking, I don't like him at all. However, his personal charm cannot be ignored, and his name has always dominated most newspapers and social media. People's attitude towards him is dramatic and bilateral. His description words are either very positive or very negative, which are perfect materials for Internet collection and emotional analysis.

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

本文特别适合以下人群:

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

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

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

Instagram 自动点赞

采集的数据字段包括:

用户名

发布时间

发布内容

图片链接

Tweet链接

评论数,转发数,点赞数

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

Instagram 自动按赞

利用Python进行情感分析

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

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

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

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

Instagram 自动点赞

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

instagram人气

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

instagram 头像 下载

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

Instagram 自动点赞

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

Instagram 自动按赞

情感分析:消极还是积极

通过运行上面的Python脚本,我得到了5352个消极关键词以及3894个积极关键词,保存在上面相应的列表中,然后打开Tableau,建立了一个气泡图,如下所示。

Instagram 自动赞

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

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

总结:

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

(https://gist.github.com/octoparse/fd9e0006794754edfbdaea86de5b1a51)

参考链接:

https://medium.com/datamonsters/text-preprocessing-in-python-steps-tools-and-examples-bf025f872908

https://www.cs.uic.edu/~liub/FBS/sentiment-analysis.html

https://github.com/jeffreybreen/twitter-sentiment-analysis-tutorial-201107/blob/master/data/opinion-lexicon-English/positive-words.txt

https://github.com/jeffreybreen/twitter-sentiment-analysis-tutorial-201107/blob/master/data/opinion-lexicon-English/positive-words.txt

http://nohumanbeingisillegal.com/Home.html