1. Учиться
  2. /
  3. Courses
  4. /
  5. Phân tích cảm xúc trong R

Connected

Exercise

Tự soi chiếu cảm xúc

Trong bài tập này, bạn sẽ đi xa hơn việc chỉ lọc theo ngôn ngữ tích cực và tiêu cực. Thay vào đó, bạn sẽ lọc văn bản theo từng cảm xúc trong 8 cảm xúc của bánh xe cảm xúc Plutchik để tạo một hình trực quan. Cách làm này giúp bạn rõ ràng hơn về cách dùng từ bằng cách ánh xạ sang một cảm xúc cụ thể thay vì chỉ tích cực hoặc tiêu cực.

Sử dụng từ điển chủ quan của tidytext, "nrc", bạn sẽ thực hiện inner_join() với văn bản của mình. Từ điển "nrc" có 8 cảm xúc cộng thêm hai lớp thuật ngữ tích cực và tiêu cực. Vì vậy sau khi inner_join(), bạn cần loại bỏ các từ tích cực và tiêu cực. Một cách là dùng toán tử phủ định ! cùng với grepl().

Hàm "Global Regular Expression Print Logical" grepl() sẽ trả về True hoặc False nếu mẫu chuỗi được tìm thấy ở mỗi hàng. Trong bài này, bạn sẽ tìm "positive" HOẶC "negative" bằng toán tử |, biểu diễn "hoặc" như minh họa dưới đây. Thường ký tự gạch dọc này nằm phía trên phím Enter trên bàn phím. Vì có phủ định ! đứng trước grepl(), giá trị T hoặc F sẽ bị đảo, nên chuỗi "positive|negative" sẽ bị loại bỏ thay vì được giữ lại.

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

Tiếp theo, bạn dùng count() trên các từ đã xác định và kết hợp với pivot_wider() để sắp xếp lại data frame.

comparison.cloud() yêu cầu đầu vào có tên hàng (row names), nên bạn sẽ cần chuyển về data.frame của base R, gọi data.frame() với đối số row.names.

Инструкции 1 / 2

undefined XP
    1
    2
  • Dùng inner_join() để nối moby với nrc.
  • Dùng filter() với phủ định (!) và grepl() để tìm "positive|negative". Cột cần tìm là sentiment.
  • Dùng count() để đếm theo sentiment và term.
  • Đổi dạng data frame bằng pivot_wider(), truyền names_from = sentiment, values_from = n, và values_fill = 0.
  • Chuyển về data frame thuần với data.frame(), đưa cột term thành tên hàng (rownames).
  • Khám phá moby_tidy bằng head().