CommencezCommencez gratuitement

DTM vs matrice tidytext

Le tidyverse est un ensemble de progiciels R qui partagent des principes communs et sont conçus pour fonctionner ensemble. Ce chapitre couvre certaines fonctions « tidy » pour manipuler des données. Dans cet exercice, vous comparerez une DTM à un cadre de données de texte « tidy » appelé tibble.
Dans le tidyverse, chaque observation correspond à une seule ligne d'un cadre de données. Cela facilite grandement le travail avec différents progiciels, puisque la structure de données fondamentale est la même. Une partie de ce cours s'inspire largement du progiciel tidytext, qui utilise cette organisation des données.

Par exemple, vous connaissez peut-être déjà l'opérateur %>% du progiciel magrittr. Celui-ci achemine l'objet situé à sa gauche en tant que premier argument de la fonction située à sa droite.

Dans l'exemple ci-dessous, vous acheminez l'objet data vers function1(). Remarquez que les parenthèses sont vides. Cet objet est ensuite acheminé vers function2(). Dans la dernière fonction, vous n'avez pas à ajouter l'objet data puisqu'il a été transmis à partir du résultat de function1(). Cependant, vous ajoutez un paramètre fictif, some_parameter, à TRUE. Ces enchaînements de tuyaux finissent par créer l'object.

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

Pour utiliser l'opérateur %>%, vous n'avez pas nécessairement besoin de charger le progiciel magrittr, puisqu'il est aussi disponible dans le progiciel dplyr. dplyr contient aussi les fonctions inner_join() (que vous verrez plus en détail plus tard) et count() pour comptabiliser les données. La dernière fonction dont vous aurez besoin est mutate() pour créer de nouvelles variables ou modifier celles qui existent déjà.

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, où chaque ligne correspond à une ligne du livre et où les valeurs positives et négatives sont des colonnes.

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

Pour transformer une DTM en format « tidy », utilisez tidy() du progiciel broom.

tidy_format <- tidy(Document_Term_Matrix)

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

Cette activité fait partie du cours

Analyse de sentiment en R

Voir le cours

Instructions de l’exercice

Nous avons déjà créé une DTM propre appelée 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 à la portion 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