Aan de slagGa gratis aan de slag

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

Cursus bekijken

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)
}
Code bewerken en uitvoeren