Учебник по созданию анимированных облаков слов в Python, которые делают презентацию частотности слов ошеломляющей

Авторы: Петр Кораб, Давид Штрба (Лентиамо, Прага), Ярко Фидрмук (Университет Цеппелин, Германия)

Облака слов в последнее время привлекли большое внимание своей простотой в интересном отображении частотности слов. Технически этот тип диаграммы основан на n-граммах , которые представляют собой непрерывные последовательности элементов из образца текста или речи. Поместите в диаграмму; вы можете легко увидеть, какие темы, слова или эмоции наиболее часто встречаются в данных.

Майкл Кейн и его коллеги собрали 250 наиболее часто встречающихся слов из выдержек из журнала Science с 1980 по 2014 год и разработали динамическую версию облака слов, получившую название Word Swarm. Коды Python находятся в свободном доступе на их GitHub в соответствии с условиями общественной лицензии.

Мы считаем, что анимированные облака слов - отличный способ рассказать историю о ваших данных, и их следует использовать более широко. В недавнем проекте мы собрали метаданные исследовательских статей из известных экономических журналов начиная с 1900 года, чтобы проиллюстрировать подготовку видеофайла с облаком слов.

В этой статье вы пройдете через:

  • Облачные приложения Word в экономических исследованиях, бизнес-аналитике и анализе настроений;
  • Пошаговое введение в создание анимированных облаков слов.

Облачные приложения Word

Облака слов в последнее время нашли множество применений в бизнес-аналитике, экономических и финансовых исследованиях, а также в понимании настроений в тексте. Рассмотрим несколько интересных примеров.

В эмпирических исследованиях в области финансов облака слов улучшают понимание заявлений центральных банков и интерпретируют их содержание. В увлекательной статье Фельдкирхер, Хофмарчер и Сиклос (2021) собраны тысячи выступлений руководителей центральных банков Европы и проанализировано их содержание. С помощью словесных облаков они нашли связанные темы, слова и закономерности в общении банкиров, которые ранее не были обнаружены.

Во влиятельной статье, опубликованной в Журнале экономической литературы Боулз и Карлин (2020), представлены облака слов для слов, которые студенты ответили на вопрос: Какая самая насущная проблема должна быть решена экономистами? чтобы проиллюстрировать необходимость изменений в преподавании экономики.

В бизнесе компаниям необходимо понимать мнения клиентов и отзывы о продуктах, и облака слов стали здесь очень полезными. Быстрый взгляд на график может выявить потенциальные проблемы клиентов, и аналитикам не нужно просматривать все обзоры продуктов по отдельности. Вместо этого они используют программы бизнес-аналитики (BI) для изучения данных о клиентах. Все ведущие инструменты бизнес-аналитики на рынке предоставляют встроенные графики и функциональные возможности облака слов; см. реализацию Tableau, Looker и Power BI.

Анимированные облака слов

Важно признать авторов оригинальной структуры WordSwarm. См. Майкл Кейн и его страницу на GitHub с полным набором кодов Python. Мы изменили только некоторые части их скриптов, в основном те, которые связаны с предварительной обработкой данных и реализацией в Python 3.8 (исходный WordSwarm был протестирован с Python 2.7). В остальном ядро ​​нашего анимированного облака слов остается очень похожим на оригинал Майкла Кейна.

Идея анимированного облака слов состоит в том, чтобы показать, как частота слов в наборе данных меняется с течением времени. Измерение времени включает годы (и, возможно, месяцы), например год публикации статей. Размер слова представлен его частотой в конкретный год.

Размер шрифта показывает важность слов. Со временем слова с самой высокой частотой появляются из центра облака, оставляя слова с меньшей частотой в центре. Поскольку мы используем абсолютные, а не относительные частоты, размер шрифта во время видео обычно увеличивается, что отражает рост числа экономических публикаций.

В результате получилось видео в формате MP4, которое вы можете увидеть в начале этой статьи.

Шаг 1. Очистка данных и расчет n-граммов

Подготовка данных зависит от структуры ваших необработанных данных, а реализация Python будет отличаться для каждого проекта. Наш код доступен на GitHub.

Основные этапы предварительной обработки включают:

  • Очистка данных и удаление стоп-слов
  • Расчет N-грамма (n = 1)
  • Преобразование данных в окончательный формат ввода

Первый шаг включает в себя очистку данных и удаление стоп-слов, которые не содержат существенной информации и могут быть удалены в начале. Эти стоп-слова включают, например, «он», «к», «и», «а», «в», «оно», «с», «я», «тот», «Имел», «на», «за» и т. Д.

Частота слов в наших данных извлекается из заголовков исследовательских статей и, по сути, представляет собой n-грамм n = 1. Чтобы узнать больше о n-граммах, перейдите здесь.

Наконец, измените форму ваших данных, чтобы они содержали первый столбец слов и последующие столбцы с частотой слов с каждой датой, указанной в первой строке файла CSV.

Предварительно обработанные данные имеют следующий формат:

Шаг 2: Рассчитайте WordSworm

В этой части мы загружаем входные данные и подготавливаем около 6000 изображений PNG, из которых впоследствии будет создан видеофайл. Вот пример изображения:

Программа WordSwarm использует библиотеки PyGame и Box2D, которые используются (или, возможно, использовались) для создания 2D-игр на Python. Мы используем фреймворк WordSwarm и настраиваем только такие параметры, как масштабирование, количество изображений (= длина видеофайла), параметры временной оси, разрешение, центр облака слов, смещение изображений и т. Д.

Большим преимуществом для пользователей является то, что вам не нужно изменять большую часть кода при условии, что вы загружаете данные в требуемом формате. Это сэкономит вам много времени, поскольку основная структура уже подготовлена.

В нашем проекте базовый фреймворк WordsSwarm остался без изменений. Мы вносим небольшие изменения в wordsSwarm.py и pygame_framework.py, чтобы параметры лучше соответствовали экрану, и переписываем код для Python 3.8. Наши коды здесь.

Шаг 3. Подготовьте видеофайл

На последнем этапе используется файл frames2video.bat, доступный на веб-сайте проекта WordSwarm, для преобразования отдельных кадров PNG в файл MP4. В нашем проекте видеофайл имеет размер 98 МБ с разрешением 1920 x 1080 и длиной 2 минуты 55 секунд, что достаточно для того, чтобы Рассказ о тенденциях в наших данных.

Вывод

Истории данных - это область науки о данных, уходящая корнями в бизнес. Часто легче убедить заинтересованное лицо принять решение с помощью хорошо оформленной интерактивной панели инструментов, чем предоставить простые графики и статистику. Forbes (2016) процитировал ученого по данным Стивена Фью, который объясняет, почему числа могут рассказать важную историю:

«Они рассчитывают, что вы дадите им четкий и убедительный голос. Любую информацию, которой стоит поделиться, вероятно, лучше всего рассказать в виде истории с данными. Фраза «повествование данных» ассоциируется со многими вещами - визуализацией данных, инфографикой, информационными панелями, презентациями данных и т. Д. Повествование данных - это структурированный подход к обмену мнениями о данных, который включает комбинацию трех ключевых элементов: данные, визуальные эффекты и повествование ».

Мы считаем, что анимированные облака слов могут рассказать истории о ваших данных в рамках эмпирических финансовых и экономических исследований в любое время, когда ваши данные имеют более длительный временной интервал и текстовый характер. Видео во введении к этой статье помогает сформулировать тенденции исследований, используя частотность слов в названиях статей в ведущих экономических журналах (American Economic Review, Econometrica, Quarterly Journal of Economics, Journal of Polit Economy и Review of Economic Studies). последние 118 лет.

Мы используем данные из JSTOR Data for Research и тщательно обрабатываем их для этой статьи. Здесь изложена первая часть сбора, преобразования и очистки данных. С помощью анимированного облака слов примерно за три минуты мы можем визуализировать тенденции в экономике почти с самого начала.

Эта статья подготовлена ​​как часть чтения для магистра наук. курс Дизайн исследований, который преподается в Университете Цеппелин осенью 2021 года. Мы полностью соблюдаем условия использования данных JSTOR. Мы также признательны Майклу Кейну за оригинальный вклад WordSwarm, который мы использовали в качестве основного источника для нашего проекта. Мы также полностью соблюдаем условия Стандартной общественной лицензии.

Весь код доступен на нашем GitHub.

Ссылки:

Фельдкирхер, Мартин, Хофмарчер, Поль, Сиклос, Пьер. 2021. Что это за послание? Интерпретация денежно-кредитной политики в выступлениях руководителей центральных банков. Краткие сведения о политике SUERF, № 153.

Боулз, Сэмюэл и Венди Карлин. 2020. Что студенты изучают по экономике 101: время перемен. Журнал экономической литературы, 58 (1): 176–214.

Дайки, Брент. 2016. Рассказывание историй: важный навык в области науки о данных, который нужен каждому. Forbes, 31 марта 2016 г. Доступно по адресу: https://www.forbes.com/sites/brentdykes/2016/03/31/data-storytelling-the-essential-data-science-skill-everyone-needs/? sh = 40f1adf552ad .