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
Instrucțiuni pentru exercițiu
- Folosește
head()pesb_wordspentru a examina cele mai frecvente cuvinte. - Creează o nouă coloană
expectationsîmpărțind cea mai mare frecvență a cuvintelor,freq[1], la coloanarank. - Inițializează
sb_plotfolosindmjs_plot().- Transmite
sb_wordscux = rankșiy = freq. - În cadrul
mjs_plot()seteazăshow_rollover_textlaFALSE.
- Transmite
- Suprascrie
sb_plotfolosindmjs_line()și transmitesb_plot. - Adaugă la
sb_plotcumjs_add_line().- Transmite obiectul
sb_plotanterior și vectorulexpectations.
- Transmite obiectul
- Adaugă o legendă pe noul obiect
sb_plotfolosindmjs_add_legend().- Transmite obiectul
sb_plotanterior. - Etichetele legendei trebuie să fie
"Frequency"și"Expectation".
- Transmite obiectul
- Apelează
sb_plotpentru a afișa graficul. Trece cu mouse-ul peste un punct pentru a evidenția simultan câte un punct dinfreqși dinExpectation. 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