Bing tidy polarity: ตัวอย่างเบื้องต้น
เมื่อเข้าใจหลักการของ inner join แล้ว ลองนำมาใช้กับ Bing lexicon กัน โปรดจำไว้ว่าฟังก์ชัน inner_join() มาจากไลบรารี dplyr และดึง lexicon object ด้วยฟังก์ชัน get_sentiments() ของ tidytext
Bing lexicon จะแบ่งคำออกเป็นเชิงบวกหรือเชิงลบ แบบฝึกหัดสามข้อถัดไปจะให้ทดลองใช้งาน lexicon นี้โดยตรง หากต้องการใช้ get_sentiments() ให้ส่ง string เช่น "afinn", "bing", "nrc" หรือ "loughran" เพื่อดาวน์โหลด lexicon ที่ต้องการ
ขั้นตอนการทำงานด้วย inner join:
- ดึง lexicon ที่ต้องการด้วย
get_sentiments() - ส่ง lexicon และข้อมูลข้อความแบบ tidy ให้กับ
inner_join() inner_join()จำเป็นต้องมีคอลัมน์ที่มีชื่อตรงกัน หากไม่มี ให้ระบุด้วยพารามิเตอร์byโดยใช้cพร้อมชื่อคอลัมน์ตามตัวอย่างด้านล่าง
object <- x %>%
inner_join(y, by = c("column_from_x" = "column_from_y"))
- จากนั้นทำการรวมผลและวิเคราะห์ข้อมูลจากตารางที่ได้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์ความรู้สึกใน R
คำแนะนำการฝึกหัด
โหลด ag_txt ซึ่งประกอบด้วย 100 บรรทัดแรกจาก Agamemnon และ ag_tidy ซึ่งเป็นเวอร์ชัน tidy ไว้ให้แล้ว
- เพื่อเปรียบเทียบ ให้ใช้
polarity()กับag_txt - ดึง lexicon
"bing"โดยส่ง string ดังกล่าวให้กับget_sentiments() - ทำ
inner_join()ระหว่างag_tidyและbing- คอลัมน์คำใน
ag_tidyชื่อ"term"ส่วนใน lexicon ชื่อ"word"จึงต้องระบุอาร์กิวเมนต์byด้วย - ตั้งชื่อ object ใหม่ว่า
ag_bing_words
- คอลัมน์คำใน
- พิมพ์
ag_bing_wordsแล้วดูคำบางส่วนที่ปรากฏในผลลัพธ์ - ส่ง
ag_bing_wordsต่อไปยังcount()ของsentimentโดยใช้ pipe operator%>%แล้วเปรียบเทียบคะแนนจากpolarity()กับอัตราส่วนจำนวน sentiment
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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 %>%
___(___)