Où pouvez-vous observer la loi de Zipf?
Même si Zipf a observé une baisse marquée et prévisible de l'usage des mots, vous n'êtes peut-être pas convaincu par la loi de Zipf. Vous vous dites peut-être « Je connais plein de mots et j'ai un vocabulaire distinctif ». C'est peut-être vrai pour vous, mais ce n'est pas le cas de la plupart des gens! Pour le démontrer, construisons un visuel à partir de 3 millions de gazouillis mentionnant « #sb ». Gardez en tête que le visuel ne suit pas parfaitement la loi de Zipf : tous les gazouillis contiennent le même mot-clic, donc les résultats sont un peu biaisés. Cela dit, le visuel que vous allez créer montre une forte décroissance révélant une faible diversité lexicale parmi des millions de gazouillis. Il y a donc une base scientifique à l'utilisation de lexiques pour l'analyse du langage naturel!
Dans cet exercice, vous utiliserez le paquet metricsgraphics. Même si l'auteur recommande d'utiliser l'opérateur de tuyauterie %>%, vous allez construire le graphique étape par étape pour découvrir les différentes composantes du tracé. La fonction principale du paquet metricsgraphics est mjs_plot(), le point de départ pour créer un graphique JavaScript. À partir de là, vous pouvez ajouter d'autres couches par-dessus le graphique.
Voici un exemple de déroulement avec metricsgraphics sans utiliser l'opérateur %>% :
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
Cette activité fait partie du cours
Analyse de sentiment en R
Instructions de l’exercice
- Utilisez
head()sursb_wordspour passer en revue les mots les plus fréquents. - Créez une nouvelle colonne
expectationsen divisant la fréquence la plus élevée,freq[1], par la colonnerank. - Initialisez
sb_plotavecmjs_plot().- Passez
sb_wordsavecx = rankety = freq. - Dans
mjs_plot(), réglezshow_rollover_textàFALSE.
- Passez
- Écrasez
sb_ploten utilisantmjs_line()et passezsb_plot. - Ajoutez à
sb_plotavecmjs_add_line().- Passez l'objet
sb_plotprécédent et le vecteurexpectations.
- Passez l'objet
- Placez une légende sur un nouvel objet
sb_plotà l'aide demjs_add_legend().- Passez l'objet
sb_plotprécédent. - Les étiquettes de la légende doivent être
"Frequency"et"Expectation".
- Passez l'objet
- Appelez
sb_plotpour afficher le graphique. Survolez un point avec la souris pour mettre en évidence simultanément un pointfreqet un pointExpectation. Vive la magie de JavaScript!
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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