バッドエンド?時系列の極性(ポラリティ)
感情を時間とともに追跡したい場面はよくあります。たとえば広告キャンペーンの期間中にブランドのセンチメントを追い、施策の効果を確認する、といった使い方です。前の章の最後でも、いくつかの例をご覧いただきました。
この演習では、小説『白鯨(Moby Dick)』を使って、時間経過に沿ってセンチメントを探索するワークフローをおさらいします。物語のハッピーな場面では肯定的な語が否定的な語より多くなるはずです。逆に、暗い場面や悲しい結末では否定的な語が増えるでしょう。あわせて、センチメントの時系列をより見やすくするコツも紹介します。
ワークフローは次のとおりです。
- テキストを単語で辞書と内部結合(inner join)します。
- 行ごとにセンチメントを集計します。
- 各センチメントが列になるようにデータを整形します。 4.(辞書により)極性を「positive のスコア − negative のスコア」で計算します。
- 極性の時系列をプロットします。
この演習は見覚えがあるはずです。これは「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
___ = ___()
)