1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Phân tích cảm xúc trong R

Connected

Bài tập

AFINN: Tôi là người bạn đồng hành của bạn

Giờ chúng ta chuyển sang từ điển cảm xúc AFINN. Từ điển AFINN chấm điểm số từ 5 đến -5, không chỉ đơn thuần là tích cực hay tiêu cực. Khác với cột sentiment của từ điển Bing, cột điểm cảm xúc trong AFINN được gọi là value.

Như trước, bạn áp dụng inner_join() rồi đến count(). Tiếp theo, để cộng các điểm của từng dòng, ta dùng group_by() và summarize() của dplyr. Hàm group_by() nhận một data frame hiện có và biến nó thành data frame được nhóm, nơi các phép toán được thực hiện “theo nhóm”. Sau đó, summarize() cho phép bạn tính một giá trị cho mỗi nhóm trong data frame bằng một hàm tổng hợp như sum() hoặc mean(). Vậy nên trong trường hợp này ta có thể làm như sau

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

Trong phiên bản tidy của Huckleberry Finn, dòng 9703 có các từ "best", "ever", "fun", "life" và "spirit". "best" và "fun" có điểm AFINN lần lượt là 3 và 4. Sau khi tổng hợp, dòng 9703 sẽ có tổng điểm là 7.

Trong tidyverse, filter() được ưu tiên hơn subset() vì nó kết hợp chức năng của subset() với cú pháp đơn giản hơn. Đây là ví dụ filter() trên data_frame nơi một giá trị trong column1 bằng 24. Lưu ý tên cột không đặt trong dấu ngoặc kép.

filter(data_frame, column1 == 24)

Đối tượng afinn chứa từ điển AFINN. Đối tượng huck là phiên bản tidy của tác phẩm Adventures of Huckleberry Finn của Mark Twain để phân tích.

Dòng 5400 là All the loafers looked glad; I reckoned they was used to having fun out of Boggs. Stopword và dấu câu đã được loại bỏ sẵn trong bộ dữ liệu.

Hướng dẫn 1/3

undefined XP
    1
    2
    3
  • Chạy mã để xem dòng 5400 và điểm cảm xúc của một số từ.
  • Dùng inner_join() để nối huck với từ điển afinn.
    • Nhớ rằng huck đã được pipe vào hàm, nên bạn chỉ cần thêm từ điển.
    • Nối theo cột term trong văn bản và cột word trong từ điển.
  • Dùng count() với value và line để đếm số quan sát theo nhóm.
    • Gán kết quả cho huck_afinn.