DTM vs. tidytext matice
Tidyverse je kolekce R balíčků, které sdílejí společné principy a jsou navrženy tak, aby spolupracovaly. Tato kapitola se věnuje tidy funkcím pro manipulaci s daty. V tomto cvičení porovnáš DTM s tidy textovým datovým rámcem, který se nazývá tibble.
V rámci tidyverse je každé pozorování jediným řádkem v datovém rámci. To výrazně usnadňuje práci v různých balíčcích, protože základní datová struktura je vždy stejná. Části tohoto kurzu vycházejí z balíčku tidytext, který toto uspořádání dat využívá.
Možná už znáš operátor %>% z balíčku magrittr. Ten předává objekt na levé straně jako první argument funkce na pravé straně.
V příkladu níže předáváš objekt data do funkce function1(). Všimni si, že závorky jsou prázdné. Výsledek se pak předá dál do function2(). V poslední funkci nemusíš uvádět objekt data, protože byl předán z výstupu function1(). Přidáváš ale fiktivní parametr some_parameter s hodnotou TRUE. Výsledkem celého řetězce je objekt object.
object <- data %>%
function1() %>%
function2(some_parameter = TRUE)
Ke použití operátoru %>% nemusíš nutně načítat balíček magrittr — je dostupný také v balíčku dplyr.
dplyr navíc obsahuje funkce inner_join() (o té se dozvíš více později) a count() pro počítání dat. Poslední funkce, kterou budeš potřebovat, je mutate() — slouží k vytváření nových proměnných nebo úpravě těch stávajících.
object <- data %>%
mutate(new_Var_name = Var1 - Var2)
nebo pro úpravu proměnné
object <- data %>%
mutate(Var1 = as.factor(Var1))
Použiješ také funkci pivot_wider() z balíčku tidyr, která data uspořádá tak, že každý řádek odpovídá jednomu řádku knihy a kladné a záporné hodnoty tvoří samostatné sloupce.
| index | negative | positive |
|---|---|---|
| 42 | 2 | 0 |
| 43 | 0 | 1 |
| 44 | 1 | 0 |
Pro převod DTM do tidy formátu použij funkci tidy() z balíčku broom.
tidy_format <- tidy(Document_Term_Matrix)
Toto cvičení pracuje s textem řecké tragédie Agamemnon. Jde o příběh o nevěře a vraždě. Kopii si můžeš stáhnout zde.
Toto cvičení je součástí kurzu
Sentiment Analysis in R
Pokyny k cvičení
Pro toto cvičení jsme už připravili čisté DTM s názvem ag_dtm.
- Vytvoř
ag_dtm_mtak, že naag_dtmaplikuješ funkcias.matrix(). - Pomocí hranatých závorek
[a]indexujag_dtm_mna řádek2206. - Aplikuj
tidy()naag_dtm. Nový objekt pojmenujag_tidy. - Prohlédni si
ag_tidyna řádcích[831:835, ]a porovnej tidy formát. Uvidíš běžné slovo z částiag_dtm_m, kterou jsi zkoumal/a v kroku 2.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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[___, ]