IniziaInizia gratis

Dove puoi osservare la legge di Zipf?

Anche se Zipf ha osservato un calo ripido e prevedibile nell'uso delle parole, potresti non essere convinto della legge di Zipf. Potresti pensare: "Conosco un sacco di parole e ho un vocabolario distintivo". Può darsi, ma lo stesso non vale per la maggior parte delle persone! Per dimostrarlo, costruiamo una visualizzazione a partire da 3 milioni di tweet che menzionano "#sb". Tieni presente che la visualizzazione non segue perfettamente la legge di Zipf: tutti i tweet menzionano lo stesso hashtag, quindi è un po' distorta. Detto ciò, il grafico che creerai mostra un calo molto marcato, indicando una bassa diversità lessicale tra milioni di tweet. Insomma, c'è della scienza dietro l'uso dei lessici per l'analisi del linguaggio naturale!

In questo esercizio userai il pacchetto metricsgraphics. Anche se l'autore suggerisce di usare l'operatore pipe %>%, costruirai il grafico passo dopo passo per conoscere i vari aspetti del plot. La funzione principale del pacchetto metricsgraphics è mjs_plot(), che rappresenta il primo passo per creare un grafico JavaScript. Una volta creato, puoi aggiungere altri layer sopra il grafico.

Di seguito un esempio di workflow con metricsgraphics senza usare l'operatore %>%:

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

Questo esercizio fa parte del corso

Sentiment Analysis in R

Visualizza il corso

Istruzioni dell'esercizio

  • Usa head() su sb_words per rivedere le parole principali.
  • Crea una nuova colonna expectations dividendo la frequenza della parola più alta, freq[1], per la colonna rank.
  • Avvia sb_plot usando mjs_plot().
    • Passa sb_words con x = rank e y = freq.
    • All'interno di mjs_plot() imposta show_rollover_text su FALSE.
  • Sovrascrivi sb_plot usando mjs_line() e passa sb_plot.
  • Aggiungi a sb_plot con mjs_add_line().
    • Passa il precedente oggetto sb_plot e il vettore expectations.
  • Inserisci una legenda su un nuovo oggetto sb_plot usando mjs_add_legend().
    • Passa il precedente oggetto sb_plot
    • Le etichette della legenda devono essere "Frequency" e "Expectation".
  • Chiama sb_plot per visualizzare il grafico. Passa il mouse su un punto per evidenziare contemporaneamente un punto freq e Expectation. La magia di JavaScript!

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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
Modifica ed esegui il codice