CommencerCommencez gratuitement

DTM vs. matrice tidytext

Le tidyverse est un ensemble de packages R qui partagent des principes communs et sont conçus pour fonctionner ensemble. Ce chapitre présente quelques fonctions « tidy » pour manipuler des données. Dans cet exercice, vous allez comparer un DTM à un tableau de texte « tidy » appelé tibble.
Dans le tidyverse, chaque observation correspond à une seule ligne d'un data frame. Cela facilite l'utilisation de différents packages puisque la structure de données de base est la même. Certaines parties de ce cours s'appuient largement sur le package tidytext qui utilise cette organisation des données.

Par exemple, vous connaissez peut-être déjà l'opérateur %>% du package magrittr. Il transmet l'objet situé à sa gauche comme premier argument de la fonction située à sa droite.

Dans l'exemple ci-dessous, vous transmettez l'objet data à function1(). Remarquez que les parenthèses sont vides. Le résultat est ensuite transmis à function2(). Dans la dernière fonction, vous n'avez pas besoin d'ajouter l'objet data car il a été transmis depuis la sortie de function1(). En revanche, vous ajoutez un paramètre fictif, some_parameter, avec la valeur TRUE. Ces enchaînements via le pipe aboutissent finalement à la création de object.

object <- data %>% 
           function1() %>%
           function2(some_parameter = TRUE)

Pour utiliser l'opérateur %>%, vous n'avez pas nécessairement besoin de charger le package magrittr, puisqu'il est aussi disponible dans le package dplyr. dplyr contient également les fonctions inner_join() (que vous étudierez plus tard) et count pour comptabiliser des données. La dernière fonction dont vous aurez besoin est mutate() pour créer de nouvelles variables ou modifier des variables existantes.

object <- data %>%
  mutate(new_Var_name = Var1 - Var2)

ou pour modifier une variable

object <- data %>%
  mutate(Var1 = as.factor(Var1))

Vous utiliserez aussi la fonction pivot_wider() de tidyr pour organiser les données avec une ligne par vers du livre et les valeurs positives et négatives en colonnes.

index negative positive
42 2 0
43 0 1
44 1 0

Pour convertir un DTM en format « tidy », utilisez tidy() du package broom.

tidy_format <- tidy(Document_Term_Matrix)

Cet exercice utilise un texte tiré de la tragédie grecque, Agamemnon. Agamemnon raconte une histoire d'infidélité conjugale et de meurtre. Vous pouvez en télécharger un exemplaire ici.

Cet exercice fait partie du cours

<cours>Analyse de sentiments en R</cours>
Voir le cours

Instructions de l’exercice

Nous avons déjà créé un DTM nettoyé nommé ag_dtm pour cet exercice.

  • Créez ag_dtm_m en appliquant as.matrix() à ag_dtm.
  • À l'aide des crochets [ et ], indexez ag_dtm_m à la ligne 2206.
  • Appliquez tidy() à ag_dtm. Nommez le nouvel objet ag_tidy.
  • Examinez ag_tidy aux lignes [831:835, ] pour comparer le format « tidy ». Vous verrez un mot commun avec la partie examinée de ag_dtm_m à l'étape 2.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# As matrix
ag_dtm_m <- ___

# Examine line 2206 and columns 245:250
ag_dtm_m[___, 245:250]

# Tidy up the DTM
ag_tidy <- ___

# Examine tidy with a word you saw
ag_tidy[___, ]
Modifier et exécuter le code