IniziaInizia gratis

DTM vs. matrice tidytext

Il tidyverse è una raccolta di pacchetti R che condividono le stesse filosofie e sono progettati per lavorare insieme. In questo capitolo vedrai alcune funzioni tidy per manipolare i dati. In questo esercizio confronterai un DTM con un data frame di testo in formato tidy chiamato tibble.
Nel tidyverse, ogni osservazione corrisponde a una singola riga di un data frame. Questo rende più semplice lavorare in pacchetti diversi, dato che la struttura dati di base è la stessa. Parti di questo corso si basano ampiamente sul pacchetto tidytext, che usa proprio questa organizzazione dei dati.

Per esempio, potresti già conoscere l'operatore %>% del pacchetto magrittr. Questo passa l'oggetto alla sua sinistra come primo argomento della funzione alla sua destra.

Nell'esempio qui sotto, stai passando l'oggetto data a function1(). Nota che le parentesi sono vuote. Il risultato viene poi passato a function2(). Nell'ultima funzione non devi aggiungere l'oggetto data perché è stato inoltrato dall'output di function1(). Aggiungi però un parametro fittizio, some_parameter, impostato a TRUE. Queste pipe, una dopo l'altra, creano infine l'object.

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

Per usare l'operatore %>%, non è strettamente necessario caricare il pacchetto magrittr, perché è disponibile anche in dplyr. dplyr contiene anche le funzioni inner_join() (che vedrai meglio più avanti) e count() per contare i dati. L'ultima funzione di cui avrai bisogno è mutate() per creare nuove variabili o modificare quelle esistenti.

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

oppure per modificare una variabile

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

Userai anche la funzione pivot_wider() di tidyr per organizzare i dati con ogni riga corrispondente a una riga del libro e i valori positivi e negativi come colonne.

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

Per trasformare un DTM in formato tidy usa tidy() del pacchetto broom.

tidy_format <- tidy(Document_Term_Matrix)

Questo esercizio utilizza un testo tratto dalla tragedia greca, Agamemnon. Agamemnon è una storia di infedeltà coniugale e omicidio. Puoi scaricarne una copia qui.

Questo esercizio fa parte del corso

Sentiment Analysis in R

Visualizza il corso

Istruzioni dell'esercizio

Abbiamo già creato un DTM pulito chiamato ag_dtm per questo esercizio.

  • Crea ag_dtm_m applicando as.matrix() a ag_dtm.
  • Usando le parentesi, [ e ], indica in ag_dtm_m la riga 2206.
  • Applica tidy() a ag_dtm. Chiama il nuovo oggetto ag_tidy.
  • Esamina ag_tidy alle righe [831:835, ] per confrontare il formato tidy. Vedrai una parola in comune con la parte esaminata di ag_dtm_m al punto 2.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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[___, ]
Modifica ed esegui il codice