1. Learn
  2. /
  3. Курси
  4. /
  5. Аналіз тональності в R

Connected

Вправа

Де можна спостерігати закон Ципфа?

Хоча Ципф спостерігав різкий і передбачуваний спад у використанні слів, ви можете сумніватися в законі Ципфа. Можливо, ви думаєте: «Я знаю безліч слів і маю виразний словник». Це може бути правдою, але для більшості людей так сказати не можна! Щоб це показати, збудуємо візуалізацію з 3 мільйонів твітів із згадкою «#sb». Пам'ятайте, що візуалізація не ідеально відповідає закону Ципфа: усі твіти містять той самий хештег, тож розподіл трохи зміщений. Водночас створений вами графік демонструє різкий спад, що свідчить про невелику лексичну різноманітність серед мільйонів твітів. Отже, у використанні лексиконів для аналізу природної мови є наукове підґрунтя!

У цій вправі ви використаєте пакет metricsgraphics. Хоча автор радить використовувати оператор конвеєра %>%, ви побудуєте графік крок за кроком, щоб розібратися з його складовими. Основна функція пакета metricsgraphics — це mjs_plot(), перший крок у створенні графіка JavaScript. Після цього ви можете додавати інші шари поверх графіка.

Приклад робочого процесу з metricsgraphics без оператора %>% подано нижче:

metro_plot <- mjs_plot(data, x = x_axis_name, y = y_axis_name, show_rollover_text = FALSE)
metro_plot <- mjs_line(metro_plot)
metro_plot <- mjs_add_line(metro_plot, line_one_values)
metro_plot <- mjs_add_legend(metro_plot, legend = c('names', 'more_names'))
metro_plot

Інструкції

100 XP
  • Скористайтеся head() для sb_words, щоб переглянути топ-слова.
  • Створіть новий стовпець expectations, поділивши найбільшу частоту слова, freq[1], на стовпець rank.
  • Розпочніть sb_plot за допомогою mjs_plot().
    • Передайте sb_words з x = rank та y = freq.
    • У середині mjs_plot() встановіть show_rollover_text у FALSE.
  • Перезапишіть sb_plot за допомогою mjs_line() і передайте sb_plot.
  • Додайте до sb_plot за допомогою mjs_add_line().
    • Передайте попередній об'єкт sb_plot і вектор expectations.
  • Додайте легенду в новий об'єкт sb_plot, використавши mjs_add_legend().
    • Передайте попередній об'єкт sb_plot.
    • Підписи легенди мають складатися з "Frequency" і "Expectation".
  • Викличте sb_plot, щоб відобразити графік. Наведіть курсор на точку, щоб одночасно підсвітити точки freq і Expectation. Магія JavaScript!