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

AI 科技评论按 :本文作者Datartisan,载于其知乎专栏——Datartisan数据工匠。AI 科技评论转载已获得原作者授权。

介绍

选举季已经到来,对于每个一直在关注这些事情的人来说,这绝对是一场最疯狂、涉及最多社交媒体、充满戏剧性的选举。距离最后的选举已经不到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中的菜单操作选择 improved package,来查找、安装需要的包。

成为推特开发者

数据挖掘

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

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

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

数据清洗

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

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

数据整理

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

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

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

数据可视化

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

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

结论

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

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

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

使用 Tableau 画出推特标签词云

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

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

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

  1. 调用 API 来挖掘推文数据;
  2. 清洗文本成可用的格式;
  3. 对两种不同格式的数据进行可视化;
  4. 分析候选人的语言特征。

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-08-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CDA数据分析师

入门 | 一小时向非程序员介绍 R 编程语言

来源 | 伯乐在线 我妹妹正在念大四,主修社会学。她刚刚签了下个学期一份不错的分析员工作,对方告诉她工作中要用到 R 编程语言。她让我在寒假时教教她,我欣然同意...

2256
来自专栏Crossin的编程教室

【每周一坑】暴力计算圆周率 +【解答】生成/识别二维码

我们之前有出过一些和概率相关的问题。我讲过,用计算机程序来解编程题有个很有意思的思路,就是暴力解法。就是利用电脑的计算能力,去模拟大量的情况(甚至所有情况),得...

1152
来自专栏量子位

从零开始学习神经网络 | 视频教程

允中 发自 凹非寺 量子位 出品 | 公众号 QbitAI 爱好人工智能的你,一定想理解和创建神经网络吧,对不对? 好吧,我默认你是这么想的。呐,我们发现了一个...

3087
来自专栏iOS技术

iOS 地图点标记聚合方案(基于四叉树)

前言 在地图相关应用的开发中,我们常常遇到一个问题,当地图标注点过多的时候,会造成用户体验差、应用卡顿的情况。所以,我们需要一套高效的算法来解决标注的聚合、分散...

2979
来自专栏生信宝典

高颜值可定制在线绘图工具-第三版

生信宝典推出之前推出了一系列画图相关文章,包括多种形式的热图、线图、柱状图、箱线图、泡泡图、韦恩图、进化树、火山图、生存分析、共表达分析聚类如等,都是基于R代码...

3685
来自专栏hadoop学习笔记

大规模特征构建实践总结

一般大公司的机器学习团队,才会尝试构建大规模机器学习模型,如果去看百度、头条、阿里等分享,都有提到过这类模型。当然,大家现在都在说深度学习,但在推荐、搜索的场景...

1104
来自专栏Albert陈凯

OLAP(On-Line Analysis Processing)在线分析处理引擎

OLAP(On-Line Analysis Processing)在线分析处理是一种共享多维信息的快速分析技术;OLAP利用多维数据库技术使用户从不同角度观察数...

3407
来自专栏计算机视觉与深度学习基础

DBLP数据集简介及简单用法

前一段时间利用大名鼎鼎的DBLP数据集做关于论文合作关系推荐的实验,感觉确实是一个非常不错的数据集,可挖掘的东西很多很多,在此对DBLP及其用法做一个简单介绍。...

5885
来自专栏IT派

常用python组件包

$ pip list Package Version ---------------------- ------------- a...

1452
来自专栏深度学习自然语言处理

详解中文维基百科数据处理流程及脚本代码

最近在做词向量相关工作,词向量的训练数据采用中文维基百科数据,训练之前,要对维基百科数据进行处理,这篇文章记录了一些处理过程及相关的脚本。

1772

扫码关注云+社区