Big Data Analytics - Daten bereinigen

Sobald die Daten erfasst sind, verfügen wir normalerweise über verschiedene Datenquellen mit unterschiedlichen Merkmalen. Der unmittelbarste Schritt wäre, diese Datenquellen homogen zu machen und unser Datenprodukt weiterzuentwickeln. Dies hängt jedoch von der Art der Daten ab. Wir sollten uns fragen, ob es praktisch ist, die Daten zu homogenisieren.

Möglicherweise sind die Datenquellen völlig unterschiedlich, und der Informationsverlust ist groß, wenn die Quellen homogenisiert würden. In diesem Fall können wir uns Alternativen vorstellen. Kann mir eine Datenquelle helfen, ein Regressionsmodell und die andere ein Klassifizierungsmodell zu erstellen? Ist es möglich, mit der Heterogenität zu unserem Vorteil zu arbeiten, anstatt nur Informationen zu verlieren? Diese Entscheidungen machen Analytics interessant und herausfordernd.

Bei Überprüfungen ist es möglich, für jede Datenquelle eine Sprache zu haben. Auch hier haben wir zwei Möglichkeiten -

  • Homogenization- Es geht darum, verschiedene Sprachen in die Sprache zu übersetzen, in der wir mehr Daten haben. Die Qualität der Übersetzungsdienste ist akzeptabel. Wenn wir jedoch große Datenmengen mit einer API übersetzen möchten, sind die Kosten erheblich. Für diese Aufgabe stehen Softwaretools zur Verfügung, die jedoch ebenfalls kostspielig wären.

  • Heterogenization- Wäre es möglich, für jede Sprache eine Lösung zu entwickeln? Da es einfach ist, die Sprache eines Korpus zu erkennen, könnten wir für jede Sprache einen Empfehlungsgeber entwickeln. Dies würde mehr Arbeit in Bezug auf die Abstimmung jedes Empfehlers auf die Anzahl der verfügbaren Sprachen erfordern, ist jedoch definitiv eine praktikable Option, wenn wir einige Sprachen zur Verfügung haben.

Twitter Mini-Projekt

Im vorliegenden Fall müssen wir zuerst die unstrukturierten Daten bereinigen und dann in eine Datenmatrix konvertieren, um darauf modellierende Themen anzuwenden. Wenn Sie Daten von Twitter abrufen, gibt es im Allgemeinen mehrere Zeichen, an deren Verwendung wir nicht interessiert sind, zumindest in der ersten Phase des Datenbereinigungsprozesses.

Zum Beispiel erhalten wir nach dem Abrufen der Tweets diese seltsamen Zeichen: "<ed> <U + 00A0> <U + 00BD> <ed> <U + 00B8> <U + 008B>". Dies sind wahrscheinlich Emoticons. Um die Daten zu bereinigen, entfernen wir sie einfach mit dem folgenden Skript. Dieser Code ist auch in der Datei bda / part1 / collect_data / cleanging_data.R verfügbar.

rm(list = ls(all = TRUE)); gc() # Clears the global environment
source('collect_data_twitter.R')
# Some tweets
head(df$text)

[1] "I’m not a big fan of turkey but baked Mac &
cheese <ed><U+00A0><U+00BD><ed><U+00B8><U+008B>"
[2] "@Jayoh30 Like no special sauce on a big mac. HOW"
### We are interested in the text - Let’s clean it!

# We first convert the encoding of the text from latin1 to ASCII
df$text <- sapply(df$text,function(row) iconv(row, "latin1", "ASCII", sub = ""))

# Create a function to clean tweets
clean.text <- function(tx) {
  tx <- gsub("htt.{1,20}", " ", tx, ignore.case = TRUE)
  tx = gsub("[^#[:^punct:]]|@|RT", " ", tx, perl = TRUE, ignore.case = TRUE)
  tx = gsub("[[:digit:]]", " ", tx, ignore.case = TRUE)
  tx = gsub(" {1,}", " ", tx, ignore.case = TRUE)
  tx = gsub("^\\s+|\\s+$", " ", tx, ignore.case = TRUE)
  return(tx)
}  

clean_tweets <- lapply(df$text, clean.text)

# Cleaned tweets
head(clean_tweets)
[1] " WeNeedFeminlsm MAC s new make up line features men woc and big girls "
[1] " TravelsPhoto What Happens To Your Body One Hour After A Big Mac "

Der letzte Schritt des Datenbereinigungs-Mini-Projekts besteht darin, Text zu bereinigen, den wir in eine Matrix konvertieren und auf den ein Algorithmus angewendet werden kann. Aus dem in derclean_tweets Vektor können wir es leicht in eine Tasche von Wörtern Matrix konvertieren und einen unbeaufsichtigten Lernalgorithmus anwenden.