ストップワードを極める
頻出する一方で、ほとんど情報を持たない語があります。これらは「ストップワード」と呼ばれ、分析から除外したくなる場合があります。一般的な英語のストップワードには、"I"、"she'll"、"the" などがあります。tm パッケージには、よく使われる英語のストップワードが 174 語用意されています(この演習で出力します!)。
実際に分析するときは、このリストに語を追加する必要が出てくることが多いです。コーヒーに関するツイートの例では、すべてのツイートに "coffee" が含まれているので、一般的なストップワードに加えてこの語も取り除くことが重要です。"coffee" を残しても洞察は増えず、頻度分析で過度に強調されてしまいます。
c() 関数を使うと、ストップワードリストに新しい語を追加できます。たとえば、次のようにすると、デフォルトの英語ストップワードに "word1" と "word2" を追加できます。
all_stops <- c("word1", "word2", stopwords("en"))
意味のあるストップワードのリストが用意できたら、テキストに対して removeWords() 関数を使います。removeWords() は 2 つの引数を取ります。適用対象の text オブジェクトと、取り除く語のリストです。
この演習はコースの一部です
Rで学ぶBag-of-Wordsによるテキストマイニング
演習の手順
stopwords("en")を呼び出して標準的なストップワードを確認します。textから "en" のストップワードを取り除きます。- 標準のストップワードに "coffee" と "bean" を追加し、
new_stopsに代入します。 - カスタマイズしたストップワード
new_stopsをtextから取り除きます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
## text is preloaded into your workspace
# List standard English stop words
___
# Print text without standard stop words
removeWords(___, ___("___"))
# Add "coffee" and "bean" to the list: new_stops
new_stops <- c("___", "___", ___)
# Remove stop words from text
___