Аналитика больших данных - сбор данных
Сбор данных играет наиболее важную роль в цикле больших данных. Интернет предоставляет практически неограниченные источники данных по самым разным темам. Важность этой области зависит от типа бизнеса, но традиционные отрасли могут получать различные источники внешних данных и комбинировать их со своими транзакционными данными.
Например, предположим, что мы хотим создать систему, которая рекомендует рестораны. Первым шагом будет сбор данных, в данном случае обзоров ресторанов с разных веб-сайтов, и их сохранение в базе данных. Поскольку нас интересует необработанный текст и мы будем использовать его для аналитики, не так важно, где будут храниться данные для разработки модели. Это может показаться противоречащим основным технологиям больших данных, но для реализации приложения для работы с большими данными нам просто нужно заставить его работать в реальном времени.
Мини-проект Twitter
После определения проблемы следующим этапом является сбор данных. Следующая идея мини-проекта состоит в том, чтобы работать над сбором данных из Интернета и их структурированием для использования в модели машинного обучения. Мы будем собирать твиты из twitter rest API, используя язык программирования R.
Прежде всего создайте учетную запись Twitter, а затем следуйте инструкциям в twitteRпакетная виньетка для создания учетной записи разработчика Twitter. Это краткое изложение этих инструкций -
Перейти к https://twitter.com/apps/new и авторизуйтесь.
После заполнения основной информации перейдите на вкладку «Настройки» и выберите «Чтение, запись и доступ к прямым сообщениям».
После этого обязательно нажмите кнопку сохранения.
На вкладке «Подробности» запишите свой ключ клиента и секрет клиента.
В сеансе R вы будете использовать ключ API и секретные значения API.
Наконец, запустите следующий сценарий. Это установитtwitteR пакет из своего репозитория на github.
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», и в выяснении, какие темы выделяются по этому поводу. Для этого первым делом нужно собрать данные из твиттера. Ниже представлен наш 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