Pas preprocessing-stappen toe op een corpus
Het tm-pakket bevat de functie tm_map() om schoonmaakfuncties op een heel corpus toe te passen, waardoor de schoonmaakstappen makkelijker worden.
tm_map() neemt twee argumenten: een corpus en een schoonmaakfunctie. Hier komt removeNumbers() uit het tm-pakket.
corpus <- tm_map(corpus, removeNumbers)
Voor compatibiliteit moeten functies uit base R en qdap worden verpakt in content_transformer().
corpus <- tm_map(corpus, content_transformer(replace_abbreviation))
Je kunt dezelfde functies op meerdere corpora toepassen; een aangepaste functie zoals in de editor bespaart je tijd (en regels code). clean_corpus() neemt één argument, corpus, past er achtereenvolgens een reeks schoonmaakfuncties op toe en geeft vervolgens het bijgewerkte corpus terug.
De volgorde van de schoonmaakstappen maakt uit. Als je bijvoorbeeld eerst removeNumbers() uitvoert en daarna replace_number(), dan vindt de tweede functie niets meer om te veranderen! Controleer je resultaten steeds opnieuw!
Deze oefening maakt deel uit van de cursus
Text mining met bag-of-words in R
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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)
}