Что такое NER (Named Entity Recognition)?
NER (Named Entity Recognition) — задача NLP, при которой модель находит в тексте слова и словосочетания, обозначающие конкретные объекты: людей, организации, географические названия, даты, денежные суммы, — и присваивает каждому найденному фрагменту метку соответствующего типа сущности. Такая разметка превращает свободный неструктурированный текст в структурированные данные, пригодные для автоматической обработки.
В отличие от классификации, которая описывает текст одной общей меткой, NER работает на уровне отдельных фрагментов внутри предложения и одновременно ищет сущности разных типов. Именно эта способность делает NER основой для извлечения структурированной информации из свободного текста — договоров, обращений клиентов, медицинских заключений или новостных статей.
Название задачи прижилось из англоязычной литературы по компьютерной лингвистике конца 1990-х годов, но сама идея — искать в тексте упоминания конкретных объектов реального мира — заметно старше и лежит в основе большинства систем автоматической обработки документов.
Сегодня NER редко используют в одиночку: чаще это первый шаг более крупного пайплайна — извлечения фактов, построения графа знаний или заполнения полей CRM-системы из свободного текста обращения. Без надёжного NER на входе такие системы вынуждены полагаться на ручной ввод данных или простые regex-правила, которые ломаются при малейшем отклонении от шаблона формулировки.
Какие типы сущностей выделяет NER?
Базовый набор типов сущностей включает персону, организацию, локацию, дату и денежную сумму, а под конкретную задачу таксономию расширяют своими категориями — например, названиями продуктов, номерами документов или медицинскими терминами. Чем ýже отрасль, тем специфичнее набор сущностей, которые нужно научить модель находить.
| Тип сущности | Метка | Пример из текста |
|---|---|---|
| Персона | PER | Мария Петрова, Иванов |
| Организация | ORG | ООО «Ромашка», Сбербанк |
| Локация | LOC | Москва, улица Ленина |
| Дата и время | DATE | 12 марта 2026 года |
| Денежная сумма | MONEY | 25 000 рублей |
| Продукт | PRODUCT | кредитная карта, iPhone 15 |
Готовые модели неплохо находят базовые типы вроде персон и дат, но специфичные категории — диагнозы, статьи закона, артикулы товаров — почти всегда требуют собственной таксономии и датасета, размеченного под конкретный домен заказчика. В медицинских текстах, например, отдельно выделяют категории «диагноз», «препарат» и «дозировка», а в юридических — «статья закона», «номер дела» и «сторона договора»: без такой детализации общая модель просто не различает эти сущности между собой.
Число типов сущностей в таксономии — компромисс между полнотой и качеством разметки: чем больше пересекающихся по смыслу категорий вводит заказчик, тем чаще разметчики расходятся во мнениях о правильном типе конкретной сущности, а модель — путается при обучении на противоречивых примерах. На старте проекта обычно ограничиваются 5–10 наиболее важными типами и расширяют список только после того, как базовая таксономия показала стабильное качество на пилотной выборке.
Как работает NER-модель?
NER-модель проходит по тексту токен за токеном и для каждого слова предсказывает, относится ли оно к какой-либо сущности и к какой именно. Современные модели опираются на трансформерную архитектуру: они учитывают контекст всего предложения, поэтому одно и то же слово может быть размечено по-разному в зависимости от окружающих слов.
Например, слово «Орёл» модель разметит как локацию в предложении «делегация прибыла в Орёл» и оставит без метки сущности в предложении «в небе кружил орёл» — разница определяется исключительно контекстом, а не самим словом. Такая контекстная чувствительность — прямое следствие обучения на большом объёме размеченных примеров с разнообразными формулировками.
До появления трансформеров для NER широко использовали более простые статистические модели — например, условные случайные поля (CRF), которые учитывали лишь несколько соседних слов. Такие модели были быстрее, но заметно чаще ошибались на длинных и неоднозначных предложениях, где верная разметка сущности зависит от контекста, вынесенного далеко за пределы ближайшего окружения слова.
Где применяется NER: в финтехе, медицине, поддержке?
В финтехе NER извлекает реквизиты, суммы и стороны сделки из договоров и выписок для автоматической проверки документов. В медицине — находит диагнозы, препараты и дозировки в заключениях врачей. В клиентской поддержке — вычленяет номер заказа, дату и продукт из обращения, чтобы автоматически направить его нужному специалисту.
Общая логика во всех трёх случаях одна: NER превращает неструктурированный текст в структурированные поля, которые дальше обрабатывает другая система — CRM, база данных или скрипт проверки комплаенса. Чем точнее NER-модель находит границы сущностей, тем меньше ручной доработки требует итоговый результат.
Похожая логика работает и в других отраслях: в ритейле NER выделяет из отзывов упомянутые модели товаров и магазины, в HR-системах — навыки и должности из резюме, а в новостной аналитике — компании, персон и географию событий для построения графов связей между упоминаниями.
Как размечают данные для NER: что такое BIO-разметка?
BIO — стандартная схема разметки для NER, где каждому слову текста присваивают один из трёх тегов: B (Begin — начало сущности), I (Inside — продолжение той же сущности) или O (Outside — слово вне какой-либо сущности). Такая пометка на уровне отдельных токенов и служит обучающими данными для модели.
Например, фраза «встреча с Иваном Петровым в Москве» размечается так: «Иваном» получает тег B-PER, «Петровым» — I-PER (продолжение той же сущности «персона»), «Москве» — B-LOC, остальные слова — O. Точность такой разметки напрямую определяет качество будущей модели: разметчики должны единообразно решать спорные случаи — например, включать ли должность в границы сущности «персона», — иначе модель обучится на противоречивом сигнале.
Именно поэтому проекты NER-разметки начинают с подробного гайдлайна и пилотной выборки: на небольшом объёме текстов фиксируют правила для типичных спорных случаев, а затем масштабируют разметку на полный датасет с уже согласованной инструкцией, чтобы избежать расхождений между разными разметчиками.
Как оценивают качество NER: что показывают precision и recall?
Precision в NER — доля сущностей, которые модель нашла верно, среди всех найденных ею сущностей. Recall — доля реальных сущностей текста, которые модель действительно обнаружила, а не пропустила. Обе метрики считают отдельно по каждому типу сущности, а не одним общим числом для всего текста.
Дополнительная сложность в оценке NER — то, что сущность нужно найти не только правильного типа, но и с точными границами: модель, нашедшая «Иван» вместо полного «Иван Петров», по строгой метрике засчитывается как ошибка, даже если тип сущности определён верно. Поэтому качественная разметка тестовой выборки с чёткими правилами о границах — обязательное условие для честной оценки NER-модели.
На практике precision и recall для NER часто сводят в единую F1-меру для каждого типа сущности, а затем усредняют по всем типам — так удобнее сравнивать разные версии модели одним числом, не теряя при этом детализацию по редким и часто ошибающимся категориям сущностей.
Раздельные метрики по типам сущностей особенно важны на этапе приёмки модели: агрегированный F1 может выглядеть высоким за счёт частых и простых типов вроде дат, а редкая, но критичная для бизнеса категория — например, «сумма штрафа» в юридических документах — при этом будет находиться заметно хуже среднего показателя по всей таксономии.