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. - За допомогою дужок
[і]проіндексуйтеag_dtm_mна рядок2206. - Застосуйте
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[___, ]