Comparison Cloud แบบปรับสเกล
จำ "grade inflation" ของคะแนน polarity ในรีวิวที่พักได้ไหม? บางครั้ง วิธีหนึ่งในการค้นพบ insight ใหม่คือการปรับสเกลคะแนนให้กลับมาที่ 0 แล้วจึงแบ่งกลุ่ม corpus ใหม่ ซึ่งหมายความว่าความคิดเห็นที่เคยเป็นเชิงบวกอาจย้ายไปอยู่ในกลุ่มเชิงลบ หรือในทางกลับกัน เนื่องจากค่าเฉลี่ยถูกเปลี่ยนเป็น 0 แบบฝึกหัดนี้จะช่วยให้ปรับสเกลคะแนน แล้ว plot comparison.cloud() ใหม่อีกครั้ง การลบ "grade inflation" ออกอาจช่วยเผยให้เห็น insight เพิ่มเติมได้
ก่อนหน้านี้ได้ใช้ polarity() กับ bos_reviews$comments และสร้าง comparison.cloud() ไปแล้ว ในแบบฝึกหัดนี้จะใช้ scale() กับผลลัพธ์ก่อนสร้าง comparison.cloud() ลองดูว่าจะแสดงอะไรที่แตกต่างออกไปในภาพหรือไม่!
เนื่องจากเป็นแบบฝึกหัดทบทวนเป็นส่วนใหญ่ โค้ดจำนวนมากจึงมีอยู่แล้ว เพียงเติม object และพารามิเตอร์ที่ถูกต้องให้ครบ!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์ความรู้สึกใน R
คำแนะนำการฝึกหัด
- ทบทวนส่วนหนึ่งของ
bos_pol$allที่โหลดไว้ล่วงหน้า โดย index ด้วย[1:6,1:3] - เพิ่มคอลัมน์ใหม่ชื่อ
scaled_polarityโดยใช้scale()กับคอลัมน์คะแนน polarity ที่ชื่อbos_pol$all$polarity - สำหรับความคิดเห็นเชิงบวก ใช้
subset()โดยกรองที่คอลัมน์ใหม่bos_reviews$scaled_polarityมากกว่า (>) ศูนย์ - สำหรับความคิดเห็นเชิงลบ ใช้
subset()โดยกรองที่คอลัมน์ใหม่bos_reviews$scaled_polarityน้อยกว่า (<) ศูนย์ - สร้าง
pos_termsโดยใช้paste()กับpos_comments - สร้าง
neg_termsโดยใช้paste()กับneg_comments - จัดระเบียบเอกสารที่รวมกันแล้ว ได้แก่
pos_termsและneg_termsให้อยู่ใน corpus เดียวชื่อall_terms - ทำตามขั้นตอนปกติของ
tmโดย nestVectorSource()ไว้ในVCorpus()แล้วใช้กับall_terms - สร้าง
TermDocumentMatrix()โดยใช้ objectall_corpusโดย TDM นี้ถ่วงน้ำหนักด้วย TfIdf และมีฟังก์ชันทำความสะอาดพื้นฐานอยู่แล้ว - แปลง
all_tdmเป็นall_tdm_mโดยใช้as.matrix()จากนั้นเปลี่ยนชื่อคอลัมน์ในโค้ดที่มีอยู่เป็น"positive"และ"negative" - สุดท้าย! ใช้
comparison.cloud()กับ matrix objectall_tdm_mแล้วสังเกตคำเชิงลบที่พบบ่อยที่สุดใหม่ บางทีอาจเผยให้เห็น insight ที่ไม่เคยรู้มาก่อน!
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Review
___
# Scale/center & append
bos_reviews$___ <- scale(___)
# Subset positive comments
pos_comments <- subset(bos_reviews$comments, ___)
# Subset negative comments
neg_comments <- subset(bos_reviews$comments, ___)
# Paste and collapse the positive comments
pos_terms <- paste(___, collapse = " ")
# Paste and collapse the negative comments
neg_terms <- paste(___, collapse = " ")
# Organize
all_terms<- c(___, ___)
# VCorpus
all_corpus <- ___(VectorSource(___))
# TDM
all_tdm <- TermDocumentMatrix(
___,
control = list(
weighting = weightTfIdf,
removePunctuation = TRUE,
stopwords = stopwords(kind = "en")
)
)
# Column names
___ <- as.matrix(___)
colnames(all_tdm_m) <- c("___", "___")
# Comparison cloud
comparison.cloud(
___,
max.words = 100,
colors = c("darkgreen", "darkred")
)