CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Utilisez head() sur sb_words pour passer en revue les mots les plus fréquents.
  • Créez une nouvelle colonne expectations en divisant la fréquence la plus élevée, freq[1], par la colonne rank.
  • Initialisez sb_plot avec mjs_plot().
    • Passez sb_words avec x = rank et y = freq.
    • Dans mjs_plot(), réglez show_rollover_text à FALSE.
  • Écrasez sb_plot en utilisant mjs_line() et passez sb_plot.
  • Ajoutez à sb_plot avec mjs_add_line().
    • Passez l'objet sb_plot précédent et le vecteur expectations.
  • Placez une légende sur un nouvel objet sb_plot à l'aide de mjs_add_legend().
    • Passez l'objet sb_plot précédent.
    • Les étiquettes de la légende doivent être "Frequency" et "Expectation".
  • Appelez sb_plot pour afficher le graphique. Survolez un point avec la souris pour mettre en évidence simultanément un point freq et un point Expectation. 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
Modifier et exécuter le code