ПочатиПочніть безкоштовно

Масштабована порівняльна хмара

Пам'ятаєте про «інфляцію оцінок» у полярності відгуків про оренду? Іноді, щоб побачити інсайт, варто спершу відмасштабувати бали до 0, а вже потім робити підвибір корпусу. Через це частина раніше позитивних коментарів може перейти до негативного підрозділу або навпаки, адже середнє зміщується до 0. У цій вправі ви відмасштабуєте бали, а тоді повторно побудуєте comparison.cloud(). Усунення «інфляції оцінок» може дати додаткові інсайти.

Раніше ви застосовували polarity() до bos_reviews$comments і створювали comparison.cloud(). У цій вправі ви застосуєте scale() до результату перед побудовою comparison.cloud(). Подивіться, чи зміниться візуалізація!

Оскільки це переважно повторення, більшість коду вже є — заповніть правильні об'єкти та параметри!

Ця вправа є частиною курсу

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

Переглянути курс

Інструкції до вправи

  • Перегляньте частину завантаженого bos_pol$all, проіндексувавши [1:6,1:3].
  • Додайте новий стовпець scaled_polarity, застосувавши scale() до стовпця з полярністю bos_pol$all$polarity.
  • Для позитивних коментарів застосуйте subset(), де новий стовпець bos_reviews$scaled_polarity більший (>) за нуль.
  • Для негативних коментарів застосуйте subset(), де новий стовпець bos_reviews$scaled_polarity менший (<) за нуль.
  • Створіть pos_terms, використавши paste() на pos_comments.
  • Тепер створіть neg_terms за допомогою paste() на neg_comments.
  • Об'єднайте згорнуті документи pos_terms і neg_terms в один корпус під назвою all_terms.
  • Дотримуйтесь звичного робочого процесу tm, вклавши VectorSource() всередину VCorpus(), застосованого до all_terms.
  • Створіть TermDocumentMatrix(), використовуючи об'єкт all_corpus. Зверніть увагу: це TDM з вагами TfIdf і базовими функціями очищення.
  • Перетворіть all_tdm на all_tdm_m за допомогою as.matrix(). Потім перейменуйте стовпці в наявному коді на "positive" і "negative".
  • Нарешті! застосуйте comparison.cloud() до матриці all_tdm_m. Зверніть увагу на нові найчастіші негативні слова. Можливо, це відкриє новий інсайт!

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Review
___

# Scale/center & append
bos_reviews$___ <- scale(___)

# Subset positive comments
pos_comments <- subset(bos_reviews$comments, ___)

# Subset negative comments
neg_comments <- subset(bos_reviews$comments, ___)

# Paste and collapse the positive comments
pos_terms <- paste(___, collapse = " ")

# Paste and collapse the negative comments
neg_terms <- paste(___, collapse = " ")

# Organize
all_terms<- c(___, ___)

# VCorpus
all_corpus <- ___(VectorSource(___))

# TDM
all_tdm <- TermDocumentMatrix(
  ___, 
  control = list(
    weighting = weightTfIdf, 
    removePunctuation = TRUE, 
    stopwords = stopwords(kind = "en")
  )
)

# Column names
___ <- as.matrix(___)
colnames(all_tdm_m) <- c("___", "___")

# Comparison cloud
comparison.cloud(
  ___, 
  max.words = 100,
  colors = c("darkgreen", "darkred")
)
Редагувати та запускати код