Масштабована порівняльна хмара
Пам'ятаєте про «інфляцію оцінок» у полярності відгуків про оренду? Іноді, щоб побачити інсайт, варто спершу відмасштабувати бали до 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")
)