1. 学ぶ
  2. /
  3. コース
  4. /
  5. Rで学ぶBag-of-Wordsによるテキストマイニング

Connected

演習

n-gram の変更

これまで、単語単位のみで TDM と DTM を作成してきました。デフォルトはユニグラムですが、2語以上を含むトークンに注目することもできます。これにより、有用なフレーズを抽出して追加の洞察を得たり、Machine Learning アルゴリズムにとってより優れた予測属性を提供したりできます。

以下の関数は、RWeka パッケージを使ってトライグラム(3語)トークンを作成します。min と max はどちらも 3 に設定されています。

tokenizer <- function(x) {
  NGramTokenizer(x, Weka_control(min = 3, max = 3))
}

その後、カスタマイズした tokenizer() 関数を、追加の引数として TermDocumentMatrix または DocumentTermMatrix 関数に渡せます。

tdm <- TermDocumentMatrix(
  corpus, 
  control = list(tokenize = tokenizer)
)

指示

100 XP

corpus はこれまでと同様に chardonnay のツイートで前処理され、生成されたオブジェクト text_corp がワークスペースに用意されています。

  • 上の例のように、2語のバイグラムを作成する tokenizer 関数を作ってください。
  • tokenizer() 関数は使わずに、text_corp に対して DocumentTermMatrix() を呼び出し、unigram_dtm を作成してください。
  • 先ほど作成した tokenizer() を使って、text_corp に対して DocumentTermMatrix() を実行し、bigram_dtm を作成してください。
  • unigram_dtm と bigram_dtm を確認してください。どちらのほうが用語数が多いでしょうか?