เปรียบเทียบ Tidy Sentiment กับ Qdap Polarity
ในแบบฝึกหัดนี้ คุณจะเห็นว่าวิธีการวิเคราะห์ sentiment ที่ต่างกันอาจให้ผลลัพธ์ที่แตกต่างกัน แต่โดยทั่วไปแล้ว ผลลัพธ์ควรชี้ไปในทิศทางเดียวกัน แม้รายละเอียดจะต่างกันบ้าง
ในแบบฝึกหัดก่อนหน้า คุณสร้าง tidy_reviews ซึ่งเป็น data frame ของรีวิวที่พักโดยไม่มี stopwords และก่อนหน้านี้ในบทนี้ คุณได้คำนวณและพล็อตกราฟโดยใช้ฟังก์ชัน polarity() ของ qdap ซึ่งแสดงให้เห็นว่ารีวิวส่วนใหญ่มีแนวโน้มเชิงบวก
คราวนี้มาทำการวิเคราะห์แบบเดียวกันด้วยวิธีของ tidytext กัน! จำได้จากบทก่อนหน้าว่าต้องใช้ inner_join() ตามด้วย count() แล้วจึง pivot_wider()
สุดท้าย สร้างคอลัมน์ใหม่โดยใช้ mutate() และส่งค่า positive - negative เข้าไป
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์ความรู้สึกใน R
คำแนะนำการฝึกหัด
- ใช้ฟังก์ชัน
get_sentiments()พร้อมอาร์กิวเมนต์ "bing" เพื่อดึง bing subjectivity lexicon แล้วตั้งชื่อ lexicon นั้นว่าbing - เนื่องจากคุณเขียนโค้ดนี้ไว้แล้วในบทที่ 2 เพียงแค่ระบุออบเจ็กต์ lexicon
bingชื่อคอลัมน์ใหม่ (polarity) และการคำนวณภายในmutate() - สุดท้าย เรียก
summary()บนออบเจ็กต์pos_negใหม่ แม้ค่าจะต่างกัน แต่เมื่อดูค่าเฉลี่ยแล้ว รีวิวที่พักส่วนใหญ่มีแนวโน้มเชิงบวกในทิศทางเดียวกับที่ได้จากpolarity()หรือไม่? และคุณสังเกตเห็น "grade inflation" หรือเปล่า?
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Get the correct lexicon
bing <- ___
# Calculate polarity for each review
pos_neg <- tidy_reviews %>%
inner_join(___) %>%
count(sentiment) %>%
pivot_wider(names_from = sentiment, values_from = n, values_fill = 0) %>%
mutate(___ = ___ - ___)
# Check outcome
___