始める無料で始める

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

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

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

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

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

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

この演習はコースの一部です

Rで学ぶSentiment Analysis

コースを見る

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

moby_polarity <- moby %>%
  # Inner join to the lexicon
  ___(___, by = c("___" = "___")) %>%
  # Count by sentiment, index
  ___(___, ___) %>%
  # Pivot sentiments wider
  ___(names_from = ___, values_from = ___, values_fill = ___) %>%
  mutate(
    # Add polarity field
    ___ = ___ - ___,
    # Add line number field
    ___ = ___()
  )
コードを編集して実行