Де можна спостерігати закон Ципфа?
Хоча Ципф спостерігав різкий і передбачуваний спад у використанні слів, ви можете сумніватися в законі Ципфа. Можливо, ви думаєте: «Я знаю безліч слів і маю виразний словник». Це може бути правдою, але для більшості людей так сказати не можна! Щоб це показати, збудуємо візуалізацію з 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
Ця вправа є частиною курсу
Аналіз тональності в R
Інструкції до вправи
- Скористайтеся
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!
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Examine sb_words
___
# Create expectations
sb_words$expectations <- sb_words %$%
{___[___] / ___}
# Create metrics plot
sb_plot <- ___(___, x = ___, y = ___, ___ = ___)
# Add 1st line
sb_plot <- ___(___)
# Add 2nd line
sb_plot <- ___(___, ___)
# Add legend
sb_plot <- ___(___, legend = c("___", "___"))
# Display plot
sb_plot