Đám mây so sánh sau khi chuẩn hóa
Bạn còn nhớ hiện tượng "lạm phát điểm" trong điểm polarity của các bài đánh giá chỗ thuê chứ? Đôi khi, một cách khác để tìm ra insight là đưa các điểm này về quanh 0 rồi mới tạo các tập con của corpus. Điều này có nghĩa là một số bình luận trước đây được xếp dương có thể chuyển sang nhóm âm hoặc ngược lại vì giá trị trung bình được đưa về 0. Bài tập này sẽ giúp bạn chuẩn hóa các điểm rồi vẽ lại comparison.cloud(). Loại bỏ "lạm phát điểm" có thể mang lại thêm góc nhìn mới.
Trước đây bạn đã dùng polarity() cho bos_reviews$comments và tạo một comparison.cloud(). Ở bài này bạn sẽ scale() kết quả trước khi tạo comparison.cloud(). Hãy xem biểu đồ có cho thấy điều gì khác không!
Vì đây chủ yếu là bài ôn tập, phần lớn mã đã có sẵn, bạn chỉ cần điền đúng đối tượng và tham số!
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
Hướng dẫn bài tập
- Xem lại một phần
bos_pol$allđã nạp sẵn bằng cách lập chỉ mục[1:6,1:3]. - Thêm cột mới tên
scaled_polarityvớiscale()áp dụng lên cột điểm polaritybos_pol$all$polarity. - Với bình luận tích cực, dùng
subset()khi cột mớibos_reviews$scaled_polaritylớn hơn (>) 0. - Với bình luận tiêu cực, dùng
subset()khi cột mớibos_reviews$scaled_polaritynhỏ hơn (<) 0. - Tạo
pos_termsbằngpastetrênpos_comments. - Tiếp theo tạo
neg_termsvớipaste()trênneg_comments. - Gom các tài liệu đã ghép,
pos_termsvàneg_terms, vào một corpus duy nhất gọi làall_terms. - Theo quy trình
tmthường dùng bằng cách lồngVectorSource()trongVCorpus()áp dụng choall_terms. - Tạo
TermDocumentMatrix()bằng đối tượngall_corpus. Lưu ý đây là TDM có trọng số TfIdf với các hàm làm sạch cơ bản. - Chuyển
all_tdmthànhall_tdm_mbằngas.matrix(). Sau đó đổi tên các cột trong đoạn mã hiện có thành"positive"và"negative". - Cuối cùng! áp dụng
comparison.cloud()cho đối tượng ma trậnall_tdm_m. Hãy chú ý các từ tiêu cực xuất hiện nhiều nhất mới. Biết đâu bạn sẽ phát hiện thêm insight chưa từng thấy!
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.
# Review
___
# Scale/center & append
bos_reviews$___ <- scale(___)
# Subset positive comments
pos_comments <- subset(bos_reviews$comments, ___)
# Subset negative comments
neg_comments <- subset(bos_reviews$comments, ___)
# Paste and collapse the positive comments
pos_terms <- paste(___, collapse = " ")
# Paste and collapse the negative comments
neg_terms <- paste(___, collapse = " ")
# Organize
all_terms<- c(___, ___)
# VCorpus
all_corpus <- ___(VectorSource(___))
# TDM
all_tdm <- TermDocumentMatrix(
___,
control = list(
weighting = weightTfIdf,
removePunctuation = TRUE,
stopwords = stopwords(kind = "en")
)
)
# Column names
___ <- as.matrix(___)
colnames(all_tdm_m) <- c("___", "___")
# Comparison cloud
comparison.cloud(
___,
max.words = 100,
colors = c("darkgreen", "darkred")
)