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

Stressed Out!

Тут ви скоригуєте перелік негативних слів з урахуванням конкретного тексту. Потім порівняєте базові та власні оцінки polarity().

Одна з популярних пісень Twenty One Pilots має назву «Stressed Out». Якщо переглянути її текст, стає помітно, що пісня про ностальгію за юністю. Загалом більшість сказали б, що полярність негативна. У тексті неодноразово згадуються стрес, страхи та удавання.

Порівняймо текст пісні, використовуючи стандартний лексикон суб'єктивності та також власний.

Спочатку перевірте, що у лексиконі суб'єктивності key.pol ще немає терміна, який ви хочете додати. Один зі способів перевірки — за допомогою grep(). Функція grep() повертає рядки, у яких символи відповідають шаблону пошуку. Ось приклад використання для індексування.

data_frame[grep("search_pattern", data_frame$column), ]

Після того як ви переконалися, що сленг або нове слово відсутнє в лексиконі key.pol, його потрібно додати. Наведений нижче код використовує sentiment_frame() для побудови нового лексикону. У коді sentiment_frame() приймає початковий вектор позитивних слів positive.words. Далі до початкових negative.words додаються «smh» і «kappa», які вважаються негативним сленгом. Хоча ви можете вказати ваги для позитивних і негативних слів, типові значення — 1 і -1, тож нижче їх не наведено.

custom_pol <- sentiment_frame(positive.words, c(negative.words, "hate", "pain"))

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

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

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

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

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

Ми підготували stressed_out, що містить текст пісні «Stressed Out» гурту Twenty One Pilots.

  • Застосуйте polarity() до stressed_out, щоб побачити типову оцінку.
  • Перевірте key.pol](https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/grep) для індексування датафрейму, шукаючи у стовпціx`.
  • Створіть custom_pol як новий датафрейм із сентиментом.
    • Викличте sentiment_frame() і передайте positive.words як перший аргумент без додавання нових термінів.
    • Далі скористайтеся c(), щоб об'єднати negative.words з новими термінами "stressed" і "turn back".
  • Повторно застосуйте polarity() до stressed_out з додатковим параметром polarity.frame = custom_pol, щоб порівняти, як нові слова змінюють оцінку та точніше відображають зміст пісні.

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

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

# stressed_out has been pre-defined
head(stressed_out)

# Basic lexicon score
___(___)

# Check the subjectivity lexicon
___[___("stress", x)]

# New lexicon
custom_pol <- ___(___, c(negative.words, "___", "___"))

# Compare new score
___(___, polarity.frame = ___)
Редагувати та запускати код