เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

สังเกตกฎของ Zipf ได้จากที่ไหน?

แม้ Zipf จะสังเกตว่าการใช้คำมีแนวโน้มลดลงอย่างชันและคาดเดาได้ แต่บางคนอาจยังไม่เชื่อในกฎของ Zipf อาจมีความคิดว่า "ฉันรู้จักคำศัพท์มากมาย และมีคลังคำที่หลากหลาย" ซึ่งอาจเป็นความจริงสำหรับบางคน แต่ไม่ใช่สำหรับคนส่วนใหญ่! เพื่อพิสูจน์เรื่องนี้ มาสร้างภาพจากทวีต 3 ล้านรายการที่กล่าวถึง "#sb" กัน โดยพึงระลึกไว้ว่าภาพที่ได้อาจไม่สอดคล้องกับกฎของ Zipf อย่างสมบูรณ์ เนื่องจากทวีตทั้งหมดใช้แฮชแท็กเดียวกัน จึงมีความเบี่ยงเบนอยู่บ้าง อย่างไรก็ตาม กราฟที่จะสร้างขึ้นแสดงให้เห็นถึงการลดลงอย่างชัน ซึ่งสะท้อนถึงความหลากหลายทางคำศัพท์ที่ต่ำในกลุ่มทวีตหลายล้านรายการ นี่จึงเป็นเหตุผลทางวิทยาศาสตร์ที่สนับสนุนการใช้ lexicon ในการวิเคราะห์ภาษาธรรมชาติ!

ในแบบฝึกหัดนี้จะใช้แพ็กเกจ metricsgraphics แม้ผู้พัฒนาแนะนำให้ใช้ pipe operator %>% แต่เราจะสร้างกราฟทีละขั้นตอนเพื่อทำความเข้าใจแต่ละส่วนของกราฟ ฟังก์ชันหลักของแพ็กเกจ metricsgraphics คือ mjs_plot() ซึ่งเป็นจุดเริ่มต้นในการสร้าง JavaScript plot เมื่อได้กราฟพื้นฐานแล้ว จึงค่อยเพิ่ม layer อื่น ๆ ทับลงไป

ตัวอย่าง workflow ของ metricsgraphics แบบไม่ใช้ operator %>% มีดังนี้:

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

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์ความรู้สึกใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ใช้ head() กับ sb_words เพื่อดูคำที่พบบ่อยที่สุด
  • สร้างคอลัมน์ใหม่ชื่อ expectations โดยหาร freq[1] (ความถี่ของคำที่พบมากที่สุด) ด้วยคอลัมน์ rank
  • เริ่มสร้าง sb_plot โดยใช้ mjs_plot()
    • ส่ง sb_words โดยกำหนด x = rank และ y = freq
    • ภายใน mjs_plot() ให้ตั้งค่า show_rollover_text เป็น FALSE
  • เขียนทับ sb_plot โดยใช้ mjs_line() แล้วส่ง sb_plot เข้าไป
  • เพิ่มข้อมูลใน sb_plot ด้วย mjs_add_line()
    • ส่ง sb_plot object ก่อนหน้าและเวกเตอร์ expectations เข้าไป
  • เพิ่ม legend ใน sb_plot object ใหม่โดยใช้ mjs_add_legend()
    • ส่ง sb_plot object ก่อนหน้าเข้าไป
    • ป้ายกำกับ legend ควรประกอบด้วย "Frequency" และ "Expectation"
  • เรียก sb_plot เพื่อแสดงกราฟ ลองนำเมาส์ไปวางเหนือจุดใดจุดหนึ่งเพื่อไฮไลต์จุดของ freq และ Expectation พร้อมกัน นี่คือความสามารถของ JavaScript!

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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
แก้ไขและรันโค้ด