Bắt đầu ngayBắt đầu miễn phí

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.

Bài tập này là một phần của khóa học

Phân tích cảm xúc trong R

Xem khóa học

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

oz_df <- oz_pol$all %>%
  # Select text.var as text and polarity
  ___(text = ___, polarity = ___)

# Apply custom function pol_subsections()
all_terms <- ___(___)

all_corpus <- all_terms %>%
  # Source from a vector
  ___() %>% 
  # Make a volatile corpus 
  ___()
Chỉnh sửa và Chạy Mã