始める無料で始める

Happy songs!

もちろん、単に肯定語と否定語だけでは十分ではありません。この演習では、書き手の感情的な意図を示す「感情価シフター(valence shifter)」について学びます。これまでに、感情価シフターを含まないテキストに polarity() を適用しました。ここでは、強調(amplification)語と否定(negation)語がどのように働くかを確認します。

思い出してください。polarity() では、肯定語に対して強調語があると +0.8 が加算され、肯定スコアは 1.8 になります。否定語に対しては 0.8 が減算され、合計は -1.8 になります。その後、スコアは単語総数の平方根で割られます。

Frank Sinatra の次の例を考えてみましょう。

  • "It was a very good year"

"good" は 1、そして "very" がさらに 0.8 を加えます。したがって、1.8/sqrt(6) により極性は 0.73 になります。

"not" のような否定語は主観スコアを反転させます。Bobby McFerrin の次の例を考えてみましょう。

  • "Don't worry Be Happy"

否定語 "don't" によって "worry" は 1 になります。ここに "happy"(+1)を加えると合計は 2 です。全体で 4 語なので、2 / sqrt(4) により極性スコアは 1 になります。

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

Rで学ぶSentiment Analysis

コースを見る

演習の手順

  • データフレーム conversation を確認し、text 列にある "never" のような感情価シフターに注目します。
  • conversationtext 列に polarity() を適用して、会話全体の極性を計算します。
  • 学生ごとの極性スコアを計算し、結果を student_pol に代入します。
    • もう一度 polarity() を呼び出し、conversation の2つの列を渡します。
    • テキスト変数は text、グループ変数は student です。
  • 学生単位の結果を見るには、student_pol に対して scores() を使います。
  • student_polcounts() を適用すると、データフレーム全体の文レベルの極性と、特定されたレキシコンの単語が表示されます。
  • 極性オブジェクト student_pol は、plot() でプロットできます。

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

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

# Examine conversation
___

# Polarity - All
___

# Polarity - Grouped
student_pol <- conversation %$%
  ___(___, ___)

# Student results
___

# Sentence by sentence
___

# qdap plot
___
コードを編集して実行