Appliquer des étapes de prétraitement à un corpus
Le package tm propose la fonction tm_map() pour appliquer des fonctions de nettoyage à l’ensemble d’un corpus, ce qui simplifie les étapes de nettoyage.
tm_map() prend deux arguments : un corpus et une fonction de nettoyage. Ici, removeNumbers() provient du package tm.
corpus <- tm_map(corpus, removeNumbers)
Pour des raisons de compatibilité, les fonctions de base R et de qdap doivent être encapsulées dans content_transformer().
corpus <- tm_map(corpus, content_transformer(replace_abbreviation))
Vous pouvez être amené à appliquer les mêmes fonctions à plusieurs corpus ; utiliser une fonction personnalisée comme celle affichée dans l’éditeur vous fera gagner du temps (et des lignes de code). clean_corpus() prend un argument, corpus, applique une série de fonctions de nettoyage dans l’ordre, puis renvoie le corpus mis à jour.
L’ordre des étapes de nettoyage a son importance. Par exemple, si vous exécutez removeNumbers() puis replace_number(), la deuxième fonction ne trouvera plus rien à modifier ! Vérifiez, revérifiez et re-revérifiez vos résultats !
Cet exercice fait partie du cours
Text mining avec sac de mots en R
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)
}