Big Data Analytics - Raccolta dati

La raccolta dei dati gioca il ruolo più importante nel ciclo dei Big Data. Internet fornisce fonti di dati quasi illimitate per una varietà di argomenti. L'importanza di quest'area dipende dal tipo di attività, ma le industrie tradizionali possono acquisire una diversa fonte di dati esterni e combinarli con i loro dati transazionali.

Ad esempio, supponiamo di voler costruire un sistema che consiglia i ristoranti. Il primo passo sarebbe raccogliere dati, in questo caso, recensioni di ristoranti da diversi siti web e archiviarli in un database. Poiché siamo interessati al testo grezzo e lo useremmo per l'analisi, non è così rilevante dove verranno archiviati i dati per lo sviluppo del modello. Questo può sembrare contraddittorio con le principali tecnologie dei big data, ma per implementare un'applicazione big data, dobbiamo semplicemente farla funzionare in tempo reale.

Mini progetto Twitter

Una volta definito il problema, la fase successiva consiste nel raccogliere i dati. La seguente idea di miniprogetto è lavorare sulla raccolta di dati dal Web e strutturarli per essere utilizzati in un modello di apprendimento automatico. Raccoglieremo alcuni tweet dall'API rest di Twitter utilizzando il linguaggio di programmazione R.

Prima di tutto crea un account Twitter, quindi segui le istruzioni nel file twitteRvignetta del pacchetto per creare un account sviluppatore Twitter. Questo è un riepilogo di queste istruzioni:

  • Vai a https://twitter.com/apps/new e accedi.

  • Dopo aver inserito le informazioni di base, vai alla scheda "Impostazioni" e seleziona "Leggi, scrivi e accedi ai messaggi diretti".

  • Assicurati di fare clic sul pulsante Salva dopo averlo fatto

  • Nella scheda "Dettagli", prendi nota della tua chiave utente e del tuo segreto utente

  • Nella tua sessione R, utilizzerai la chiave API e i valori del segreto API

  • Infine esegui il seguente script. Questo installerà iltwitteR pacchetto dal suo repository su GitHub.

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

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

Ci interessa ottenere dati in cui è inclusa la stringa "big mac" e scoprire quali argomenti risaltano al riguardo. Per fare ciò, il primo passo è raccogliere i dati da Twitter. Di seguito è riportato il nostro script R per raccogliere i dati richiesti da Twitter. Questo codice è disponibile anche nel file 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