奇妙的 NRC 法術師
最後一個絕不能錯過的是 NRC 詞彙庫。它會將單字標記到多種情緒狀態上。還記得 Plutchik 的情緒之輪嗎?NRC 詞彙庫會依照 Plutchik 的 8 種情緒,再加上正向/負向,來標註單字。
在這個練習中有個新運算子 %in%,用來測試一個向量中的元素是否出現在另一個向量中。以下程式碼中,%in% 會回傳 FALSE、FALSE、TRUE。原因是 some_vec 裡的 1 和 2 不在 some_other_vector 中,但 3 有出現,因此回傳 TRUE。%in% 很適合用來找出相符的項目。
some_vec <- c(1, 2, 3)
some_other_vector <- c(3, "a", "b")
some_vec %in% some_other_vector
另一個新運算子是 !。對邏輯條件來說,加上 ! 會反轉結果。在上面的例子中,FALSE、FALSE、TRUE 會變成 TRUE、TRUE、FALSE。把它和 %in% 一起使用會反轉判斷,適合用來移除已匹配到的項目。
!some_vec %in% some_other_vector
我們已經為你建立了 oz,也就是《綠野仙蹤》的 tidy 版本,另外還有 nrc,其中包含「NRC」詞彙庫,欄位名稱也已重新命名。
本練習屬於課程
R 情感分析
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
oz_plutchik <- oz %>%
# Join to nrc lexicon by term = word
inner_join(___, by = ___("___" = "___")) %>%
# Only consider Plutchik sentiments
___(!___ %in% c("___", "___")) %>%
# Group by sentiment
___(___) %>%
# Get total count by sentiment
___(total_count = ___(___))