Bạn có thể quan sát định luật Zipf ở đâu?
Mặc dù Zipf quan sát thấy tần suất dùng từ giảm mạnh và có thể dự đoán, bạn có thể vẫn chưa tin vào định luật Zipf. Bạn có thể nghĩ: "Tôi biết rất nhiều từ và có vốn từ vựng rất riêng". Điều đó có thể đúng với bạn, nhưng không đúng với đa số mọi người! Để chứng minh, hãy dựng một trực quan hóa từ 3 triệu tweet có nhắc đến "#sb". Lưu ý là biểu đồ này không tuân theo định luật Zipf một cách hoàn hảo: tất cả các tweet đều dùng cùng một hashtag nên dữ liệu hơi lệch. Dù vậy, biểu đồ bạn tạo sẽ cho thấy đường giảm rất dốc, phản ánh sự đa dạng từ vựng thấp trong hàng triệu tweet. Vì thế việc dùng từ điển cảm xúc cho phân tích ngôn ngữ tự nhiên có cơ sở khoa học!
Trong bài này, bạn sẽ dùng gói metricsgraphics. Dù tác giả gợi ý dùng toán tử pipe %>%, bạn sẽ xây dựng đồ họa theo từng bước để hiểu các thành phần của biểu đồ. Hàm chính của gói metricsgraphics là mjs_plot(), bước đầu để tạo một biểu đồ JavaScript. Từ đó, bạn có thể thêm các lớp khác lên trên biểu đồ.
Một quy trình mẫu với metricsgraphics không dùng toán tử %>% như sau:
metro_plot <- mjs_plot(data, x = x_axis_name, y = y_axis_name, show_rollover_text = FALSE)
metro_plot <- mjs_line(metro_plot)
metro_plot <- mjs_add_line(metro_plot, line_one_values)
metro_plot <- mjs_add_legend(metro_plot, legend = c('names', 'more_names'))
metro_plot
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
- Dùng
head()trênsb_wordsđể xem các từ đứng đầu. - Tạo cột mới
expectationsbằng cách chia tần suất lớn nhất,freq[1], cho cộtrank. - Khởi tạo
sb_plotbằngmjs_plot().- Truyền vào
sb_wordsvớix = rankvày = freq. - Bên trong
mjs_plot()đặtshow_rollover_textlàFALSE.
- Truyền vào
- Ghi đè
sb_plotbằngmjs_line()và truyền vàosb_plot. - Bổ sung vào
sb_plotvớimjs_add_line().- Truyền vào đối tượng
sb_plottrước đó và vectorexpectations.
- Truyền vào đối tượng
- Thêm chú giải vào một đối tượng
sb_plotmới bằngmjs_add_legend().- Truyền vào đối tượng
sb_plottrước đó - Nhãn chú giải gồm
"Frequency"và"Expectation".
- Truyền vào đối tượng
- Gọi
sb_plotđể hiển thị biểu đồ. Di chuột lên một điểm để đồng thời làm nổi bật một điểmfreqvàExpectation. Sức mạnh của JavaScript!
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.
# Examine sb_words
___
# Create expectations
sb_words$expectations <- sb_words %$%
{___[___] / ___}
# Create metrics plot
sb_plot <- ___(___, x = ___, y = ___, ___ = ___)
# Add 1st line
sb_plot <- ___(___)
# Add 2nd line
sb_plot <- ___(___, ___)
# Add legend
sb_plot <- ___(___, legend = c("___", "___"))
# Display plot
sb_plot