《机器学习与数据科学(基于R的统计学习方法)》——2.12 读取Twitter数据

简介:

本节书摘来异步社区《机器学习与数据科学(基于R的统计学习方法)》一书中的第2章,第2.12节,作者:【美】Daniel D. Gutierrez(古铁雷斯),更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.12 读取Twitter数据

鉴于数据科学正在快速演变,我们可以看到社交媒体中的非结构化数据正在为传统的数据源增添异彩。毋庸置疑的是,最流行的社交媒体数据源是Twitter。“非结构化”这一术语用于描述社交媒体数据,因为它不像典型的企业事务数据那样通常呈现表格形式。非结构化数据是自由格式,可能是纯文本,在推文中是140个字符、缩略语、控件、标签和特殊符号。就像其他所有数据源一样,使用这类数据的第一步是将它读进R环境。在本节中,我们将分步演示使用R读取推文的过程。

遗憾的是,使用Twitter作为数据源有点费劲,因为从2013年3月开始,安全要求成为了必备条件(在此之前,读取数据容易得多)。你必须拥有一个Twitter账户,并在你的R代码中提供对这个账户的身份验证。

首先,我们要安装twitteR包,来帮助读取推文。这是基于R的Twitter客户端,这个包提供了一个到Twittwe网页API的接口,也包括了ROAuth库(开放式身份验证),用Twitter对我们进行身份验证必须用到该库。

> install.packages("twitteR")  # Contains ROAuth
> library(twitteR)
> library(ROAuth)```
下一步,我们将定义几个变量来存放几个特殊的URL,用于和Twitter进行通信:requestURL、accessURL和authURL。而且,如果你是一个Windows用户,需要从下面提供的URL中下载特殊的CA(社区驱动的证书颁发机构)证书文件。

requestURL <- "https://api.twitter.com/oauth/request_token"
accessURL <- "https://api.twitter.com/oauth/access_token"
authURL <- "https://api.twitter.com/oauth/authorize"
download.file(url="http://curl.haxx.se/ca/cacert.pem", destfile= "cacert.pem")`
接下来,你要访问http://dev.twitter.com/apps/new ,用你的Twitter账户登录,创建一个Twitter应用。然后在页面上输入详细信息,才能通过Test Auth按钮得到用户关键字和用户秘钥。你需要将秘钥复制粘贴到你的R代码中。

> consumerKey <- "tu4dkb9fHLgLrNptaI2CA"
> consumerSecret <- "UzlhoMFyF9IZ6bxxG89DLdPB74VUzur3mBWcr6LcVE"
> Cred <- OAuthFactory$new(consumerKey=consumerKey,
             consumerSecret=consumerSecret,
             requestURL=requestURL,
             accessURL=accessURL, 
             authURL=authURL)```
现在输入下面这行代码,要求Twitter提供一个数值型的PIN号码给你。你将看到R控制台的消息,指导你将控制台中展示的特殊URL复制粘贴到你的浏览器中(注意:如果你无法高亮显示控制台中的URL并将它复制到剪贴板中,需要升级RStudio了)。一旦你做完这个,Twitter API会展现一个网页,包含7位的PIN。你需要把这些数字打印到一直等待输入的控制台中。

Cred$handshake(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl") )`

这时,可以使用save()函数将你的Twitter身份验证保存下来,便于以后使用。最后,你需要用twitteR包中的registerTwitterOAuth()函数注册你的Twitter身份验证。

> save(Cred, file="twitter authentication.Rdata")
> registerTwitterOAuth(Cred)
[1] TRUE```
如果想在以后读取推文,只需要使用下面这段代码:

load("twitter authentication.Rdata")
registerTwitterOAuth(Cred)`

最后,我们已经做好了读取推文的准备了。在下面这段代码中,我们使用了searchTwitter()函数,并给它传递了一个搜索关键字。在这个例子中,标签#MLB代表了美国职业棒球大联盟。Twitter API限制了你可以读取的推文最多是499条。推文以列表的形式返回,所以我们使用twListToDF()函数将它们转化成数据框的形式,便于后续分析。最后,我们可以将推文以CSV的格式写出,便于保存。

> MLB.list <- searchTwitter('#MLB', n=499, cainfo="cacert. pem") 
> MLB.df = twListToDF(MLB.list) 
相关文章
|
1月前
|
数据采集 机器学习/深度学习 存储
【机器学习】数据清洗——基于Numpy库的方法删除重复点
【机器学习】数据清洗——基于Numpy库的方法删除重复点
71 1
|
1月前
|
数据采集 机器学习/深度学习 Python
【机器学习】数据清洗——基于Pandas库的方法删除重复点
【机器学习】数据清洗——基于Pandas库的方法删除重复点
45 1
|
1月前
|
机器学习/深度学习 数据采集 存储
【机器学习】机器学习流程之收集数据
【机器学习】机器学习流程之收集数据
46 1
|
1月前
|
机器学习/深度学习 数据采集 传感器
机器学习开发流程和用到的数据介绍
机器学习开发流程和用到的数据介绍
|
1月前
|
机器学习/深度学习 算法 数据可视化
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
26 1
|
1月前
|
机器学习/深度学习 数据采集 存储
使用机器学习算法进行文本分类的方法与实践
本文将介绍使用机器学习算法进行文本分类的方法与实践。通过分析文本特征、选择合适的机器学习算法和构建有效的训练模型,可以实现准确和高效的文本分类任务。我们还将探讨如何处理文本数据预处理、特征提取和模型评估等方面的关键问题,以帮助读者更好地应用机器学习技术解决文本分类挑战。
|
2月前
|
机器学习/深度学习 消息中间件 人工智能
机器学习PAI报错问题之读取kafka数据报错如何解决
人工智能平台PAI是是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务;本合集将收录PAI常见的报错信息和解决策略,帮助用户迅速定位问题并采取相应措施,确保机器学习项目的顺利推进。
|
2月前
|
机器学习/深度学习 算法 Java
现代数据科学中的机器学习技术发展与应用
本文探讨了现代数据科学领域中机器学习技术的发展和应用。我们介绍了机器学习的基本概念和原理,并探讨了它在前端、后端、Java、Python、C以及数据库等多种技术领域的具体应用。通过深入剖析不同领域的案例研究,我们展示了机器学习在解决实际问题和推动技术创新方面的巨大潜力。最后,我们对未来机器学习技术的发展趋势进行了展望。
|
2月前
|
传感器
GEE——使用cart机器学习方法对Landsat影像条带修复以NDVI和NDWI为例(全代码)
GEE——使用cart机器学习方法对Landsat影像条带修复以NDVI和NDWI为例(全代码)
28 0
|
1月前
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。

热门文章

最新文章