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

Chia để trị: Dùng polarity cho comparison cloud

Bây giờ bạn đã thấy cách dùng polarity để chia nhỏ một corpus, hãy cùng làm nhé! Đoạn mã này sẽ hướng dẫn bạn chia corpus theo cảm xúc để bạn có thể soi kỹ thông tin theo từng phần thay vì nhìn tổng thể.

Phiên R của bạn đã có oz_pol, được tạo bằng cách áp dụng polarity() lên "The Wonderful Wizard of Oz."

Để đơn giản, chúng tôi tạo một hàm tùy chỉnh tên pol_subsections() để chia corpus theo điểm polarity. Trước hết, hàm nhận vào một data frame, trong đó mỗi hàng là một câu hoặc một tài liệu của corpus. Data frame sẽ được lấy phần con ở những nơi giá trị polarity lớn hơn hoặc nhỏ hơn 0. Cuối cùng, các câu tích cực và tiêu cực (polarity khác 0) được nối lại bằng tham số collapse để các thuật ngữ được gom thành một corpus duy nhất. Sau cùng, hai tài liệu này được ghép thành một vector gồm hai tài liệu riêng biệt.

pol_subsections <- function(df) {
  x.pos <- subset(df$text, df$polarity > 0)
  x.neg <- subset(df$text, df$polarity < 0)
  x.pos <- paste(x.pos, collapse = " ")
  x.neg <- paste(x.neg, collapse = " ")
  all.terms <- c(x.pos, x.neg)
  return(all.terms)
}

Tại thời điểm này bạn đã loại các câu trung tính và muốn tập trung tổ chức phần văn bản còn lại. Trong bài này, ta lại dùng toán tử %>% để chuyền đối tượng qua các hàm. Sau một chút làm sạch, hãy dùng comparison.cloud() để tạo trực quan hóa.

Hướng dẫn 1/3

undefined XP
    1
    2
    3
  • Trích xuất phần bạn cần từ oz_pol.
    • Gọi select(), khai báo cột đầu tiên text là text.var (văn bản thô). Cột thứ hai polarity sẽ tham chiếu tới điểm polarity polarity.
  • Bây giờ áp dụng pol_subsections() lên oz_df. Đặt tên đối tượng mới là all_terms.
  • Để tạo all_corpus, áp dụng VectorSource() lên all_terms rồi %>% sang VCorpus().