1. 学习
  2. /
  3. 课程
  4. /
  5. Rで学ぶSentiment Analysis

Connected

练习

バッドエンド?時系列の極性(ポラリティ)

感情を時間とともに追跡したい場面はよくあります。たとえば広告キャンペーンの期間中にブランドのセンチメントを追い、施策の効果を確認する、といった使い方です。前の章の最後でも、いくつかの例をご覧いただきました。

この演習では、小説『白鯨(Moby Dick)』を使って、時間経過に沿ってセンチメントを探索するワークフローをおさらいします。物語のハッピーな場面では肯定的な語が否定的な語より多くなるはずです。逆に、暗い場面や悲しい結末では否定的な語が増えるでしょう。あわせて、センチメントの時系列をより見やすくするコツも紹介します。

ワークフローは次のとおりです。

  1. テキストを単語で辞書と内部結合(inner join)します。
  2. 行ごとにセンチメントを集計します。
  3. 各センチメントが列になるようにデータを整形します。 4.(辞書により)極性を「positive のスコア − negative のスコア」で計算します。
  4. 極性の時系列をプロットします。

この演習は見覚えがあるはずです。これは「Bing tidy polarity: Call me Ishmael (with ggplot2)!」の発展版です。

说明 1 / 共 2 个

undefined XP
    1
    2
  • 事前読み込み済みの『Moby Dick』の tidy 版 moby を inner_join() で bing 辞書と結合します。
    • テキスト側の "term" 列と辞書側の "word" 列で結合します。
  • sentiment と index でカウントします。
  • pivot_wider() を使って、各センチメントがそれぞれの列になるように整形します。
    • names_from = sentiment は sentiment 列を参照します
    • values_from = n は n 列の値を利用します
    • values_fill = 0 で NA を 0 で埋めます
  • mutate() を使って polarity と line_number の2列を追加します。
    • polarity は positive のスコアから negative のスコアを引いた値にします。
    • line_number は row_number() 関数で行番号を設定します。