Статья опубликована в рамках: Научного журнала «Студенческий» № 28(366)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал
ИНТЕЛЛЕКТУАЛЬНАЯ СИСТЕМА АГРЕГАЦИИ И КЛАСТЕРИЗАЦИИ НОВОСТЕЙ С ИСПОЛЬЗОВАНИЕМ ВЕКТОРНЫХ ПРЕДСТАВЛЕНИЙ ТЕКСТА
Введение
Одно событие нередко представлено пресс-релизом предприятия, короткой заметкой отраслевого издания и расширенным материалом регионального СМИ. Сопоставление заголовков здесь ненадёжно: авторы меняют формулировки, порядок фактов и объём деталей. В результате читатель видит несколько сообщений, хотя информационный повод у них один.
Цель исследования — разработать систему сбора русскоязычных промышленных новостей, поиска смысловых дублей и объединения близких публикаций в информационные события. Для каждого события формируются краткое описание и тематические теги, а исходные материалы сохраняются внутри кластера.
Методика обработки новостного потока
Исходные данные представляются множеством документов D = {d₁, d₂, …, dₙ}. Каждый документ содержит заголовок, основной текст, ссылку, источник и дату публикации. После очистки заголовок объединяется с текстом статьи. Полученная строка преобразуется в плотный числовой вектор. Векторная форма даёт возможность сравнивать материалы не только по общим словам, но и по близости смысла; для этого применяется косинусная мера [1, с. 127–145].
В качестве средства векторизации выбрана архитектура Sentence-BERT. В отличие от попарного применения классического BERT она позволяет один раз вычислить эмбеддинги документов, а затем выполнять быстрый поиск по косинусному сходству [2, с. 3982–3992]. В программной реализации используется многоязычная модель paraphrase-multilingual-MiniLM-L12-v2. Она обучена для более чем пятидесяти языков и подходит для русскоязычных текстов [3].
sim(xᵢ, cⱼ) = (xᵢ · cⱼ) / (‖xᵢ‖ · ‖cⱼ‖)
Здесь xᵢ — вектор новой публикации, а cⱼ — векторное представление ранее созданного кластера. Алгоритм последовательно обрабатывает новости и на каждом шаге выбирает ближайшее событие. Если максимальное сходство не ниже 0,7, документ присоединяется к найденному кластеру; в противном случае начинается новый кластер. Потоковая схема не требует перестраивать всё разбиение после поступления очередной новости и соответствует практическим сценариям последовательной кластеризации [4].
j* = arg maxⱼ sim(xᵢ, cⱼ); dᵢ ∈ Cⱼ* при sim(xᵢ, cⱼ*) ≥ 0,7
Порог 0,7 выбран экспериментально. При меньших значениях объединялись разные события с общей отраслевой лексикой; при больших короткая заметка и подробная статья об одном событии оставались в разных группах. Поэтому значение рассматривается как рабочий компромисс для собранной выборки, а не как универсальная константа.
Краткое описание строится экстрактивным методом. После удаления коротких и служебных фрагментов предложения получают TF–IDF-представления; по матрице сходства создаётся граф. Значимость вершин оценивается алгоритмом TextRank [5, с. 404–411], основанным на идее PageRank [6]. Лучшие предложения возвращаются в исходный порядок, а близкие дубликаты исключаются.
Для каждого из 18 промышленных направлений заданы описание, положительные признаки и слова-исключения. Оценка учитывает семантическую близость, число совпадений и штраф за отрицательные признаки. Событие может получить несколько тегов или остаться без них при недостаточной уверенности.
Архитектура и программная реализация
Система реализована на Python как последовательный конвейер. Отдельные модули отвечают за сбор, фильтрацию, хранение, векторизацию, кластеризацию, суммаризацию, тематическую разметку и публикацию. Поэтому изменение HTML-разметки источника не затрагивает математическую модель.
Новости поступают из RSS-лент и со страниц отраслевых ресурсов. Поскольку RSS часто содержит только анонс, полный текст извлекается из HTML. Перед анализом удаляются навигация, подписи и служебные фрагменты; для различающейся вёрстки предусмотрены правила по источникам. Ошибки очистки позднее проявляются как лишние предложения в аннотации.
До векторизации тематический фильтр исключает материалы, не связанные с промышленностью России. Он учитывает признаки производства, энергетики, металлургии, машиностроения, судостроения, авиации, нефтегазовой и химической отраслей. Фильтр шире системы тегов: пограничная новость может пройти в поток, но не получить конкретной метки.
В PostgreSQL хранятся источники, публикации, кластеры и записи об отправленных сообщениях. Новость содержит текст, ссылку, время и связь с событием; кластер — размер, основную публикацию, описание, теги и статус. Эмбеддинг вычисляется один раз и затем переиспользуется.
После изменения кластера описание строится заново. Дополнительный приоритет получают предложения с названиями предприятий, числами и сведениями о запуске, строительстве, модернизации или поставках. Эвристики не заменяют TextRank, а помогают удерживать фактическое ядро новости.
Итоговое сообщение содержит описание, ссылку и теги. Проверка статуса предотвращает повторную отправку. APScheduler запускает конвейер по расписанию, а журнал фиксирует число материалов и ошибки этапов. Недоступность одного источника не останавливает обработку остальных.
Новая публикация сравнивается с m актуальными кластерами, поэтому стоимость поиска составляет O(m), а верхняя граница для n документов — O(n²). Фильтрация, временное окно и сохранённые эмбеддинги уменьшают фактический объём работы. При росте потока линейный просмотр следует заменить индексом приближённого поиска.
Экспериментальная оценка
На 987 публикациях система сформировала 829 кластеров со средним размером 1,19 новости. Описания получены для 828 кластеров, теги — для 576. Многие одиночные события действительно не имели дублей среди подключённых источников.
Для экспертной проверки случайно отобраны 100 кластеров. Отдельно оценивались объединение публикаций, сохранение основного факта в описании и соответствие тегов. Использовались точность P, полнота R и F₁-мера:
F₁ = 2PR / (P + R)
Таблица 1.
Качество основных этапов обработки
|
Этап |
Precision |
Recall |
F₁ |
|---|---|---|---|
|
Кластеризация |
0,95 |
0,91 |
0,93 |
|
Суммаризация |
0,93 |
0,96 |
0,94 |
|
Тематическая разметка |
0,93 |
0,91 |
0,92 |
Кластеризация дала F₁ = 0,93: из проверенных решений 87 объединений были правильными, пять — ошибочными, ещё восемь требуемых объединений система пропустила. Типичный ложный кластер возникал тогда, когда разные события описывались одинаковой отраслевой лексикой. Пропуски чаще наблюдались при сильном различии объёма и формулировок исходных материалов. Эти случаи подтверждают компромиссный характер порога 0,7.
Наиболее высокую F₁-меру, равную 0,94, показала суммаризация. В 89 случаях описание сохраняло основной факт; семь аннотаций содержали лишние детали, четыре теряли существенную информацию. Основной источник ошибок — служебные фрагменты HTML и второстепенные предложения, получившие высокий графовый вес. Следовательно, улучшение очистки текста может дать больший эффект, чем усложнение самого ранжирования.
Для тематической разметки F₁ составила 0,92. Ошибки концентрировались в событиях на пересечении отраслей: производство нового оборудования может одновременно относиться к машиностроению, энергетике и технологиям. Гибридная оценка снижает число случайных тегов, однако фиксированные словари не полностью отражают изменяющуюся лексику. Перспективным продолжением работы является создание размеченного корпуса и обучение многометочной модели с сохранением правила отказа при низкой уверенности.
Заключение
Разработанная система сводит разрозненные публикации к уровню информационных событий. Её основа — сочетание многоязычных эмбеддингов, косинусного сходства и последовательной кластеризации. Экстрактивная суммаризация сохраняет формулировки источников и тем самым уменьшает риск фактических искажений, а гибридная тематическая разметка допускает несколько тегов и отказ от неуверенного решения.
Эксперимент на 987 новостях показал, что выбранная схема пригодна для автоматической обработки промышленного потока: F₁-мера составила 0,93 для кластеризации, 0,94 для суммаризации и 0,92 для тематической разметки. При этом результаты не следует трактовать как окончательные для любых источников. Выборка ограничена одним периодом наблюдения, а экспертная проверка выполнена на ста кластерах. Для более строгой оценки потребуется расширить временной диапазон и повторить разметку несколькими экспертами.
Дальнейшее развитие связано с тремя направлениями: индексированием эмбеддингов для ускорения поиска, адаптивным выбором порога с учётом возраста и тематики события, а также обучением тематического классификатора на размеченных промышленных новостях. Отдельного внимания требует очистка веб-страниц, поскольку качество исходного текста непосредственно влияет и на краткое описание, и на теги. Уже в текущем виде система уменьшает повторяемость ленты, не скрывая исходные публикации, и сохраняет возможность перейти к первоисточнику.
Список литературы:
- Маннинг К. Д. Введение в информационный поиск / К. Д. Маннинг, П. Рагхаван, Х. Шютце. – Москва : Вильямс, 2011. – 528 с.
- Reimers N. Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks / N. Reimers, I. Gurevych // Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing. – Hong Kong : Association for Computational Linguistics, 2019. – P. 3982–3992.
- Sentence Transformers. Pretrained Models [Электронный ресурс]. – URL: https://www.sbert.net/docs/sentence_transformer/pretrained_models.html (дата обращения: 16.08.2026).
- Aggarwal C. C. Data Clustering: Algorithms and Applications / C. C. Aggarwal, C. K. Reddy. – Boca Raton : CRC Press, 2014. – 652 p.
- Mihalcea R. TextRank: Bringing Order into Text / R. Mihalcea, P. Tarau // Proceedings of the 2004 Conference on Empirical Methods in Natural Language Processing. – Barcelona : Association for Computational Linguistics, 2004. – P. 404–411.
- Page L. The PageRank Citation Ranking: Bringing Order to the Web / L. Page, S. Brin, R. Motwani, T. Winograd. – Stanford : Stanford InfoLab, 1999. – 17 p.

