ÎncepețiÎncepe gratuit

DTM vs. matrice tidytext

Tidyverse este o colecție de pachete R care împărtășesc o filozofie comună și sunt concepute să funcționeze împreună. Acest capitol prezintă câteva funcții tidy pentru manipularea datelor. În acest exercițiu vei compara un DTM cu un cadru de date tidy numit tibble. În cadrul tidyverse, fiecare observație ocupă un singur rând dintr-un cadru de date. Astfel, lucrul cu diferite pachete devine mult mai simplu, deoarece structura fundamentală a datelor este aceeași. Anumite părți ale acestui curs se bazează în mare măsură pe pachetul tidytext, care folosește această organizare a datelor.

De exemplu, s-ar putea să fii deja familiarizat cu operatorul %>% din pachetul magrittr. Acesta transmite obiectul din stânga sa ca prim argument al funcției din dreapta sa.

În exemplul de mai jos, obiectul data este transmis către function1(). Observă cum parantezele sunt goale. Rezultatul este transmis mai departe către function2(). La ultima funcție nu mai este nevoie să adaugi obiectul data, deoarece acesta a fost transmis din rezultatul lui function1(). Totuși, adaugi un parametru fictiv, some_parameter, setat la TRUE. Aceste transmisii succesive creează obiectul final.

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

Pentru a folosi operatorul %>%, nu trebuie neapărat să încarci pachetul magrittr, deoarece acesta este disponibil și în pachetul dplyr. dplyr conține, de asemenea, funcțiile inner_join() (despre care vei afla mai multe ulterior) și count() pentru numărarea datelor. Ultima funcție de care vei avea nevoie este mutate(), pentru a crea variabile noi sau a le modifica pe cele existente.

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

sau pentru a modifica o variabilă

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

Vei folosi și funcția pivot_wider() din tidyr pentru a organiza datele astfel încât fiecare rând să reprezinte o linie din carte, iar valorile pozitive și negative să apară ca coloane.

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

Pentru a converti un DTM în format tidy, folosește tidy() din pachetul broom.

tidy_format <- tidy(Document_Term_Matrix)

Acest exercițiu folosește text din tragedia greacă Agamemnon. Agamemnon este o poveste despre infidelitate conjugală și crimă. Poți descărca o copie aici.

Acest exercițiu face parte din cursul

Analiza sentimentelor în R

Vezi cursul

Instrucțiuni pentru exercițiu

Am creat deja un DTM curat numit ag_dtm pentru acest exercițiu.

  • Creează ag_dtm_m aplicând as.matrix() pe ag_dtm.
  • Folosind parantezele [ și ], indexează ag_dtm_m la rândul 2206.
  • Aplică tidy() pe ag_dtm. Numește noul obiect ag_tidy.
  • Examinează ag_tidy la rândurile [831:835, ] pentru a compara formatul tidy. Vei vedea un cuvânt frecvent din partea examinată a lui ag_dtm_m la pasul 2.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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[___, ]
Editează și rulează codul