Bing tidy polarity:簡單範例
現在你已經理解 inner join 的基本概念,來把它應用到「Bing」詞典吧。請記住,inner_join() 函式來自 dplyr,而詞典物件則透過 tidytext 的 get_sentiments() 函式取得。
Bing 詞典會將字詞標記為正向或負向。接下來三個練習會讓你操作這個特定詞典。若要使用 get_sentiments(),傳入例如「afinn」、「bing」、「nrc」或「loughran」等字串即可下載對應的詞典。
inner join 的流程:
- 使用
get_sentiments()取得正確的詞典。 - 將詞典與整理過的文字資料傳給
inner_join()。 - 為了讓
inner_join()正常運作,必須有共同的欄位名稱。若沒有共同欄名,請使用額外參數by,並以c指定如下的欄位對應。
object <- x %>%
inner_join(y, by = c("column_from_x" = "column_from_y"))
- 對交集表格進行彙整與分析。
本練習屬於課程
R 情感分析
練習說明
我們已載入 ag_txt(包含《阿伽門農》前 100 行)以及其 tidy 版本 ag_tidy。
- 為了比較,對
ag_txt使用polarity()。 - 將字串
"bing"傳給get_sentiments()以取得詞典。 - 使用
inner_join()將ag_tidy與bing合併。- 在
ag_tidy中的字詞欄位叫作"term",在詞典中則為"word",因此需要宣告by參數。 - 將新物件命名為
ag_bing_words。
- 在
- 列印
ag_bing_words,觀察結果中出現的部分字詞。 - 使用管線運算子 %>%,將
ag_bing_words傳給count(),並以sentiment作為統計欄位。將polarity()的分數與情緒計數的比例做比較。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Qdap polarity
___
# Get Bing lexicon
bing <- get_sentiments("___")
# Join text to lexicon
ag_bing_words <- ___(___, ___, by = c("___" = "___"))
# Examine
ag_bing_words
# Get counts by sentiment
ag_bing_words %>%
___(___)