LoslegenKostenlos loslegen

Vorverarbeitungsschritte auf einen Korpus anwenden

Das Paket tm stellt mit tm_map() eine Funktion bereit, um Reinigungsfunktionen auf einen gesamten Korpus anzuwenden – damit werden die Schritte deutlich einfacher.

tm_map() erwartet zwei Argumente: einen Korpus und eine Reinigungsfunktion. Hier stammt removeNumbers() aus dem Paket tm.

corpus <- tm_map(corpus, removeNumbers)

Zur Kompatibilität müssen Basis-R- und qdap-Funktionen in content_transformer() gewrappt werden.

corpus <- tm_map(corpus, content_transformer(replace_abbreviation))

Vielleicht wendest du dieselben Funktionen auf mehrere Korpora an; eine eigene Funktion wie im Editor gezeigt spart dir Zeit (und Codezeilen). clean_corpus() nimmt ein Argument, corpus, wendet nacheinander mehrere Reinigungsfunktionen darauf an und gibt den aktualisierten Korpus zurück.

Die Reihenfolge der Reinigungsschritte ist entscheidend. Wenn du zum Beispiel zuerst removeNumbers() und dann replace_number() aufrufst, findet die zweite Funktion nichts mehr zum Ersetzen! Prüfe deine Ergebnisse gründlich – und gern mehrmals!

Diese Übung ist Teil des Kurses

Text Mining mit Bag-of-Words in R

Kurs anzeigen

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Alter the function code to match the instructions
clean_corpus <- function(corpus) {
  # Remove punctuation
  corpus <- tm_map(corpus, ___)
  # Transform to lower case
  corpus <- tm_map(corpus, ___)
  # Add more stopwords
  corpus <- tm_map(corpus, removeWords, words = c(stopwords("en"), "coffee", ___))
  # Strip whitespace
  ___
  return(corpus)
}
Code bearbeiten und ausführen