НачатьНачать бесплатно

DTM и матрица tidytext

Tidyverse — это набор пакетов R, объединённых общей философией и разработанных для совместной работы. В этой главе рассматриваются функции tidy для работы с данными. В данном упражнении вы сравните DTM с фреймом данных в формате tidy — так называемым tibble.

В экосистеме tidyverse каждое наблюдение представлено отдельной строкой фрейма данных. Это значительно упрощает работу с различными пакетами, поскольку базовая структура данных остаётся единой. Часть этого курса опирается на пакет tidytext, который использует именно такой подход к организации данных.

Возможно, вы уже знакомы с оператором %>% из пакета magrittr. Он передаёт объект, стоящий слева, в качестве первого аргумента функции справа.

В примере ниже объект data передаётся в function1(). Обратите внимание: скобки пусты. Результат, в свою очередь, передаётся в function2(). В последней функции не нужно снова указывать data, так как он уже передан из результата function1(). Однако здесь добавляется дополнительный параметр some_parameter со значением TRUE. Цепочка таких передач в итоге создаёт объект object.

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

Для использования оператора %>% не обязательно загружать пакет magrittr — он также доступен в пакете dplyr. dplyr содержит функции inner_join() (о ней вы узнаете позже) и count() для подсчёта данных. Ещё одна полезная функция — mutate() — позволяет создавать новые переменные или изменять существующие.

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

или для изменения существующей переменной:

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

Также вы воспользуетесь функцией pivot_wider() из пакета tidyr, чтобы организовать данные так, чтобы каждая строка соответствовала одной строке книги, а столбцы содержали положительные и отрицательные значения.

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

Чтобы преобразовать DTM в формат tidy, используйте функцию tidy() из пакета broom.

tidy_format <- tidy(Document_Term_Matrix)

В этом упражнении используется текст греческой трагедии Агамемнон — история о супружеской измене и убийстве. Скачать текст можно здесь.

Это упражнение является частью курса

Анализ тональности в R

Посмотреть курс

Инструкции к упражнению

Для этого упражнения уже подготовлен очищенный DTM с именем ag_dtm.

  • Создайте ag_dtm_m, применив as.matrix() к ag_dtm.
  • С помощью скобок [ и ] обратитесь к строке 2206 матрицы ag_dtm_m.
  • Примените tidy() к ag_dtm и сохраните результат в объект ag_tidy.
  • Изучите ag_tidy по строкам [831:835, ], чтобы сравнить формат tidy. Вы увидите часто встречающееся слово из фрагмента ag_dtm_m, рассмотренного на шаге 2.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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[___, ]
Редактировать и запускать код