DTM vs. tidytext matrisi
tidyverse, ortak bir felsefeyi paylaşan ve birlikte çalışacak şekilde tasarlanmış R paketlerinden oluşur. Bu bölümde veriyi dönüştürmek için bazı tidy işlevlerini göreceksin. Bu egzersizde bir DTM ile tibble adı verilen tidy bir metin veri çerçevesini karşılaştıracaksın.
Tidyverse içinde, her gözlem veri çerçevesinde tek bir satırdır. Bu, temel veri yapısı aynı olduğundan farklı paketlerle çalışmayı çok daha kolay hale getirir. Bu dersin bazı kısımları, bu veri örgütlenmesini kullanan tidytext paketinden yoğun biçimde yararlanır.
Örneğin, magrittr paketinden %>% operatörüne zaten aşina olabilirsin. Bu operatör, solundaki nesneyi sağındaki fonksiyonun ilk argümanı olarak iletir.
Aşağıdaki örnekte, data nesnesini function1()'e iletiyorsun. Parantezlerin boş olduğuna dikkat et. Bu çıktı daha sonra function2()'ye iletilir. Son fonksiyonda data nesnesini eklemene gerek yoktur çünkü function1()'in çıktısından aktarılmıştır. Ancak, örnek bir parametre olan some_parameter'ı TRUE olarak eklersin. Bu pipe aktarımı sonunda object oluşturulur.
object <- data %>%
function1() %>%
function2(some_parameter = TRUE)
%>% operatörünü kullanmak için mutlaka magrittr paketini yüklemen gerekmez; çünkü dplyr paketi içinde de mevcuttur.
dplyr ayrıca (daha sonra daha çok öğreneceğin) inner_join() ve verileri saymak için count() işlevlerini de içerir. İhtiyacın olacak son işlev ise yeni değişkenler oluşturmak veya var olanları düzenlemek için mutate().
object <- data %>%
mutate(new_Var_name = Var1 - Var2)
ya da bir değişkeni dönüştürmek için
object <- data %>%
mutate(Var1 = as.factor(Var1))
Ayrıca, veriyi her satırı kitaptan bir satır olacak şekilde ve pozitif ile negatif değerler sütunlar olacak biçimde düzenlemek için tidyr'ın pivot_wider() işlevini kullanacaksın.
| index | negative | positive |
|---|---|---|
| 42 | 2 | 0 |
| 43 | 0 | 1 |
| 44 | 1 | 0 |
Bir DTM'i tidy formata çevirmek için broom paketindeki tidy() işlevini kullan.
tidy_format <- tidy(Document_Term_Matrix)
Bu egzersizdeki metin, Yunan trajedisi olan Agamemnon'dan alınmıştır. Agamemnon, evlilikte sadakatsizlik ve cinayet üzerine bir hikâyedir. Bir kopyasını buradan indirebilirsin.
Bu egzersiz
R ile Duygu Analizi
kursunun bir parçasıdırEgzersiz talimatları
Bu egzersiz için önceden temizlenmiş bir DTM olan ag_dtm'yi oluşturduk.
ag_dtm'yeas.matrix()uygulayarakag_dtm_moluştur.- Köşeli parantezleri
[ve]kullanarakag_dtm_m'de2206numaralı satırı indeksle. tidy()'yiag_dtm'ye uygula. Yeni nesneyiag_tidyolarak adlandır.- Tidy formatı karşılaştırmak için
ag_tidy'yi[831:835, ]satırlarında incele. 2. adımdaag_dtm_m'de incelediğin bölümdeki ortak bir kelimeyi burada da göreceksin.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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[___, ]