コーパスに前処理ステップを適用する
tm パッケージには、コーパス全体にクリーニング関数を適用できる tm_map() 関数があり、クリーニング作業を簡単にしてくれます。
tm_map() は引数を2つ取ります。コーパスとクリーニング関数です。ここで removeNumbers() は tm パッケージの関数です。
corpus <- tm_map(corpus, removeNumbers)
互換性のため、base R や qdap の関数は content_transformer() でラップする必要があります。
corpus <- tm_map(corpus, content_transformer(replace_abbreviation))
同じ関数を複数のコーパスに適用することもあるので、エディタに表示されているようなカスタム関数を使うと、時間(とコード行数)を節約できます。clean_corpus() は引数として corpus を1つ取り、一連のクリーニング関数を順番に適用して更新後のコーパスを返します。
クリーニング手順の順番は重要です。たとえば、先に removeNumbers() を実行してから replace_number() を実行すると、2つ目の関数は変更対象を見つけられません。結果は必ずチェック、再チェック、再々チェックしましょう!
この演習はコースの一部です
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)
}