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
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)
}