Учебник по созданию анимированных облаков слов в 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 .