เพลงแห่งความสุข!
แน่นอนว่าการดูแค่คำเชิงบวกและเชิงลบนั้นยังไม่เพียงพอ ในแบบฝึกหัดนี้ คุณจะได้เรียนรู้เกี่ยวกับ valence shifters ซึ่งช่วยบอกถึงเจตนาทางอารมณ์ของผู้เขียน ก่อนหน้านี้คุณได้ใช้ polarity() กับข้อความที่ไม่มี valence shifters ในตัวอย่างนี้ คุณจะได้เห็นการทำงานของคำขยาย (amplification) และคำปฏิเสธ (negation)
ทบทวนกันอีกครั้ง: คำ ขยาย (amplifying) จะเพิ่ม 0.8 ให้กับคำเชิงบวกใน polarity() ทำให้คะแนนบวกกลายเป็น 1.8 สำหรับคำเชิงลบ จะหัก 0.8 ออก ทำให้ได้ -1.8 จากนั้นคะแนนจะถูกหารด้วยรากที่สองของจำนวนคำทั้งหมด
ลองพิจารณาตัวอย่างจาก Frank Sinatra:
- "It was a very good year"
"Good" มีค่าเท่ากับ 1 และ "very" เพิ่มอีก 0.8 ดังนั้น 1.8/sqrt(6) ได้ค่า polarity เท่ากับ 0.73
คำ ปฏิเสธ (negating) เช่น "not" จะกลับค่า subjectivity score ลองพิจารณาตัวอย่างจาก Bobby McFerrin:
- "Don't worry Be Happy"
"worry" กลายเป็น 1 เนื่องจากการปฏิเสธด้วย "don't" เมื่อรวมกับ "happy" ที่มีค่า +1 จะได้ผลรวมเป็น 2 โดยมีคำทั้งหมด 4 คำ ดังนั้น 2 / sqrt(4) จะได้คะแนน polarity เท่ากับ 1
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์ความรู้สึกใน R
คำแนะนำการฝึกหัด
- ตรวจสอบ data frame ชื่อ
conversationสังเกต valence shifters เช่น "never" ในคอลัมน์ text - ใช้
polarity()กับคอลัมน์textของconversationเพื่อคำนวณ polarity ของการสนทนาทั้งหมด - คำนวณคะแนน polarity แยกตามนักเรียน โดยเก็บผลลัพธ์ไว้ในตัวแปร
student_pol- เรียกใช้
polarity()อีกครั้ง คราวนี้ส่งสองคอลัมน์จากconversation - ตัวแปรข้อความคือ
textและตัวแปรจัดกลุ่มคือstudent
- เรียกใช้
- ใช้
scores()กับstudent_polเพื่อดูผลลัพธ์ในระดับนักเรียน - ฟังก์ชัน
counts()เมื่อใช้กับstudent_polจะแสดงค่า polarity ระดับประโยคของทั้ง data frame พร้อมคำที่ระบุได้จาก lexicon - สามารถพล็อต polarity object ชื่อ
student_polได้ด้วยplot()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Examine conversation
___
# Polarity - All
___
# Polarity - Grouped
student_pol <- conversation %$%
___(___, ___)
# Student results
___
# Sentence by sentence
___
# qdap plot
___