Skip to content

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Семантический граф как инструмент анализа политической риторики в Государственной Думе РФ посредством изучения пояснительных записок к законодательным инициативам

image

Программа позволяет пользователю работать с базами данных и визуализировать их с помощью семантического графа. Предназначена для анализа текстов пояснительных записок к законодательным инициативам депутатов Государственной Думы РФ, сенаторов Совета Федерации и законодательных (представительных) органов.

Описание программы

В условиях роста массивов данных возникает необходимость в новых инструментах для автоматизации исследований в области цифровой историографии. Цифровая историография требует применения средств семантического анализа, способных автоматизировать обработку текстов и визуализировать взаимосвязи. В контексте исследования пояснительных записок к законодательным инициативам подобный инструмент даст исследователю возможность оценить политическую риторику в Государственной Думе РФ того или иного временного периода: составить «портреты» фракций и отдельных субъектов, проследить эволюцию их взглядов; выявить скрытые коалиции; определить наиболее часто обсуждаемые темы.

image

Для построения семантического графа необходимо корректно обработать анализируемый массив данных. Реализован следующий алгоритм работы с текстом:

  1. Удаление заголовка пояснительной записки. Это гарантирует анализ исключительно основного содержания документа.
  2. Предобработка текста. Этот пункт включает в себя установление нижнего регистра всех символов и удаление всех знаков препинания.
  3. Лемматизация. Представление всех словоформ в начальном виде обеспечит корректность кластеризации. Для этих целей используется библиотека Mystem.
  4. Подготовка текста. На этом этапе удаляются стоп-слова (предлоги, союзы, местоимения и др.), выделяются n-граммы и расшифровываются обозначения (сокращения, аббревиатуры и т.п.).
  5. Кластерный анализ. Разбиение лексем и n-грамм на кластеры на основе близости их лексических значений: так формируются ключевые слова, представляемые на графе отдельными узлами. Для этих целей используются библиотеки sklearn (AgglomerativeClustering) и navec (преобразование слов в векторы — эмбеддинги).
  6. Статистический анализ. Подсчет числа одинаковых ключевых слов в базе данных. Субъекты права законодательной инициативы связываются с каждым понятием по числу документов, в которых встречается упоминание того или иного ключевого слова. Связь между депутатом и фракцией представляет собой невзвешенное ребро.

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

На языке Python создана программа, позволяющая пользователю работать с базами данных и визуализировать их с помощью семантического графа. Выделение n-грамм, расшифровка обозначений и удаление «стоп-слов» требует ручного изучения текстов для составления соответствующих списков. Реализован функционал ручного импорта пояснительных записок, а также полуавтоматического: при вводе ссылки на страницу законопроекта в Системе обеспечения законодательной деятельности программа может проиндексировать ее, самостоятельно заполнить поля и загрузить содержимое документа, если он опубликован. Информация об источниках хранится в соответствующем списке. Возможно проследить связи между источником, фракциями и субъектами.

С помощью разработанной программы проведен ряд исследований. Так, создан и проанализирован портрет фракции «Справедливая Россия» на основе текстов пояснительных записок, зарегистрированных 30 апреля 2026 года. Установлено, что оптимальные значения порога кластеризации лежат в промежутке примерно от 0,21 до 0,50. Отклонение от этих значений нежелательно: увеличение порога искажает данные, а уменьшение делает обобщение тем неэффективным.

image

Рассмотрена риторика Алферова Жореса Ивановича на основе пятидесяти восьми пояснительных записок, опубликованных в СОЗД. Замечено, что слово «инновационный» часто употребляется со словами «поддержка» и «государственный». Этот пример демонстрирует потенциал семантического графа как инструмента анализа политической риторики, поскольку выявленные связи позволяют сделать вывод о том, что депутат выступает за государственную поддержку инноваций. Обнаружено большое число упоминаний о «высшем» и «среднем» образовании, «студентах» и «учащихся» («детях») — все это формирует «портрет» субъекта права законодательной инициативы.

image

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

image image

С помощью созданной программы проведена работа по составлению «портрета» «Справедливой России», Жореса Ивановича Алферова, ключевого слова «образование». Семантический граф, состоящий из данных, собранных с пояснительных записок к законодательным инициативам, показан как инструмент анализа политической риторики в Государственной Думе РФ.

Дальнейшее развитие дополнительных модулей позволит создавать вспомогательные функции. Например, автоматическая индексация всех страниц в СОЗД, подходящих под пользовательские критерии.

Описание текущей версии программы (v0.1)

На данный момент программа находится в процессе разработки и может работать некорректно. Тем не менее, реализован базовый функционал, позволивший провести ряд исследований. Настоятельно рекомендуется создавать резервные копии баз данных вручную, т.е. не дублируя их, а экспортируя. Есть опасения, что при определённых действиях файлы базы данных внутри программы могут повредиться.

Чёрный список не функционирует. Тем не менее, эта кнопка не отключена. Не рекомендуется проверять работоспособность чёрного списка, поскольку это может привести к искажению показываемой на графе информации (а может и не привести :) ).

Существует необходимость доработки алгоритмов работы со стоп-словами и обозначениями. Сейчас обозначения могут не расшифровываться.

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

На данный момент программа никак не исправляет опечатки в загружаемых файлах («государственнаядума» не изменится на «государственная дума», «как ой нибудь» будет рассмотрено как отдельные слова «как», «ой», «нибудь» и т.п.).

Прилагаемый модуль скорее носит демонстративный характер и его использование не рекомендуется. Сейчас он считывает информацию с официальной страницы Госдумы, причём делает это не всегда корректно (проблемы парсинга) и неполно (многие фракции, особенно для прежних созывов, не указаны: нужен парсинг других сайтов (Википедии?) для поиска этих данных).

Большое число узлов (тысячи) может серьёзно замедлить визуализацию или сделать её невозможной. Рекомендуется настраивать параметры визуализации и порог кластеризации так, чтобы уменьшить число узлов до сотен. Помните, что маловесными узлами (веса 1, 2, 3...) чаще всего (в масштабах всего графа) можно пренебречь (это могут быть ошибки обработки).

Наблюдаются проблемы с расстоянием между узлами. Если его изменить, всё равно восстанавливаются сохранённые позиции. Это сделано для того, чтобы при ручном редактировании графа не сбивалось местоположение узлов после применения других параметров визуализации (например, изменения цвета). К сожалению, сейчас следует перестраивать граф, чтобы применить новые параметры разреженности узлов. И то, это работает не всегда... Фактически настройка разрежения узлов не работает.

На случай неверного кэширования базы данных существует кнопка «Принудительной обработки». Если после изменения источника (списка) Вы не наблюдаете изменений при обработке базы данных, возможно, программа использует устаревший кэш: обработайте базу данных принудительно.

Я убеждён, что существуют и другие проблемы, упомянуть о которых забыл. Так или иначе, эта версия носит демонстративный характер и, на самом деле, весьма неудобна в использовании (в силу описанных ошибок). Программа поддерживается мною, и следующие версии должны сделать её лучше.

Прилагаемые данные

В папке recommended_defaults находятся пригодные для импорта списки, использованные в описанных выше исследованиях.

Важно заметить, что если один и тот же человек (одинаковые «Фамилия И.О.») был и сенатором, и депутатом, ошибки не произойдёт, но субъект будет помечен как сенатор. В силу этого рекомендуется адаптировать списки под свой проект, либо же изменять эти данные вручную для каждого источника.

В папке data/textdata находятся демонстрационные базы данных, использованные в презентации. Там же находятся их экспортированные версии.

Файл presentation.pptx содержит в себе презентацию программы, проведённую 15 мая 2026 года на конференции «Встречи в Таврическом».

Контактная информация

Рассказов Иван Александрович, эл. почта: iarasskazov@stud.etu.ru.

image

About

Программа позволяет пользователю работать с базами данных и визуализировать их с помощью семантического графа. Предназначена для анализа текстов пояснительных записок к законодательным инициативам депутатов Государственной Думы РФ, сенаторов Совета Федерации и законодательных (представительных) органов.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages