ÎncepețiÎncepe gratuit

Unde poți observa legea lui Zipf?

Deși Zipf a observat o scădere abruptă și previzibilă în utilizarea cuvintelor, este posibil să nu fii convins de legea sa. Poate te gândești: „Eu cunosc o mulțime de cuvinte și am un vocabular aparte". Poate că da, dar același lucru nu se poate spune despre majoritatea oamenilor! Pentru a demonstra asta, vom construi o vizualizare bazată pe 3 milioane de tweet-uri care conțin „#sb". Reține că vizualizarea nu respectă perfect legea lui Zipf — toate tweet-urile au menționat același hashtag, deci datele sunt ușor distorsionate. Chiar și așa, graficul pe care îl vei crea arată o scădere abruptă, evidențiind o diversitate lexicală redusă în milioanele de tweet-uri. Prin urmare, există o bază științifică solidă pentru utilizarea lexicoanelor în analiza limbajului natural!

În acest exercițiu, vei folosi pachetul metricsgraphics. Deși autorul recomandă utilizarea operatorului pipe %>%, vei construi graficul pas cu pas pentru a înțelege mai bine fiecare componentă. Funcția principală a pachetului metricsgraphics este mjs_plot(), care reprezintă primul pas în crearea unui grafic JavaScript. Odată ce ai această bază, poți adăuga straturi suplimentare deasupra graficului.

Mai jos este un exemplu de flux de lucru cu metricsgraphics fără operatorul %>%:

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

Acest exercițiu face parte din cursul

Analiza sentimentelor în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește head() pe sb_words pentru a examina cele mai frecvente cuvinte.
  • Creează o nouă coloană expectations împărțind cea mai mare frecvență a cuvintelor, freq[1], la coloana rank.
  • Inițializează sb_plot folosind mjs_plot().
    • Transmite sb_words cu x = rank și y = freq.
    • În cadrul mjs_plot() setează show_rollover_text la FALSE.
  • Suprascrie sb_plot folosind mjs_line() și transmite sb_plot.
  • Adaugă la sb_plot cu mjs_add_line().
    • Transmite obiectul sb_plot anterior și vectorul expectations.
  • Adaugă o legendă pe noul obiect sb_plot folosind mjs_add_legend().
    • Transmite obiectul sb_plot anterior.
    • Etichetele legendei trebuie să fie "Frequency" și "Expectation".
  • Apelează sb_plot pentru a afișa graficul. Trece cu mouse-ul peste un punct pentru a evidenția simultan câte un punct din freq și din Expectation. Aceasta este puterea JavaScript-ului!

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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
Editează și rulează codul