数据收集在大数据周期中扮演着最重要的角色.互联网为各种主题提供几乎无限的数据来源.这个领域的重要性取决于业务类型,但传统行业可以获得多样化的外部数据来源,并将这些数据与交易数据相结合.
例如,让我们假设我们希望建立一个推荐餐馆的系统.第一步是收集数据,在这种情况下,收集来自不同网站的餐馆的评论并将其存储在数据库中.由于我们对原始文本感兴趣,并将其用于分析,因此在存储模型开发数据的地方并不相关.这听起来可能与大数据主要技术相矛盾,但为了实现大数据应用,我们只需要让它实时工作.
Twitter Mini Project
定义问题后,以下阶段是收集数据.以下小型项目的想法是从Web收集数据并构建它以用于机器学习模型.我们将使用R编程语言从twitter rest API收集一些推文.
首先创建一个Twitter帐户,然后按照 twitteR 中的说明进行操作打包插图以创建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 environmentlibrary(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 APIsetup_twitter_oauth(consumer_key, consumer_secret, access_token, access_token_secret)# Get tweets related to big mactweets <- searchTwitter(’big mac’, n = 200, lang = ’en’)df <- twListToDF(tweets)# Take a look at the datahead(df)# Check which device is most usedsources <- sapply(tweets, function(x) x$getStatusSource())sources <- gsub("", "", 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