TM のおさらい(II)
それでは Document Term Matrix(DTM)を作成しましょう。DTM では、
- 行列の各行はドキュメントを表します。
- 各列は一意の単語トークンです。
- 行列の値は、各ドキュメントでの単語の出現頻度を表します。
DTM は多くの「bag of words」分析の基盤になります。コースの後半では、関連する Term Document Matrix(TDM)も使います。TDM は DTM の転置で、列がドキュメント、行が一意の単語トークンを表します。
コーパスをクレンジング(clean_corpus() を使用)した後に DTM を作成してください。そのためには、コーパスオブジェクトに対して DocumentTermMatrix() を呼び出します。
tm_dtm <- DocumentTermMatrix(tm_clean)
より詳しい復習が必要な場合は、Text Mining with Bag-of-Words in R コースをご覧ください。ここまでの 2 つの演習で、感情分析を始める準備は整っているはずです!
これは Twitter の実データであるため、わいせつ表現や不快な内容を含む可能性があります(本演習および、今後の Twitter の実データを使う演習も同様です)のでご注意ください。
この演習はコースの一部です
Rで学ぶSentiment Analysis
演習の手順
clean_text という VCorpus() オブジェクトを用意しました。コーヒーに言及した 1000 件のツイートが含まれています。これらのツイートは前述の前処理でクレンジング済みです。ここから DTM を作成しましょう。
clean_textコーパスにDocumentTermMatrix()を適用し、用語頻度で重み付けされた DTMtf_dtmを作成します。as.matrix()でDocumentTermMatrix()オブジェクトを通常の行列に変換し、新しいオブジェクトをtf_dtm_mと名付けます。dim()で行列の次元を確認します。- 角かっこによるインデックス指定で行列の一部を確認します。
- 行 16〜20、列 2975〜2985 を選択します
- 単語 "working" の頻度(値)を確認してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# clean_text is pre-defined
clean_text
# Create tf_dtm
tf_dtm <- ___
# Create tf_dtm_m
tf_dtm_m <- ___
# Dimensions of DTM matrix
___
# Subset part of tf_dtm_m for comparison
___[___, ___]