Почему извлечение ключевых фраз ломается на живых текстах
Извлечение ключевых фраз выглядит простой задачей, пока тексты однотипные и чистые: подали документ — получили список терминов. На живом корпусе — договорах, протоколах совещаний, сканах, переписке — точность на реальных текстах падает, и в ответ вместе со смыслом приходят колонтитулы, реквизиты и обрывки таблиц.
Первый источник потерь — сама терминология. В одном подразделении пишут «узел учёта», в другом — сокращение, в третьем — опечатку от спешки, и один и тот же объект распадается на десяток написаний. Словарь предметной области у каждого заказчика свой, а без него извлечение ключевых фраз не понимает, что считать вариантом нормы.
Второй — шум в документах. Текст приходит из вёрстки, из таблиц, из сканов после распознавания, где символы склеиваются и путаются. Тогда команда уходит в ручной перебор терминов: списки стоп-слов, ручные правила, синонимы под каждый новый шаблон. Конструкция держится до первой смены поставщика или формы документа.
Для процесса это оборачивается тем, что поиск по архиву не находит нужный файл, а сводки по тегам показывают неполную картину — решения принимают по данным, которым нельзя доверять. Разбираем, как это закрывается и почему качество теряется не в модели, а на входе.
Эффект внедрения: покрытие терминов и объём ручной разметки
На старте проекта по разбору технических регламентов эксперт размечал термины вручную: около четырёхсот значимых фраз на тысячу страниц. До трети из них он физически не успевал отметить — они всплывали позже, на согласовании, когда документ уже ушёл дальше по процессу. Пропущенный термин обходится дороже лишнего: он не попадает в словарь, и в следующих документах система снова его не видит.
После настройки извлечения ключевых фраз покрытие терминологии вышло на 92–96% от экспертной разметки на том же типе документов. Основа — словарь предметной области, собранный из уже размеченных фрагментов; KeyBERT дообучается на этих парах, поэтому составные названия вроде «датчик давления контура охлаждения» остаются целыми, а не распадаются на отдельные слова.
Ручная разметка сокращается примерно в пять раз и меняет характер: эксперт не размечает с нуля, а подтверждает или отклоняет предложенное, тратя время на спорные случаи. Класс ошибок «пропущенный термин» уходит не полностью, но перестаёт быть системным — на него приходятся единичные случаи вместо трети корпуса.
Стабильный результат на новых документах держится за счёт того, что словарь и правила пополняются при каждом проходе, а не настраиваются один раз под первый файл. Скорость обработки корпуса меняется соразмерно: пакетный прогон тысяч страниц занимает часы, поэтому повторную разметку после правок регламента делают без отдельного проекта.
Подходы к извлечению: правила, статистика, языковые модели
Логика выбора начинается не с модели, а с характера данных. Там, где терминология закрытая и повторяется — регламенты, номенклатура, типовые договоры — словарные правила дают предсказуемые попадания и не требуют разметки. Как только корпус становится разнородным, словарь начинает отставать: каждую новую формулировку приходится вносить вручную.
Обучаемая модель выигрывает при стабильном домене и наличии нескольких сотен размеченных документов — она ловит фразы, которых нет в справочнике. Языковая модель подключается там, где совпадения буквального нет, а смысл сохраняется: перефразировки, синонимы, сокращения. На большинстве проектов мы собираем гибридную схему: кандидатов поставляют правила и статистика, а ранжирует их модель — редкие термины не теряются, а шум отсекается.
| Подход | Когда подходит | Ограничения |
|---|---|---|
| Словарные правила | Закрытая терминология, частые повторы, нужен объяснимый результат | Не находит новые формулировки, словарь ведётся вручную |
| Обучаемая статистическая модель | Есть разметка, домен стабилен, важна скорость на больших объёмах | Зависит от качества разметки, проседает при смене тематики |
| Языковая модель | Перефразировки, синонимы, нужен учёт контекста | Требует ресурсов, ограничена длиной документа |
| Гибридная схема | Разнородные документы, высокие требования к полноте и точности | Сложнее в поддержке, нужен контроль на каждом шаге |
Выбор фиксируем замером, а не на словах: прогоняем варианты на вашей выборке документов и смотрим долю точных попаданий и полноту по каждому классу фраз. Схема при этом остаётся заменяемой — компоненты меняются по отдельности, без переписывания всего контура извлечения.
Как проходит внедрение: от разбора корпуса до передачи решения
Порядок работ почти не зависит от того, где применяется извлечение ключевых фраз — в поиске по базе знаний, разборе обращений или аналитике отзывов. Сначала разбираем корпус, потом фиксируем разметку, и только затем настраиваем модель: если шаги поменять местами, получается решение, которое показывает красивые примеры и не переносится на реальный поток документов.
- Разбор корпуса. Смотрим, из чего состоит поток: типы документов, языки, доля дублей и служебного текста, есть ли готовая разметка. На выходе видно, где нужна нормализация — кодировки, колонтитулы, мусор после распознавания сканов.
- Постановка разметки. Договариваемся, что считаем ключевой фразой: длину, границы, вхождение в заголовок, обработку синонимов и сокращений. Размечаем эталонный набор и считаем согласие между разметчиками — без этого метрики качества ничего не значат.
- Схема извлечения. Собираем контур: базовый слой на статистике и совместной встречаемости слов, поверх — модель под домен, плюс нормализация, стоп-листы и словари терминов заказчика.
- Настройка под домен. Уточняем параметры на валидационной части, добавляем синонимы и названия продуктов, дообучаем модель на размеченных примерах.
- Проверка на отложенной выборке. Тестовый набор фиксируем заранее и не трогаем при настройке: считаем полноту и точность по фразам, разбираем ошибки по типам. Набор остаётся у заказчика как регрессионный — на нём проверяются любые дальнейшие правки.
- Передача решения. Отдаём код, конфигурации, модель, схему разметки и регламент обновления словарей. Обучаем команду, чтобы правки вносились без нас.
Что остаётся заказчику: конфигурации, разметка, регламенты
Мы отдаём не только работающий сервис, но и всё, что нужно для его самостоятельного развития. Комплект передачи рассчитан на вашу команду: инженерам — настройки и код, аналитикам — разметку и правила, руководителю — регламент, по которому решение живёт дальше.
- Конфигурация схемы извлечения: правила нормализации текста, стоп-слова, веса частей речи и пороги отсечения вынесены в отдельный файл настроек, а не спрятаны в коде.
- Размеченный корпус на 1–3 тысячи документов вашей предметной области: эталонные ключевые фразы, разделённые на обучающую и проверочную части.
- Инструкция по разметке: что считаем ключевой фразой, как склеивать составные термины, как разбирать спорные случаи — чтобы новые данные размечались одинаково разными людьми.
- Схема обработки текста от приёма документа до выдачи результата: где стоят проверки, где пишутся журналы событий, куда добавлять новые шаги.
- Регламент обновления словаря и моделей: периодичность, кто согласует изменения, как фиксируется просадка качества на проверочной выборке.
- Набор проверок и метрики прогона на эталонном корпусе — видно, стало извлечение точнее или хуже после правок.
- Документация по интеграции: форматы запроса и ответа, ограничения по объёму, поведение при пустом результате.
Каждый пункт — это файл, раздел документации или выданный доступ, а не устная договорённость. Через месяц после запуска вы сами меняете порог отсечения или добавляете свои правила разметки и сразу видите эффект на проверочном корпусе.
Кейс: как изменилось качество разбора документов после внедрения
До внедрения разбор держался на регулярных выражениях и словаре терминов, который аналитики дополняли вручную после каждой жалобы. На потоке однотипных документов — договоров, техпаспортов и приложений к ним — этого хватало на первую сотню страниц, дальше словарь расходился с реальными формулировками, и проверка превращалась в сплошное перечитывание.
Мы разметили эталонную выборку по классам полей и начали измерять точность и полноту отдельно по каждому классу, а не одной средней оценкой. Извлечение кандидатов собрали на spaCy, добавили словарные якоря и досчёт составных терминов с аббревиатурами по всему документу, а не по абзацу. Порог уверенности вывели в отдельную очередь: аналитик видит не весь поток, а только спорные места.
Метрики до и после
На том же потоке полнота выросла с 61% до 93%, точность — с 74% до 96%. Доля документов, уходящих в ручную проверку, упала с 100% до 18%, а разбор пакета на 200 страниц сократился с трёх часов до получаса.
Класс пропущенных терминов тоже сместился. Раньше терялись составные термины и аббревиатуры, расшифровка которых стояла в другом разделе; теперь остаточные пропуски — это термины внутри сканов таблиц и рукописных правок, где текстового слоя нет вовсе. Каждый такой случай попадает в очередь разбора, словарь пополняется, и на следующем типе документов качество не проседает с нуля.
Чем разметка под задачу отличается от готового словаря терминов
Готовый словарь терминов — это статичный список с нормализацией форм и порогом совпадений. Он уверенно отвечает на вопрос, встречается ли известное нам слово, но не на вопрос, называет ли эта фраза суть документа. Такой список прозрачен, объясняется проверяющему и правится одной строкой — поэтому как отправная точка он уместен почти всегда.
Разметка под задачу начинается не со списка, а со схемы: что именно считаем ключевой фразой в вашем домене — свойство изделия, дефект, сторону сделки, действие или условие. Дальше на корпусе ваших документов фиксируются критерии, спорные случаи и правило их разрешения, а разметку ведут несколько человек с регулярной сверкой. Мы отдельно считаем долю спорных фрагментов: если она высока, инструкция сырая, и модель выучит шум вместо закономерности.
Практическое отличие подходов в том, что словарь закрывает покрытие известных сущностей — регламентные термины, коды, устойчивые наименования, — а разметка задаёт границы фразы и её приоритет среди прочих. Рабочая стратегия чаще гибридная: словарь служит источником стартовых меток и жёстким слоем правил, поверх которого обученная на разметке модель разбирает живые формулировки.
Выбор стратегии диктует поведение языка и цена ошибки. Если класс терминов закрыт и меняется редко, словаря хватает надолго; когда формулировки обновляются, приходят синонимы и сокращения, качество упирается в потолок, который снимается только разметкой. На старте мы прогоняем оба варианта на одном наборе документов и показываем, на какой доле фраз они расходятся.
Частые технические сомнения: разметка, качество, сопровождение
Инженерные сомнения по извлечению ключевых фраз редко касаются самой задачи — чаще перехода: выдержит ли решение новые типы документов, сколько разметки придётся собрать, по каким критериям принимать качество и что останется команде после передачи. Ниже — ответы на то, что всплывает на этапе оценки чаще всего.
Придут документы нового типа — извлечение деградирует?
Признаки на уровне фраз и словари терминов предметной области настраиваются отдельно от модели, поэтому смена типа документа не требует пересборки. Достаточно разметить выборку новых документов и прогнать оценку на отложенной её части: расхождение по точности и полноте видно до выпуска, а не на живом потоке.
Сколько документов нужно разметить?
На старте — несколько сотен фрагментов; дальше работает активное дообучение: в разметку первыми уходят случаи с низкой уверенностью модели и пограничные термины. Каждая следующая сотня примеров даёт больше, чем предыдущая, и объём разметки растёт медленнее, чем качество извлечения.
Как принимаем работу и считаем качество?
Пороги точности и полноты фиксируем до старта — отдельно по каждой категории ключевых фраз, по редким терминам и по документам с плохим сканом. Спорные случаи сводим в один список: решение по каждому принимает ваша сторона, а не метрика вслепую.
Сможем сопровождать решение своими силами?
В передачу входит конфигурация извлечения, словари новой терминологии, прогон оценки на контрольной выборке и короткий регламент обновления. Добавление терминов переобучения не требует, а плановая проверка — прогон оценки на свежих документах с дообучением при просадке.
Обсудим задачу и вернёмся с оценкой и планом работ
Чтобы разговор сразу шёл по делу, приложите к нему образцы: 20–50 реальных документов из тех, что будут обрабатываться, включая «неудобные» — сканы, тексты с таблицами, колонтитулами и битой вёрсткой. Чем ближе выборка к рабочему процессу, тем точнее мы оценим, где извлечение ключевых фраз упрётся в качество исходного текста, а где достаточно настройки правил и словаря.
Полезно подготовить к обсуждению:
- список предметных терминов и сущностей, которые обязаны попадать в результат;
- примеры «правильных» ключевых фраз, размеченные вручную хотя бы на десятке документов;
- ожидаемый класс ошибок: что критичнее — пропустить значимую фразу или добавить лишнюю;
- требования к формату выдачи: таблица, файл, запись в базу или вывод прямо в интерфейсе;
- ограничения по доступам и хранению: где лежат данные и что нельзя выносить за контур;
- целевой объём: сколько документов в день обрабатывается и с какой скоростью нужен результат.
Оценка строится по этапам, и вы видите её логику. Постановка задачи фиксирует, что считаем ключевой фразой и как измеряем качество. Оценка объёма работ показывает, какие части решаются словарём и правилами, а какие требуют модели и разметки. План внедрения раскладывает работу на шаги с проверяемым результатом на каждом. Пилотный этап идёт на ограниченной выборке: сверяем выдачу с ручной разметкой, смотрим точность и полноту, и только потом масштабируем на весь массив.
Опишите задачу — вернёмся с оценкой, планом этапов и критериями приёмки пилота.







