1. เรียนรู้
  2. /
  3. Courses
  4. /
  5. Phân tích cảm xúc trong R

Connected

Exercises

So sánh ma trận DTM và tidytext

The tidyverse là một tập hợp các gói R chia sẻ triết lý chung và được thiết kế để hoạt động cùng nhau. Chương này đề cập đến một số hàm tidy để thao tác dữ liệu. Trong bài tập này, bạn sẽ so sánh một DTM với một data frame văn bản ở định dạng tidy gọi là tibble.
Trong tidyverse, mỗi quan sát là một hàng trong data frame. Điều đó giúp làm việc giữa các gói dễ dàng hơn vì cấu trúc dữ liệu nền tảng là như nhau. Một phần của khóa học này tham khảo rất nhiều từ gói tidytext, gói sử dụng cách tổ chức dữ liệu này.

Ví dụ, có thể bạn đã quen với toán tử %>% từ gói magrittr. Toán tử này chuyển đối tượng ở phía bên trái thành đối số đầu tiên của hàm ở phía bên phải.

Trong ví dụ dưới đây, bạn đang chuyển tiếp đối tượng data vào function1(). Lưu ý dấu ngoặc đơn rỗng. Kết quả lại được chuyển tiếp vào function2(). Ở hàm cuối cùng, bạn không cần thêm đối tượng data vì nó đã được chuyển tiếp từ đầu ra của function1(). Tuy nhiên, bạn có thêm một tham số giả định, some_parameter với giá trị TRUE. Chuỗi pipe này cuối cùng tạo ra object.

object <- data %>% 
           function1() %>%
           function2(some_parameter = TRUE)

Để dùng toán tử %>%, bạn không nhất thiết phải tải gói magrittr, vì nó cũng có sẵn trong gói dplyr. dplyr cũng chứa các hàm inner_join() (bạn sẽ học kỹ hơn sau) và count() để đếm dữ liệu. Hàm cuối cùng bạn sẽ cần là mutate() để tạo biến mới hoặc chỉnh sửa biến hiện có.

object <- data %>%
  mutate(new_Var_name = Var1 - Var2)

hoặc để chỉnh sửa một biến

object <- data %>%
  mutate(Var1 = as.factor(Var1))

Bạn cũng sẽ dùng hàm pivot_wider() của tidyr để tổ chức dữ liệu sao cho mỗi hàng là một dòng từ cuốn sách, và các giá trị positive/negative là các cột.

index negative positive
42 2 0
43 0 1
44 1 0

Để chuyển một DTM sang định dạng tidy, dùng tidy() từ gói broom.

tidy_format <- tidy(Document_Term_Matrix)

Bài tập này dùng văn bản từ bi kịch Hy Lạp, Agamemnon. Agamemnon là câu chuyện về ngoại tình và sát hại trong hôn nhân. Bạn có thể tải một bản tại đây.

คำแนะนำ

100 XP

Chúng tôi đã tạo sẵn một DTM sạch tên ag_dtm cho bài này.

  • Tạo ag_dtm_m bằng cách áp dụng as.matrix() lên ag_dtm.
  • Dùng ngoặc vuông [ và ] để lấy chỉ mục hàng 2206 của ag_dtm_m.
  • Áp dụng tidy() cho ag_dtm. Gọi đối tượng mới là ag_tidy.
  • Xem ag_tidy tại các hàng [831:835, ] để so sánh định dạng tidy. Bạn sẽ thấy một từ chung với phần đã kiểm tra của ag_dtm_m ở bước 2.