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[___, ]