DTM a macierz tidytext
Tidyverse to zbiór pakietów R opartych na wspólnych zasadach i zaprojektowanych do współpracy. Ten rozdział omawia funkcje z tidyverse do manipulowania danymi. W tym ćwiczeniu porównasz DTM z ramką danych w formacie tidy, zwaną tibble.
W tidyverse każda obserwacja stanowi jeden wiersz w ramce danych. Dzięki temu praca w różnych pakietach jest znacznie prostsza, ponieważ podstawowa struktura danych pozostaje taka sama. Część tego kursu korzysta intensywnie z pakietu tidytext, który opiera się właśnie na takim sposobie organizacji danych.
Możliwe, że znasz już operator %>% z pakietu magrittr. Przekazuje on obiekt po swojej lewej stronie jako pierwszy argument funkcji po prawej stronie.
W poniższym przykładzie obiekt data jest przekazywany do function1(). Zwróć uwagę, że nawiasy są puste. Wynik jest z kolei przekazywany do function2(). W ostatniej funkcji nie musisz ponownie podawać obiektu data, bo został on przekazany z wyniku function1(). Dodajesz natomiast fikcyjny parametr some_parameter ustawiony na TRUE. Łańcuch takich przekazań tworzy ostatecznie obiekt object.
object <- data %>%
function1() %>%
function2(some_parameter = TRUE)
Aby korzystać z operatora %>%, nie musisz ładować pakietu magrittr – jest on również dostępny w pakiecie dplyr.
dplyr zawiera także funkcje inner_join() (o której dowiesz się więcej później) oraz count() do zliczania danych. Ostatnia potrzebna ci funkcja to mutate(), służąca do tworzenia nowych zmiennych lub modyfikowania istniejących.
object <- data %>%
mutate(new_Var_name = Var1 - Var2)
lub do modyfikacji zmiennej:
object <- data %>%
mutate(Var1 = as.factor(Var1))
Skorzystasz również z funkcji pivot_wider() z pakietu tidyr, aby zorganizować dane tak, by każdy wiersz odpowiadał jednej linii książki, a wartości pozytywne i negatywne stanowiły osobne kolumny.
| index | negative | positive |
|---|---|---|
| 42 | 2 | 0 |
| 43 | 0 | 1 |
| 44 | 1 | 0 |
Aby przekształcić DTM do formatu tidy, użyj funkcji tidy() z pakietu broom.
tidy_format <- tidy(Document_Term_Matrix)
To ćwiczenie korzysta z tekstu greckiej tragedii Agamemnon – opowieści o zdradzie małżeńskiej i morderstwie. Kopię możesz pobrać tutaj.
To ćwiczenie jest częścią kursu
Analiza sentymentu w R
Instrukcje do ćwiczenia
Na potrzeby tego ćwiczenia przygotowaliśmy już gotowy DTM o nazwie ag_dtm.
- Utwórz
ag_dtm_m, stosując funkcjęas.matrix()doag_dtm. - Korzystając z nawiasów kwadratowych
[i], pobierz zag_dtm_mwiersz2206. - Zastosuj
tidy()doag_dtm. Nowy obiekt nazwijag_tidy. - Zbadaj
ag_tidydla wierszy[831:835, ], aby porównać format tidy. Zobaczysz często powtarzające się słowo z fragmentuag_dtm_msprawdzonego w kroku 2.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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[___, ]