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

AFINN: ได้เลย ฉันพร้อม

ต่อไปเราจะมาทำความรู้จักกับ AFINN lexicon กัน AFINN lexicon ใช้ค่าตัวเลขตั้งแต่ 5 ถึง -5 ไม่ใช่แค่บวกหรือลบเพียงอย่างเดียว และต่างจาก Bing lexicon ตรงที่คอลัมน์คะแนน sentiment ของ AFINN จะใช้ชื่อว่า value

เช่นเดิม ให้ใช้ inner_join() แล้วตามด้วย count() จากนั้นเพื่อรวมคะแนนของแต่ละบรรทัด เราจะใช้ฟังก์ชัน group_by() และ summarize() จาก dplyr ฟังก์ชัน group_by() รับ data frame ที่มีอยู่แล้วแปลงเป็น grouped data frame ซึ่งการดำเนินการต่าง ๆ จะทำ "ตามกลุ่ม" จากนั้น summarize() จะช่วยให้คำนวณค่าสำหรับแต่ละกลุ่มใน data frame ได้ โดยใช้ฟังก์ชันที่รวบรวมข้อมูล เช่น sum() หรือ mean() ตัวอย่างเช่น

data_frame %>% 
    group_by(book_line) %>% 
    summarize(total_value = sum(book_line))

ใน tidy version ของ Huckleberry Finn บรรทัดที่ 9703 มีคำว่า "best", "ever", "fun", "life" และ "spirit" โดย "best" และ "fun" มีคะแนน AFINN เท่ากับ 3 และ 4 ตามลำดับ หลังจากรวมคะแนนแล้ว บรรทัดที่ 9703 จะมีคะแนนรวมเท่ากับ 7

ใน tidyverse นิยมใช้ filter() แทน subset() เนื่องจากรวมความสามารถของ subset() ไว้ด้วยพร้อม syntax ที่กระชับกว่า ตัวอย่างด้านล่างใช้ filter() กับ data_frame โดยกรองเฉพาะแถวที่ค่าใน column1 เท่ากับ 24 สังเกตว่าชื่อคอลัมน์ไม่ต้องใส่เครื่องหมายคำพูด

filter(data_frame, column1 == 24)

ออบเจกต์ afinn คือ AFINN lexicon และออบเจกต์ huck คือ tidy version ของ Adventures of Huckleberry Finn โดย Mark Twain ที่เตรียมไว้สำหรับการวิเคราะห์

บรรทัดที่ 5400 คือ All the loafers looked glad; I reckoned they was used to having fun out of Boggs. โดย stopword และเครื่องหมายวรรคตอนถูกลบออกจากชุดข้อมูลแล้ว

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

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

ดูคอร์ส

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

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

# See abbreviated line 5400
huck %>% filter(line == 5400)

# What are the scores of the sentiment words?
afinn %>% filter(word %in% c("fun", "glad"))

huck_afinn <- huck %>% 
  # Inner Join to AFINN lexicon
  inner_join(___, by = c("___" = "___")) %>%
  # Count by value and line
  ___(___, ___)
แก้ไขและรันโค้ด