Big Data Analytics - Gromadzenie danych
Gromadzenie danych odgrywa najważniejszą rolę w cyklu Big Data. Internet zapewnia prawie nieograniczone źródła danych na różne tematy. Znaczenie tego obszaru zależy od rodzaju prowadzonej działalności, ale tradycyjne branże mogą pozyskiwać różnorodne źródła danych zewnętrznych i łączyć je z danymi transakcyjnymi.
Na przykład załóżmy, że chcielibyśmy zbudować system polecający restauracje. Pierwszym krokiem byłoby zebranie danych, w tym przypadku recenzji restauracji z różnych stron internetowych i przechowywanie ich w bazie danych. Ponieważ interesuje nas surowy tekst i użyjemy go do analizy, nie jest tak istotne, gdzie byłyby przechowywane dane do opracowania modelu. Może się to wydawać sprzeczne z głównymi technologiami Big Data, ale aby wdrożyć aplikację Big Data, musimy po prostu sprawić, by działała w czasie rzeczywistym.
Mini projekt na Twitterze
Po zdefiniowaniu problemu kolejnym etapem jest zebranie danych. Następujący pomysł na miniprojekt polega na pracy nad zbieraniem danych z sieci i ustrukturyzowaniu ich do wykorzystania w modelu uczenia maszynowego. Zbierzemy kilka tweetów z API reszty twittera przy użyciu języka programowania R.
Przede wszystkim utwórz konto na Twitterze, a następnie postępuj zgodnie z instrukcjami w twitteRpakiet winiety, aby utworzyć konto programisty na Twitterze. To jest podsumowanie tych instrukcji -
Iść do https://twitter.com/apps/new i zaloguj się.
Po wypełnieniu podstawowych informacji przejdź do zakładki „Ustawienia” i wybierz „Czytaj, pisz i miej dostęp do bezpośrednich wiadomości”.
Po wykonaniu tej czynności kliknij przycisk Zapisz
Na karcie „Szczegóły” zanotuj swój klucz klienta i tajny klucz klienta
W sesji R będziesz używać klucza API i wartości tajnych interfejsu API
Na koniec uruchom następujący skrypt. Spowoduje to zainstalowanietwitteR pakiet z repozytorium na github.
install.packages(c("devtools", "rjson", "bit64", "httr"))
# Make sure to restart your R session at this point
library(devtools)
install_github("geoffjentry/twitteR")
Jesteśmy zainteresowani uzyskaniem danych, w których znajduje się ciąg „big mac”, i ustaleniem, które tematy się w tym wyróżniają. Aby to zrobić, pierwszym krokiem jest zebranie danych z Twittera. Poniżej znajduje się nasz skrypt R do zbierania wymaganych danych z Twittera. Ten kod jest również dostępny w pliku 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