เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การวิเคราะห์อารมณ์เชิงลึก

ในแบบฝึกหัดนี้ เราจะก้าวไปไกลกว่าการกรองคำตามแง่บวกและแง่ลบ โดยจะแบ่งข้อความตามอารมณ์ทั้ง 8 ประเภทในวงล้ออารมณ์ของ Plutchik เพื่อสร้างภาพประกอบ แนวทางนี้ช่วยให้เห็นการใช้คำได้ชัดเจนยิ่งขึ้น เพราะจับคู่คำกับอารมณ์เฉพาะเจาะจง แทนที่จะแยกเพียงแค่บวกหรือลบ

โดยใช้ subjectivity lexicon "nrc" จาก tidytext แล้วทำ inner_join() กับข้อความของคุณ lexicon "nrc" มีทั้ง 8 อารมณ์ บวกกับคลาสคำแง่บวกและแง่ลบ ดังนั้นหลังจาก inner_join() แล้ว จะต้องตัดคำที่เป็นบวกและลบออก วิธีหนึ่งคือใช้การนิเสธ ! ร่วมกับ grepl()

ฟังก์ชัน "Global Regular Expression Print Logical" หรือ grepl() จะคืนค่า True หรือ False เมื่อพบรูปแบบสตริงในแต่ละแถว ในแบบฝึกหัดนี้จะค้นหาคำว่า positive หรือ negative โดยใช้ตัวดำเนินการ | ซึ่งหมายถึง "หรือ" ดังตัวอย่างด้านล่าง โดยทั่วไปเส้นตรงนี้จะอยู่เหนือปุ่ม Enter บนแป้นพิมพ์ เนื่องจาก ! นิเสธอยู่หน้า grepl() ค่า T หรือ F จึงถูกสลับ ทำให้ "positive|negative" ถูกตัดออกแทนที่จะเก็บไว้

Object <- tibble %>%
  filter(!grepl("positive|negative", column_name))

จากนั้นใช้ count() กับคำที่ระบุได้ ร่วมกับ pivot_wider() เพื่อจัดรูปแบบ data frame

comparison.cloud() ต้องการให้ข้อมูลนำเข้ามี row names ดังนั้นจึงต้องแปลงเป็น data.frame แบบ base-R โดยเรียก data.frame() พร้อมระบุอาร์กิวเมนต์ row.names

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์ความรู้สึกใน R

ดูคอร์ส

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

moby_tidy <- moby %>%
  # Inner join to nrc lexicon
  ___(___, by = c("term" = "word")) %>% 
  # Drop positive or negative
  ___(!___("___", sentiment)) %>% 
  # Count by sentiment and term
  ___(___, ___) %>% 
  # Pivot sentiment, using n for values
  ___(names_from = ___, values_from = ___, values_fill = ___) %>%
  # Convert to data.frame, making term the row names
  data.frame(row.names = "___")

# Examine
head(moby_tidy)
แก้ไขและรันโค้ด