將前處理步驟套用到語料庫
tm 套件提供 tm_map() 函式,可將清理函式套用到整個語料庫,讓清理步驟更容易。
tm_map() 接受兩個引數:語料庫與清理函式。這裡的 removeNumbers() 來自 tm 套件。
corpus <- tm_map(corpus, removeNumbers)
為了相容性,base R 與 qdap 的函式需要包在 content_transformer() 裡。
corpus <- tm_map(corpus, content_transformer(replace_abbreviation))
你可能會在多個語料庫上重複套用相同的函式;使用像編輯器裡顯示的自訂函式可以幫你省下時間(也省下程式碼行數)。clean_corpus() 接受一個引數 corpus,依序對它套用一連串清理函式,然後回傳更新後的語料庫。
清理步驟的順序會影響結果。舉例來說,如果你先 removeNumbers(),再 replace_number(),第二個函式就找不到可以更改的內容!請務必反覆檢查你的結果!
本練習屬於課程
R 的 Bag-of-Words 文本探勘
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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)
}