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

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 metricsgraphicsmjs_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

Xem khóa học

Hướng dẫn bài tập

  • Dùng head() trên sb_words để xem các từ đứng đầu.
  • Tạo cột mới expectations bằng cách chia tần suất lớn nhất, freq[1], cho cột rank.
  • Khởi tạo sb_plot bằng mjs_plot().
    • Truyền vào sb_words với x = ranky = freq.
    • Bên trong mjs_plot() đặt show_rollover_textFALSE.
  • Ghi đè sb_plot bằng mjs_line() và truyền vào sb_plot.
  • Bổ sung vào sb_plot với mjs_add_line().
    • Truyền vào đối tượng sb_plot trước đó và vector expectations.
  • Thêm chú giải vào một đối tượng sb_plot mới bằng mjs_add_legend().
    • Truyền vào đối tượng sb_plot trước đó
    • Nhãn chú giải gồm "Frequency""Expectation".
  • 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ểm freqExpectation. 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
Chỉnh sửa và Chạy Mã