大数据分析 – 数据收集

大数据分析 – 数据收集


数据收集在大数据周期中扮演着最重要的角色。互联网为各种主题提供了几乎无限的数据源。该领域的重要性取决于业务类型,但传统行业可以获取多种外部数据来源,并将其与其交易数据相结合。

例如,假设我们想构建一个推荐餐厅的系统。第一步是收集数据,在这种情况下,是来自不同网站的餐厅评论,并将它们存储在数据库中。由于我们对原始文本感兴趣,并将其用于分析,因此用于开发模型的数据的存储位置并不重要。这听起来可能与大数据的主要技术矛盾,但是为了实现一个大数据应用,我们只需要让它实时工作。

推特迷你项目

一旦定义了问题,接下来的阶段就是收集数据。以下小项目的想法是致力于从网络收集数据并将其结构化以用于机器学习模型。我们将使用 R 编程语言从 twitter rest API 收集一些推文。

首先创建一个twitter账号,然后按照twitteRvignette中的说明创建一个twitter开发者账号。这是这些说明的摘要 –

  • 转到https://twitter.com/apps/new并登录。

  • 填写基本信息后,进入“设置”选项卡,选择“读取、写入和访问直接消息”。

  • 确保在执行此操作后单击保存按钮

  • 在“详细信息”选项卡中,记下您的消费者密钥和消费者秘密

  • 在您的 R 会话中,您将使用 API 密钥和 API 秘密值

  • 最后运行以下脚本。将从其在 github 上的存储库安装twitteR包。

install.packages(c("devtools", "rjson", "bit64", "httr"))  

# Make sure to restart your R session at this point 
library(devtools) 
install_github("geoffjentry/twitteR") 

我们有兴趣获取包含字符串“big mac”的数据,并找出与此相关的突出主题。为此,第一步是从 Twitter 收集数据。下面是我们从 Twitter 收集所需数据的 R 脚本。此代码也可在 bda/part1/collect_data/collect_data_twitter.R 文件中找到。

rm(list = ls(all = TRUE)); gc() # Clears the global environment
library(twitteR)
Sys.setlocale(category = "LC_ALL", locale = "C")

### Replace the xxx’s with the values you got from the previous instructions

# consumer_key = "xxxxxxxxxxxxxxxxxxxx"
# consumer_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# access_token = "xxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# access_token_secret= "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# Connect to twitter rest API
setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_token_secret)

# Get tweets related to big mac
tweets <- searchTwitter(’big mac’, n = 200, lang = ’en’)
df <- twListToDF(tweets)

# Take a look at the data
head(df)

# Check which device is most used
sources <- sapply(tweets, function(x) x$getStatusSource())
sources <- gsub("</a>", "", sources)
sources <- strsplit(sources, ">")
sources <- sapply(sources, function(x) ifelse(length(x) > 1, x[2], x[1]))
source_table = table(sources)
source_table = source_table[source_table > 1]
freq = source_table[order(source_table, decreasing = T)]
as.data.frame(freq)

#                       Frequency
# Twitter for iPhone       71
# Twitter for Android      29
# Twitter Web Client       25
# recognia                 20

觉得文章有用?

点个广告表达一下你的爱意吧 !😁