zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

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

机器统计方法学习数据 基于 读取 科学
2023-09-11 14:17:45 时间

本节书摘来异步社区《机器学习与数据科学(基于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) 

机器学习数学基础五:数据科学的一些基本分布 每一次尝试都是独立的,因为前一次投掷的结果不能决定或影响当前投掷的结果。只有两个可能的结果并且重复n次的实验叫做项式。二项分布的参数是n和p,其中n是试验的总数,p是每次试验成功的概率。
边玩边学!交互式可视化图解!快收藏这18个机器学习和数据科学网站!⛵ 机器学习算法理论比较枯燥乏味,但有许多有趣且有用的网站,您可以像游戏一样交互式操作,并同时学习机器学习概念、模型和应用知识。以下是 ShowMeAI 为大家整理的18个交互式机器学习网站,学起来!
五个给机器学习和数据科学入门者的学习建议 我从没写过代码。 当人们发现我的作品,他们通常会私信并提问。我不一定知道所有的答案,但我会尽量回复。人们最常问的问题是:「该从哪开始?」,其次是:「我需要多少数学基础?」
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。