Aplikuj předpracování na korpus
Balíček tm nabízí funkci tm_map(), která umožňuje aplikovat čisticí funkce na celý korpus najednou – celý proces tím výrazně zjednodušuje.
tm_map() přijímá dva argumenty: korpus a čisticí funkci. Funkce removeNumbers() pochází přímo z balíčku tm.
corpus <- tm_map(corpus, removeNumbers)
Kvůli kompatibilitě je potřeba funkce ze základního R a z balíčku qdap obalit pomocí content_transformer().
corpus <- tm_map(corpus, content_transformer(replace_abbreviation))
Pokud stejné funkce aplikuješ na více korpusů, ušetříš si čas (i řádky kódu) tím, že si napíšeš vlastní funkci – například takovou, jakou vidíš v editoru. Funkce clean_corpus() přijímá jeden argument, corpus, postupně na něj aplikuje sérii čisticích funkcí a vrátí upravený korpus.
Na pořadí čisticích kroků záleží. Pokud například nejdřív použiješ removeNumbers() a pak replace_number(), druhá funkce už nebude mít co upravovat! Výsledky vždy pečlivě zkontroluj!
Toto cvičení je součástí kurzu
Dolování textu metodou Bag-of-Words v R
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)
}