Stressed Out!
Tại đây bạn sẽ điều chỉnh danh sách từ tiêu cực cho phù hợp với văn bản cụ thể. Sau đó, bạn sẽ so sánh điểm polarity() cơ bản và điểm tùy chỉnh.
Một bài hát nổi tiếng của Twenty One Pilots có tên là "Stressed Out". Nếu bạn lướt qua lời bài hát, sẽ thấy nội dung nói về nỗi hoài niệm tuổi trẻ. Nhìn chung, hầu hết mọi người sẽ cho rằng độ phân cực là tiêu cực. Lời bài hát lặp đi lặp lại về căng thẳng, nỗi sợ và sự giả vờ.
Hãy so sánh lời bài hát bằng cả từ điển chủ quan mặc định và một từ điển tùy chỉnh.
Trước tiên, bạn cần kiểm tra xem từ điển chủ quan key.pol đã có thuật ngữ bạn muốn thêm chưa. Một cách để kiểm tra là dùng grep(). Hàm grep() trả về các hàng chứa ký tự khớp với mẫu tìm kiếm. Đây là một ví dụ dùng khi đánh chỉ mục.
data_frame[grep("search_pattern", data_frame$column), ]
Sau khi xác minh tiếng lóng hoặc từ mới chưa có trong từ điển key.pol, bạn cần thêm nó vào. Đoạn mã dưới đây dùng sentiment_frame() để dựng từ điển mới. Trong đó, sentiment_frame() nhận vector từ tích cực gốc là positive.words. Tiếp theo, negative.words gốc được nối thêm "smh" và "kappa", đều được xem là tiếng lóng tiêu cực. Dù bạn có thể đặt trọng số tích cực và tiêu cực, mặc định là 1 và -1 nên không cần nêu trong ví dụ dưới đây.
custom_pol <- sentiment_frame(positive.words, c(negative.words, "hate", "pain"))
Bây giờ bạn đã sẵn sàng áp dụng polarity và nó sẽ tham chiếu đến từ điển chủ quan tùy chỉnh!
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
Chúng tôi đã tạo stressed_out chứa lời bài hát "Stressed Out" của Twenty One Pilots.
- Dùng
polarity()trênstressed_outđể xem điểm mặc định. - Kiểm tra
key.polxem có từ nào chứa "stress" không. Dùnggrep()để đánh chỉ mục data frame bằng cách tìm trong cộtx. - Tạo
custom_polnhư một sentiment data frame mới.- Gọi
sentiment_frame()và truyềnpositive.wordslàm đối số đầu tiên mà không nối thêm thuật ngữ mới nào. - Tiếp theo, dùng
c()để kết hợpnegative.wordsvới các thuật ngữ mới "stressed" và "turn back".
- Gọi
- Áp dụng lại
polarity()chostressed_outvới tham số bổ sungpolarity.frame = custom_polđể so sánh cách các từ mới làm thay đổi điểm số, phản ánh chính xác hơn nội dung bài hát.
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.
# stressed_out has been pre-defined
head(stressed_out)
# Basic lexicon score
___(___)
# Check the subjectivity lexicon
___[___("stress", x)]
# New lexicon
custom_pol <- ___(___, c(negative.words, "___", "___"))
# Compare new score
___(___, polarity.frame = ___)