開始使用免費開始

開心的歌!

當然,只有正面與負面字詞還不夠。在這個練習中,你會學到會影響語意傾向的 valence shifters,它們能揭示作者的情緒意圖。先前你把 polarity() 用在沒有 valence shifters 的文字上。這次你會看到「加強」與「否定」字詞如何實際影響結果。

回想一下,在 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 情感分析

檢視課程

練習說明

  • 檢視對話資料框 conversation,注意 text 欄中的「never」等 valence shifters。
  • conversationtext 欄套用 polarity(),計算整段對話的極性。
  • 依學生計算極性分數,並將結果指定給 student_pol
    • 再次呼叫 polarity(),這次傳入 conversation 的兩個欄位。
    • 文字變數是 text,分組變數是 student
  • 若要查看學生層級的結果,對 student_pol 使用 scores()
  • student_pol 使用 counts() 會列出整個資料框的句子層級極性,並附上辨識到的詞典字詞。
  • 名為 student_pol 的極性物件可用 plot() 繪圖。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Examine conversation
___

# Polarity - All
___

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

# Student results
___

# Sentence by sentence
___

# qdap plot
___
編輯並執行程式碼