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
Istruzioni dell'esercizio
- Usa
head()susb_wordsper rivedere le parole principali. - Crea una nuova colonna
expectationsdividendo la frequenza della parola più alta,freq[1], per la colonnarank. - Avvia
sb_plotusandomjs_plot().- Passa
sb_wordsconx = rankey = freq. - All'interno di
mjs_plot()impostashow_rollover_textsuFALSE.
- Passa
- Sovrascrivi
sb_plotusandomjs_line()e passasb_plot. - Aggiungi a
sb_plotconmjs_add_line().- Passa il precedente oggetto
sb_plote il vettoreexpectations.
- Passa il precedente oggetto
- Inserisci una legenda su un nuovo oggetto
sb_plotusandomjs_add_legend().- Passa il precedente oggetto
sb_plot - Le etichette della legenda devono essere
"Frequency"e"Expectation".
- Passa il precedente oggetto
- Chiama
sb_plotper visualizzare il grafico. Passa il mouse su un punto per evidenziare contemporaneamente un puntofreqeExpectation. 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