Kom igångKom igång gratis

DTM vs. tidytext-matris

Tidyverse är en samling R-paket som delar gemensamma principer och är utformade för att fungera tillsammans. Det här kapitlet tar upp några tidy-funktioner för att bearbeta data. I den här övningen jämför du en DTM med en tidy text-dataram som kallas tibble.

Inom tidyverse är varje observation en enskild rad i en dataram. Det gör det mycket enklare att arbeta i olika paket, eftersom den grundläggande datastrukturen är densamma. Delar av den här kursen bygger till stor del på paketet tidytext, som använder den här dataorganisationen.

Du är kanske redan bekant med operatorn %>% från paketet magrittr. Den skickar vidare ett objekt på vänster sida som första argument till funktionen på höger sida.

I exemplet nedan skickar du vidare objektet data till function1(). Lägg märke till att parenteserna är tomma. Resultatet skickas sedan vidare till function2(). I den sista funktionen behöver du inte ange data-objektet, eftersom det redan skickats vidare från utdata från function1(). Däremot anger du en fiktiv parameter, some_parameter, som TRUE. Dessa pipe-vidarebefordran skapar till slut object.

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

För att använda operatorn %>% behöver du inte nödvändigtvis läsa in paketet magrittr, eftersom den också finns tillgänglig i paketet dplyr. dplyr innehåller även funktionerna inner_join() (som du lär dig mer om senare) och count() för att räkna data. Den sista funktionen du behöver är mutate() för att skapa nya variabler eller ändra befintliga.

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

eller för att ändra en variabel

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

Du kommer också att använda funktionen pivot_wider() från tidyr för att organisera data så att varje rad motsvarar en rad i boken, med positiva och negativa värden som kolumner.

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

För att konvertera en DTM till tidy-format använder du tidy() från paketet broom.

tidy_format <- tidy(Document_Term_Matrix)

Den här övningen använder text från den grekiska tragedin Agamemnon. Agamemnon är en berättelse om otrohet och mord. Du kan ladda ned en kopia här.

Den här övningen är en del av kursen

Sentimentanalys i R

Visa kurs

Övningsinstruktioner

Vi har redan skapat en ren DTM som heter ag_dtm för den här övningen.

  • Skapa ag_dtm_m genom att tillämpa as.matrix()ag_dtm.
  • Använd hakparenteser, [ och ], för att indexera ag_dtm_m till rad 2206.
  • Tillämpa tidy()ag_dtm. Kalla det nya objektet ag_tidy.
  • Undersök ag_tidy vid raderna [831:835, ] för att jämföra tidy-formatet. Du kommer att se ett vanligt ord från den undersökta delen av ag_dtm_m i steg 2.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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[___, ]
Redigera och kör kod