Как часто люди упоминаются в новостных статьях, публикуемых в Интернете?
Как это меняется со временем и соотносятся ли упоминания разных народов?

Я попытался ответить на эти вопросы с помощью небольшого проекта и веб-сайта. С результатами можно ознакомиться на http://in-the-news.stoeckl.ai/. Сайт построен на микрофреймворке Python Dash, который использует платформу Plotly для интерактивных графиков.

Данные

Данные взяты из статей, опубликованных агентством Reuters на их сайте www.reuters.com. На данный момент проиндексировано около 70 000–80 000 новостных статей на английском и немецком языках. Немецкие новости с 2015 года по настоящее время, английские с 2016 года по настоящее время. Часть набора данных можно найти на kaggle.com: https://www.kaggle.com/astoeckl/newsen.

Анализ

Для каждой статьи проводится распознавание именованных объектов (NER) с помощью алгоритма машинного обучения, чтобы обнаруживать упоминания людей в текстах. Я использовал библиотеку Python Spacy, как в следующем примере:

Этот алгоритм использует модель, предварительно обученную на базе новостных статей Google для английского и немецкого языков. Списки лиц в статьях используются для подсчета количества и хранятся в базе данных.

Сюжеты

Я показываю гистограммуколичества наиболее часто упоминаемых лиц. Для четырех из этих лиц вы можете построить временной ряд подсчетов одновременно за выбранный вами период времени. Для двух человек вы можете рассчитать их отношение/корреляцию как функцию времени.

Соотношение лиц

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

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

Подробнее можно прочитать в статье https://arxiv.org/abs/1809.06083.