Где можно наблюдать закон Ципфа?
Ципф обнаружил резкое и предсказуемое снижение частоты употребления слов, однако вы можете скептически относиться к его закону. Возможно, вы думаете: «Я знаю много слов и обладаю богатым словарным запасом». Это вполне может быть так — но большинство людей не могут этим похвастаться! Чтобы убедиться в этом, построим визуализацию на основе 3 миллионов твитов с упоминанием «#sb». Учтите, что визуализация не следует закону Ципфа в точности: все твиты содержали один и тот же хэштег, что несколько искажает распределение. Тем не менее результат демонстрирует резкое снижение частот и невысокое лексическое разнообразие среди миллионов твитов. Таким образом, использование лексиконов для анализа естественного языка имеет научное обоснование!
В этом упражнении вы будете использовать пакет metricsgraphics. Хотя автор пакета рекомендует использовать оператор pipe %>%, вы будете строить график пошагово, чтобы разобраться в различных элементах визуализации. Основная функция пакета 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