1. Learn
  2. /
  3. Courses
  4. /
  5. Rで学ぶSentiment Analysis

Connected

Exercise

スケーリングした比較クラウド

レンタルレビューの極性スコアに「採点のインフレ」が起きていたのを覚えていますか? インサイトを掘り下げる別の方法として、スコアをいったん 0 に合わせてスケーリングし、その後にコーパスをサブセットするやり方があります。平均を 0 にするため、以前はポジティブだったコメントがネガティブ側に入れ替わる(その逆も)ことがあります。この演習ではスコアをスケーリングし、続いて comparison.cloud() を描き直します。「採点のインフレ」を取り除くことで、新たな気づきが得られるかもしれません。

前の演習では、bos_reviews$comments に polarity() を適用し、comparison.cloud() を作成しました。今回は comparison.cloud() を作る前に、結果を scale() でスケーリングします。可視化で新しい発見が見えるか確認してみましょう!

今回は復習要素が多いので、コードはほとんど用意されています。正しいオブジェクト名とパラメータを埋めて完成させてください。

Instructions

100 XP
  • 事前に読み込まれている bos_pol$all の一部を、インデックス [1:6,1:3] で確認します。
  • 極性スコア列 bos_pol$all$polarity に scale() を適用し、scaled_polarity という新しい列を追加します。
  • ポジティブコメント用に、新しい列 bos_reviews$scaled_polarity が 0 より大きい (>) 行で subset() を作成します。
  • ネガティブコメント用に、新しい列 bos_reviews$scaled_polarity が 0 より小さい (<) 行で subset() を作成します。
  • pos_comments に対して paste() を用い、pos_terms を作成します。
  • 続いて neg_comments に paste() を用い、neg_terms を作成します。
  • まとめたドキュメント pos_terms と neg_terms を 1 つにまとめ、all_terms というコーパス用の入力ベクトルにします。
  • いつもの tm のワークフローに従い、all_terms に対して VectorSource() を VCorpus() の内側にネストして適用します。
  • all_corpus オブジェクトを使って TermDocumentMatrix() を作成します。これは基本的なクリーニング関数を含む TfIdf 重み付きの TDM です。
  • all_tdm を as.matrix() で all_tdm_m に変換します。既存のコードで列名を "positive" と "negative" に変更します。
  • 最後に! 行列オブジェクト all_tdm_m に対して comparison.cloud() を適用します。新しく頻出するネガティブ語に注目してみてください。思わぬ発見があるかもしれません。