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