Aplicar etapas de pré-processamento a um corpus
O pacote tm oferece a função tm_map() para aplicar funções de limpeza a um corpus inteiro, facilitando as etapas de limpeza.
tm_map() recebe dois argumentos: um corpus e uma função de limpeza. Aqui, removeNumbers() é do pacote tm.
corpus <- tm_map(corpus, removeNumbers)
Por compatibilidade, funções do base R e do qdap precisam ser encapsuladas em content_transformer().
corpus <- tm_map(corpus, content_transformer(replace_abbreviation))
Você pode aplicar as mesmas funções a vários corpora; usar uma função personalizada como a exibida no editor vai economizar seu tempo (e linhas de código). clean_corpus() recebe um argumento, corpus, aplica uma série de funções de limpeza em ordem e retorna o corpus atualizado.
A ordem das etapas de limpeza faz diferença. Por exemplo, se você usar removeNumbers() e depois replace_number(), a segunda função não encontrará nada para alterar! Confira, confira e confira novamente seus resultados!
Este exercício faz parte do curso
Mineração de Texto com Bag-of-Words em R
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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)
}