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

Эмоциональная интроспекция

В этом упражнении вы выйдете за рамки разделения текста на положительный и отрицательный. Вместо этого вы будете разбивать текст по каждой из 8 эмоций колеса эмоций Плутчика, чтобы построить визуализацию. Такой подход даёт более чёткое представление об использовании слов, поскольку каждое слово привязывается к конкретной эмоции, а не просто к позитивной или негативной окраске.

Используя субъективный лексикон tidytext"nrc", — вы выполняете inner_join() с вашим текстом. Лексикон "nrc" содержит 8 эмоций, а также классы слов «positive» и «negative». Поэтому после выполнения inner_join() необходимо удалить слова с этими метками. Один из способов — использовать отрицание ! вместе с grepl().

Функция grepl() ("Global Regular Expression Print Logical") возвращает TRUE или FALSE в зависимости от того, найден ли шаблон строки в каждой строке. В этом упражнении вы будете искать positive ИЛИ negative с помощью оператора |, обозначающего «или», как показано ниже. Обычно эта вертикальная черта находится над клавишей Enter на клавиатуре. Поскольку перед grepl() стоит отрицание !, значения TRUE и FALSE меняются местами — в результате строки с "positive|negative" исключаются, а не сохраняются.

Object <- tibble %>%
  filter(!grepl("positive|negative", column_name))

Далее вы применяете count() к найденным словам, а затем pivot_wider() для организации датафрейма.

comparison.cloud() требует, чтобы входные данные имели имена строк, поэтому вам нужно преобразовать результат в базовый data.frame из R, вызвав data.frame() с аргументом row.names.

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

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

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

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

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

moby_tidy <- moby %>%
  # Inner join to nrc lexicon
  ___(___, by = c("term" = "word")) %>% 
  # Drop positive or negative
  ___(!___("___", sentiment)) %>% 
  # Count by sentiment and term
  ___(___, ___) %>% 
  # Pivot sentiment, using n for values
  ___(names_from = ___, values_from = ___, values_fill = ___) %>%
  # Convert to data.frame, making term the row names
  data.frame(row.names = "___")

# Examine
head(moby_tidy)
Редактировать и запускать код