使用 Rodeo 分析总统候选人的推特内容

简介:

介绍

选举季已经到来,对于每个一直在关注这些事情的人来说,这绝对是一场最疯狂、涉及最多社交媒体、充满戏剧性的选举。距离最后的选举已经不到3个月,各个州的投票结果也逐渐公示出来,我们认为是时候,通过分析候选人的演讲内容,以及他们与大众的互动情况,来了解这些候选人的竞选方式了。

想要分析社交媒体上的大众对这场选举的看法,那么我们从分析候选人自己的推特内容着手,这似乎是比较合理的。在查看、总结这些推特的特点后,我们的目标变为搞清楚候选人用来吸引民众注意力的词语是哪些。

准备工作

首先需要说明的最重要的一点是,我们使用 Rodeo 作为我们的 IDE,随后调用推特的 API 来获取所有推文,最后将使用 Tableau 来完成可视化部分。也就是说,我们的第一件事情是去https://www.yhat.com/products/rodeo 下载 Rodeo。接下来下一步是获取调用推特 API 的权限,我们只需要在 https://dev.twitter.com/ 上注册一个 app,随后我们就获得了调用 API 的令牌秘钥(token keys)。最后,我们需要去 https://www.tableau.com/Tableau-Download 下载 Tableau(对学生账号免费)。

导入工具

使用 Rodeo 分析总统候选人的推特内容

注:你也可以使用Rodeo中的菜单操作选择 improved package,来查找、安装需要的包。

成为推特开发者

使用 Rodeo 分析总统候选人的推特内容

数据挖掘

经过以上步骤后,我们的第一步是对给定用户的推特内容进行挖掘,并以一种数据友好的方式展现出来。上面调用API的语句是会返回 JSON 格式的推特数据,为了将数据变换为我们能够使用的数据格式,我们使用一个 for 循环来获取赞、转发、日期、推文内容,并用不同的列表来分别存储它们。

使用 Rodeo 分析总统候选人的推特内容

在得到所有列表后,我们就可以将每个列表合并成一个干净、简洁的数据框了。

使用 Rodeo 分析总统候选人的推特内容

使用 Rodeo 分析总统候选人的推特内容

使用这些列,我们能搞清楚,在选举的进程中,候选人措辞方面所发生的变化,然而考虑到我们的目标是分析推文中的关键词,因此我们对候选人推文中出现的词语总词频更感兴趣,我们接下来将主要关注“text”列表。

数据清洗

因为“text”列表中不仅包括了大小写字母,还包括了一些特殊的的字符,比如“@”、“:”等。毫无疑问地,这些字符会在进一步的分析引发错误,所以我们需要对数据进行清洗。

我们的清洗目标分为 2 步。首先,先将列表转化为一个字符串。然后,去掉一些不是特殊字符但却属于格式化的单词,比如 “WWW” 和 “http.”。

使用 Rodeo 分析总统候选人的推特内容

数据整理

到目前为止,所有推文中的句子都被分裂成了单词,我们现在可以开始计算词频了。我们的首要任务是初始化一个空字典,并且往字典里添加新单词及其词频。

使用 Rodeo 分析总统候选人的推特内容

该词典包含了所有单词及其对应的词频,但里面仍然存在一些单词,它们对我们的分析没有什么太大意义。为了解决这个问题,我们首先考虑词频超过给定数量(在本例中是50)的单词,然后在这些单词中,删除我们认为是停止词的单词。

使用 Rodeo 分析总统候选人的推特内容

现在,让我们看看 filtertrump 词典长什么样子:

使用 Rodeo 分析总统候选人的推特内容

数据可视化

完成了挖掘和清洗的工作后,我们就可以进行可视化了。我们的第一张图是一张条形图,它画出了川普推文中前20个最常使用单词的分布。通过查看前20个最常用单词的分布,这进一步阻止了任何特殊字符及无意义的单词显示在图表上。

使用 Rodeo 分析总统候选人的推特内容

利用相同的方法,只需要将前面 for 循环里的 screen_name 赋值为 “HillaryClinton”,我们就能找到希拉里·克林顿推文中前 20 个最常用单词。

使用 Rodeo 分析总统候选人的推特内容

使用 Rodeo 分析总统候选人的推特内容


结论

现在,第一张图已经绘制完成。我们可以开始分析数据,并找出候选人之间的语言倾向和模式了。

川普的最常用词语包括 “Hillary Clinton”,“Trump”。克林顿的最常用词语是 “Trump”,其次则是如 “Americans”,“American”,“women”,“people” 等群体性词语。

另外,我们能看到希拉里的最常用词语和川普有关,并且其词频几乎三倍于其他单词。与此同时,川普的最常用单词都指向了克林顿,但其词频并没有出现特别过分的倾斜。同样地,我们可以看到这些候选人间的不同之处:川普更多地喜欢使用 “me” 和 “ImWithYou” 这样的词来谈论自己;而克林顿显得更包容一些,经常使用 “us” 和 “people” 这样的词。

使用 Tableau 画出推特标签词云

此外,我们可以将上文中的字典存储起来,便于下一步使用 Tableau 来实现可视化。使用下面的代码,我们能将字典存储起来:

使用 Rodeo 分析总统候选人的推特内容

一旦你运行了上面的代码,那么你就可以在 Tableau 上打开这个 csv 文件,然后按下 F1 来调整颜色,按下 F2 来调整词云大小,从而创建出下面的词云:

使用 Rodeo 分析总统候选人的推特内容

使用 Rodeo 分析总统候选人的推特内容

祝贺你!到了这一步,你已经完成了:

  1. 调用 API 来挖掘推文数据;

  2. 清洗文本成可用的格式;

  3. 对两种不同格式的数据进行可视化;

  4. 分析候选人的语言特征。

更多课程和文章尽在微信号:「datartisan数据工匠」





====================================分割线================================


本文作者:思颖

本文转自雷锋网禁止二次转载,原文链接

目录
相关文章
|
机器学习/深度学习 人工智能 算法
研究遭质疑,Jeff Dean回应:我们本就不是为得到新SOTA,成本计算也搞错了
研究遭质疑,Jeff Dean回应:我们本就不是为得到新SOTA,成本计算也搞错了
|
自动驾驶
苹果华人工程师被捕后续,按“商业间谍”指控,本人不认罪
美国西部时间7月17日上午,前苹果无人车工程师张晓浪在加州圣何塞联邦法庭接受庭审。但面对“为小鹏汽车盗窃无人驾驶汽车商业机密”的指控,张晓浪当庭否认,并表示不会认罪。
1394 0
USNews大学排名遭美国计算机研究学会怒怼,指排名荒谬要求撤回
】USNews世界大学排名最新发布的2018年榜单,计算机科学学科排名清华大学力压MIT、斯坦福位居第一。很多媒体欢呼,但计算机科学专业人士则表示看看就好,不必当真。果然,就在今天,计算机研究学会(CRA)发布声明,要求USNews撤回这一“荒谬的”排名。
1833 0
下一篇
无影云桌面