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
Instrucțiuni pentru exercițiu
Am creat deja un DTM curat numit ag_dtm pentru acest exercițiu.
- Creează
ag_dtm_maplicândas.matrix()peag_dtm. - Folosind parantezele
[și], indexeazăag_dtm_mla rândul2206. - Aplică
tidy()peag_dtm. Numește noul obiectag_tidy. - Examinează
ag_tidyla rândurile[831:835, ]pentru a compara formatul tidy. Vei vedea un cuvânt frecvent din partea examinată a luiag_dtm_mla 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[___, ]