開始使用免費開始

將前處理步驟套用到語料庫

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)
}
編輯並執行程式碼