Моделирование по заданным темам, интеграция с LLM-моделями и обучение на обобщенных данных — это новые возможности инструментария обработки естественного языка.
Делиться
Авторы : Мартин Фельдкирхер (Венская школа международных исследований), Мартон Кардос (Орхусский университет, Дания) и Петр Кораб (Text Mining Stories)
1. Введение
Моделирование тем в последнее время развивается в двух направлениях. Улучшенные статистические методы, представленные в пакетах Python, ориентированы на создание более надежных, эффективных и не требующих предварительной обработки моделей, что приводит к уменьшению количества ненужных тем (например, FASTopic). Другой подход опирается на возможности генеративных языковых моделей для извлечения интуитивно понятных тем и их описаний (например, TopicGPT [6], LlooM [5]).
Благодаря исследованиям статистических методов моделирования текстовых представлений, полученных с помощью трансформеров, «мусорные» темы стали скорее исключением, чем правилом в новых моделях. Между тем, новые подходы, основанные на LLM (Low-Limited Model), бросают вызов нашим давним представлениям о том, что такое тематическая модель и на что она способна. Удобочитаемые названия и описания тем все чаще становятся ожидаемым результатом хорошо разработанного конвейера тематического моделирования.
Несмотря на всю привлекательность этих разработок, тематическое моделирование далеко не решенная проблема. Нейронные тематические модели могут быть довольно нестабильными , и пользователям иногда трудно им доверять из-за их «черноящичной» природы . Методы, основанные на языковых моделях, дают впечатляющие результаты, но порой могут вызывать вопросы о доверии из-за галлюцинаций и чувствительности к семантически нерелевантным изменениям во входных данных. Это особенно актуально для банковского сектора, где (не)определенность имеет первостепенное значение. Запуск больших языковых моделей также представляет собой огромную инфраструктурную и вычислительную нагрузку и может в конечном итоге обойтись в большие суммы денег даже для небольших наборов данных.
В нашем предыдущем руководстве подробно описано, как языковые модели с большими языковыми моделями (LLM) улучшают традиционное тематическое моделирование, автоматически присваивая метки названиям тем. В этой статье мы объединяем современные методы тематического моделирования с целенаправленной помощью LLM. На наш взгляд, сочетание последних достижений в области языкового моделирования и классического машинного обучения может предоставить пользователям лучшее из обоих миров: конвейер, который объединяет возможности больших языковых моделей с вычислительной эффективностью, надежностью и стабильностью вероятностного машинного обучения.
В этой статье рассматриваются три новых метода тематического моделирования, которые должны войти в инструментарий обработки естественного языка в 2026 году. Мы разберемся:
Как использовать текстовые подсказки для указания того, на чём должны сосредоточиться тематические модели (т.е., предварительно заданные тематические модели).
Как созданные с помощью LLM сводки могут повысить точность тематических моделей.
Как генеративные модели могут быть использованы для маркировки тем и предоставления их описаний.
Как эти методы могут быть использованы для получения информации из коммуникаций центральных банков.
Мы иллюстрируем это на корпусе речей центрального банка Европейского центрального банка. Тексты такого типа длинные, тщательно структурированные и содержат много повторений — именно те данные, где стандартные тематические модели испытывают трудности и где важна интерпретируемость. Сочетая моделирование тем с использованием заданных шаблонов и анализ документов с помощью LLM, мы показываем, как извлекать целенаправленные, стабильные и экономически значимые темы без ущерба для прозрачности или масштабируемости.
2. Пример данных
В качестве примера текстовых данных мы используем сообщения пресс-конференций Европейского центрального банка (ЕЦБ). С 2002 года Совет управляющих ЕЦБ проводит заседания в первый четверг каждого месяца, и его сообщение результатов заседания следует двухэтапной структуре ([2]).
Как это работает: Во-первых, в 13:45 по центральноевропейскому времени ЕЦБ публикует краткое заявление о решениях в области денежно-кредитной политики, содержащее лишь ограниченную текстовую информацию. Во-вторых, в 14:30 по центральноевропейскому времени президент ЕЦБ выступает со вступительным заявлением на пресс-конференции. Этот тщательно подготовленный документ объясняет обоснование решений в области политики, излагает оценку ЕЦБ экономических условий и дает рекомендации относительно дальнейших политических решений. Вступительное заявление обычно длится около 15 минут, после чего следует 45-минутная сессия вопросов и ответов.
Для этой статьи мы используем вводные заявления, собранные непосредственно с веб-сайта ЕЦБ (предоставленные по гибкой лицензии на данные). Набор данных содержит 279 заявлений, и вот как он выглядит:
3. Моделирование на основе заданных тем
Традиционно тематические модели фокусируются на выявлении наиболее информативных тем в наборе данных. Наивный подход, используемый специалистами, заключается в построении более крупной модели, а затем, обычно вручную, отфильтровывании тем, не имеющих отношения к поставленной задаче.
Что, если бы вы могли настроить тематическую модель таким образом, чтобы она извлекала только релевантные темы для вашего запроса? Именно для этого и используется тематическое моделирование с предварительным выбором тем.
В некоторых методах это означает выбор набора ключевых слов, отражающих ваш вопрос. Но в рамках подхода, который мы рассматриваем в этой статье, вы можете указать свои интересы в свободном тексте, используя ключевую фразу, которая указывает модели, на чем следует сосредоточиться.
3.1 Модель KeyNMF
Мы будем использовать передовую контекстную тематическую модель KeyNMF ([3]). Во многих аспектах она очень похожа на более старые тематические модели, поскольку формулирует обнаружение тем в терминах матричной факторизации. Другими словами, при использовании этой модели предполагается, что темы являются латентными факторами , которые ваши документы содержат в большей или меньшей степени и которые определяют и объясняют содержание этих документов.
KeyNMF является контекстной моделью, поскольку, в отличие от более старых моделей, она использует контекстно-зависимые трансформерные представления текста. Чтобы понять, как работает моделирование с заданными значениями, нам необходимо получить базовое представление о модели. Процесс моделирования происходит в следующие этапы:
Мы кодируем наши документы в плотные векторные представления с помощью преобразователя предложений.
Мы кодируем лексику этих документов в одно и то же пространство встраивания.
Для каждого документа мы извлекаем N наиболее важных ключевых слов, выбирая слова, имеющие наибольшее косинусное сходство с векторным представлением документа.
Важность слов для данного документа определяется косинусным сходством, обнуленным. Эти значения упорядочиваются в матрицу ключевых слов, где каждая строка представляет собой документ, а столбцы соответствуют словам.
Матрица ключевых слов разлагается на матрицу «тема-термин» и матрицу «документ-тема» с использованием неотрицательной матричной факторизации.
3.2 Заложенный ключ NMF
Общий алгоритм KeyNMF , хотя и вполне подходит для поиска тем в корпусе, не является наиболее подходящим выбором, если нам нужно использовать модель для решения конкретного вопроса. Для этого сначала необходимо указать исходную фразу — фразу, которая как минимум указывает на то, что нас интересует. Например, при анализе набора данных по коммуникациям ЕЦБ это может быть «Расширение еврозоны».
Поскольку преобразователи предложений могут кодировать эту исходную фразу, мы можем использовать ее для поиска документов, имеющих отношение к нашему вопросу:
Мы кодируем исходную фразу в то же пространство встраивания, что и наши документы и словарь.
Чтобы сделать нашу модель более внимательной к документам, содержащим релевантную информацию, мы вычисляем показатель релевантности документа , используя косинусное сходство с исходным векторным представлением. Затем мы снова обрезаем его до нуля.
Чтобы преувеличить важность исходного значения, можно применить показатель степени исходного значения . Это подразумевает возведение оценок релевантности документа в степень этого показателя.
Мы умножаем значения матрицы ключевых слов на релевантность документа.
Затем, как и прежде, мы используем NMF для разложения этой, теперь уже обусловленной, матрицы ключевых слов.
Преимущества этого подхода заключаются в том, что он:
1) невероятно гибкий и
2) позволяет значительно сократить объем ручной работы .
Будьте осторожны : некоторые модели встраивания могут быть чувствительны к формулировкам и могут выдавать разные оценки важности документа для одного и того же документа с немного отличающейся исходной фразой. Чтобы справиться с этим, мы рекомендуем использовать одну из моделей парафразирования из библиотеки sentence-transformers, поскольку они были специально обучены быть инвариантными к формулировкам и создавать высококачественные темы с помощью KeyNMF.
3.3 Как использовать Seeded KeyNMF
KeyNMF и его версия с заданным начальным значением доступны на PyPI в пакете Turftopic в форме, совместимой с scikit-learn. Чтобы указать, что именно вас интересует, просто инициализируйте модель с помощью начальной фразы:
from sentence-transformers import SentenceTransformer from turftopic import KeyNMF # Кодирование документов с помощью sentence-transformer encoder = SentenceTransformer(«paraphrase-mpnet-base-v2″) embeddings = encoder.encode(documents, show_progress_bar=True) # Инициализация KeyNMF с 4 темами и начальной фразой model = KeyNMF( n_components=4, encoder=encoder, seed_phrase=»Expansion of the Eurozone», seed_exponent=3.0, ) # Обучение модели model.fit(corpus) # Вывод смоделированных тем model.print_topics()
Мы видим, что модель возвращает идентификаторы тем с типичными ключевыми словами, которые явно связаны с евро и еврозоной:
евро, фискальный, стабильность, страны, реформы, вопрос, управление, политика, европейский, политика
3
ЕЦБ, Германия, Франкфурт, Communications Sonnemannstrasse, 7455 Media, Европа, вопрос, ЕС, 1344, 2060314
4. Тематическое моделирование с использованием LLM
Поиск интерпретируемых тем в корпусе — сложная задача, и зачастую для её решения требуется нечто большее, чем просто статистическая модель, выявляющая закономерности в исходных данных. Модели с линейной структурой (LLM) служат для тематического моделирования в двух основных областях:
Чтение документа и выявление в тексте важных аспектов на основе конкретного вопроса, связанного с данными.
Интерпретация результатов работы тематической модели в соответствующем контексте.
В дальнейшем тексте мы рассмотрим 1) как модели с линейной логикой (LLM) улучшают обработку документов для тематической модели и 2) как генеративные модели улучшают понимание и интерпретацию результатов модели.
4.1. Резюмирование документа
Одна из ахиллесовых пят трансформеров предложений, которые мы часто используем для тематического анализа, — это их короткая длина контекста. Модели кодировщиков, способные считывать значительно более длинные контексты, редко оценивались с точки зрения их эффективности в тематическом моделировании. Поэтому мы не знали, работают ли эти более крупные модели трансформеров в конвейере тематического моделирования и как именно. Другая проблема заключается в том, что они создают многомерные эмбеддинги, которые часто негативно влияют на модели машинного обучения без учителя ([4]). Это может быть связано либо с тем, что евклидовы расстояния увеличиваются в многомерном пространстве, либо с тем, что количество параметров резко возрастает с увеличением размерности входных данных, что затрудняет восстановление параметров.
Мы можем решить эти проблемы следующим образом:
Разделение документов на более мелкие фрагменты, которые помещаются в контекстное окно преобразователя предложений. К сожалению, такое разделение может привести к тому, что фрагменты текста окажутся совершенно вне контекста, и для разделения документов на семантически осмысленные части может потребоваться немало усилий.
Использование генеративных моделей для обобщения содержания этих документов. Модели с линейной структурой отлично справляются с этой задачей и могут также удалять все виды шума, возникающего при токенизации, и нерелевантную информацию из текстов, которая может препятствовать работе нашей тематической модели.
Теперь давайте подведем итоги компромиссов, связанных с использованием сводных данных, сгенерированных LLM, в тематическом моделировании, как показано на следующем изображении.
Рекомендуемая стратегия предварительной обработки документов с помощью LLM состоит из двух этапов:
Обучите тематическую модель с помощью простой предварительной обработки или без предварительной обработки вообще.
Если вы обнаружите, что тематические модели с трудом справляются с интерпретацией вашего корпуса, использование суммаризации на основе LLM может стать хорошим выбором, если компромиссы в вашем конкретном проекте окажутся приемлемыми.
4.1.1. Резюмирование документа в коде
Теперь давайте рассмотрим, как можно обобщать документы с помощью LLM. В этом примере мы будем использовать GPT-5-nano, но Turftopic также позволяет запускать открытые LLM локально. Мы рекомендуем по возможности использовать открытые LLM локально из-за более низких затрат и лучшей конфиденциальности данных.
import pandas as pd from tqdm import tqdm from turftopic.analyzers import OpenAIAnalyzer, LLMAnalyzer # Загрузка данных data = pd.read_parquet(«data/ecb_data.parquet») content = list(data[«content»]) # Мы пишем запрос, который извлечет необходимую информацию # Мы просим модель разделить информацию на ключевые моменты, чтобы # их было легче моделировать summary_prompt=»Summarize the following press conference from the European Central Bank into a set of key points separated by two newline characters. Reply with the summary only, nothing else. n {document}» # Формализуем резюме summarizer = OpenAIAnalyzer(«gpt-5-nano», summary_prompt=summary_prompt) summaries = [] # Суммируем DataFrame, отслеживаем выполнение кода for document in tqdm(data[«content»], desc=»Summarising documents…»): summary = summarizer.summarize_document(document) # Мы выводим сводки по мере выполнения для проверки корректности, чтобы убедиться, что # запрос работает print(summary) summaries.append(summary) # Собираем сводки в датафрейм summary_df = pd.DataFrame( { «id»: data[«id»], «date»: data[«date»], «author»: data[«author»], «title»: data[«title»], «summary»: summaries, } )
Далее мы построим простую модель KeyNMF на основе ключевых точек в этих резюме и позволим модели определить количество тем, используя байесовский информационный критерий. Этот подход очень хорошо работает в данном случае, но следует помнить, что автоматическое определение количества тем имеет свои недостатки. Для получения дополнительной информации о том, как модели справляются с определением количества тем, ознакомьтесь с таблицей лидеров моделей по темам.
import numpy as np import pandas as pd from sentence_transformers import SentenceTransformer from turftopic import KeyNMF # Создание корпуса из текстовых резюме (не оригинальных текстов) corpus = list(summary_df[«summary»]) # Сбор ключевых точек путем сегментации по двойным переносам строк points = [] for doc in corpus: _points = doc.split(«nn») doc_points = [p for p in _points if len(p.strip().removeprefix(» — «))] points.extend(doc_points) # Указание KeyNMF автоматически определять количество тем с помощью BIC model = KeyNMF(«auto», encoder=»paraphrase-mpnet-base-v2″) doc_topic = model.fit_transform(points) # Вывод идентификаторов тем с наиболее часто встречающимися словами model.print_topics()
Вот результаты работы KeyNMF, обученной на кратких описаниях документов:
совет, управляющий, ставка, решение, собрание, рефинансирование, консенсус, единогласный, обеспечить, ставки
4.3. Тематический анализ с использованием LLM-моделей
В типичном конвейере тематического анализа пользователь сначала обучает тематическую модель, затем тратит время на интерпретацию результатов, полученных моделью, вручную размечает темы и, наконец, предоставляет краткое описание типов документов, содержащихся в теме. Это трудоемкий процесс, особенно в корпусах с большим количеством выявленных тем.
Теперь эту часть работы могут выполнить специалисты с дипломом магистра права, способные легко генерировать удобочитаемые названия и описания тем. Для этого мы будем использовать тот же API анализатора из Turftopic:
Мы применяем анализатор к вводным заявлениям ЕЦБ, которые сопровождают каждое решение по денежно-кредитной политике. Эти заявления тщательно подготовлены и имеют относительно стандартную структуру. Ниже приведены названия тем с их описаниями и наиболее часто встречающимися словами, полученными из файла analysis_result:
Далее покажем, как часто встречались названия тем KeyNMF с течением времени. Это отражает интенсивность обсуждения этих тем на пресс-конференциях ЕЦБ за последние 25 лет:
from datetime import datetime import plotly.express as px from scipy.signal import savgol_filter # создать датафрейм из помеченных тем, # объединить с меткой времени из столбца даты time_df = pd.DataFrame( dict( date=timestamps, **dict(zip(analysis_result.topic_names, doc_topic.T / doc_topic.sum(axis=1))) ) ).set_index(«date») # сгруппировать датафрейм по ежемесячной частоте time_df = time_df.groupby(by=[time_df.index.month, time_df.index.year]).mean() time_df.index = [datetime(year=y, month=m, day=1) for m, y in time_df.index] time_df = time_df.sort_index() # отобразить датафрейм с помощью Plotly for col in time_df.columns: time_df[col] = savgol_filter(time_df[col], 12, 2) fig = px.line( time_df.sort_index(), template=»plotly_white», ) fig.show()
Здесь представлен фрейм данных тематической модели с разметкой, отображаемый в годовом порядке:
Результаты модели в контексте: Тема валютного союза была наиболее заметна в начале 2000-х годов (см. [5] для получения дополнительной информации). Тема денежно-кредитной политики и решений по ставкам достигает пика в конце мирового финансового кризиса около 2011 года, в период, когда ЕЦБ (некоторые комментаторы ошибочно утверждают, что это произошло) повысил процентные ставки. Время появления темы инфляции и инфляционных ожиданий также совпадает с экономическими событиями: она резко возрастает около 2022 года, когда цены на энергоносители впервые с момента создания еврозоны подтолкнули инфляцию к двузначным показателям.
5. Резюме
Теперь давайте подведем итоги основных моментов статьи. Требования и код для этого урока находятся в этом репозитории.
ПосеянныйТематическая модель KeyNMF сочетает текстовые подсказки с новейшей тематической моделью, чтобы сосредоточить моделирование на определенной проблеме.
Обобщение данных для тематического моделирования сокращает время обучения, но имеет недостатки, которые следует учитывать в проекте.
Пакет Python Tutftopic реализует систематические описания и метки с использованием новейших LLM в конвейере тематического моделирования.
Ссылки
[1]Тэджин Пак, Фернандо Перес-Крус и Хён Сон Шин. 2025. Картирование пространства идей центральных банкиров. В: Рабочие документы BIS, № 1299, 16 октября 2025 г., 26 стр.
[2] Карло Альтавилла, Лука Бругнолини, Рефет С. Гюркайнак, Роберто Мотто и Джузеппе Рагуза. 2019. Измерение денежно-кредитной политики еврозоны. В: Журнал денежно-кредитной экономики, том 108, стр. 162–179.
[3] Росс Динс Кристенсен-Маклаклан, Ребекка М.М. Хике, Мартон Кардос и Метте Туно. 2024. Контекст – это ключ (NMF): Моделирование динамики тематической информации в СМИ китайской диаспоры. В: CHR 2024: Конференция по вычислительным гуманитарным исследованиям, 4–6 декабря 2024 г., Орхус, Дания.
[4] Мартон Кардош, Ян Косткан, Кеннет Эневольдсен, Арно-Квентин Вермилле, Кристоффер Нильбо и Роберта Рокка. 2025. S3 – Семантическое разделение сигналов. В: Труды 63-го ежегодного собрания Ассоциации вычислительной лингвистики (том 1: Длинные доклады), страницы 633–666, Вена, Австрия. Ассоциация вычислительной лингвистики.
[5] Мартин Фельдкирхер, Петр Кораб и Виктория Телиха. 2025. О чем говорят центральные банкиры? Данные из архива BIS. В: Рабочий документ CAMA № 35/2025.
[6] Мишель С. Лам, Джанис Тео, Джеймс А. Ландей, Джеффри Хир и Майкл С. Бернштейн. 2024. Индукция концепций: анализ неструктурированного текста с помощью концепций высокого уровня с использованием LLooM. В: Труды конференции CHI 2024 по человеческим факторам в вычислительных системах (CHI '24). Ассоциация вычислительной техники, Нью-Йорк, штат Нью-Йорк, США, статья 766, 1–28. https://doi.org/10.1145/3613904.3642830.
[7] Чау Минь Фам, Александр Хойл, Сименг Сун, Филип Резник и Мохит Ийер. 2024. TopicGPT: структура тематического моделирования на основе подсказок. В сборнике трудов конференции Североамериканского отделения Ассоциации вычислительной лингвистики 2024 года: Технологии обработки человеческого языка (том 1: Длинные статьи), страницы 2956–2984, Мехико, Мексика. Ассоциация вычислительной лингвистики.
Астрономы будут получать оповещения о небесных явлениях в течение нескольких минут после их обнаружения. Теренс О'Брайен, редактор раздела «Выходные». Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной…
Обзор компактного пресса для мягкого пластика Clear Drop — и что будет дальше. Шон Холлистер, старший редактор Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной странице вашего…
Учёные из Университета штата Северная Каролина представили композит нового поколения, способный самостоятельно восстанавливаться после серьёзных повреждений. Речь идёт о модифицированном армированном волокном полимере (FRP), который не просто сохраняет прочность при малом весе, но и способен «залечивать» внутренние…
Круглый 7-дюймовый сенсорный дисплей от Waveshare создан для разработчиков и дизайнеров, которым нужен нестандартный экран. Это IPS-панель с разрешением 1 080×1 080 пикселей, поддержкой 10-точечного ёмкостного сенсора, оптической склейкой и защитным закалённым стеклом, выполненная в круглом форм-факторе.…