Извлечение именованных сущностей (NER): кастомные решения для бизнеса

Стандартные модели распознают лишь персоны и организации, но в вашей предметной области ключевые сущности остаются незамеченными. Мы разрабатываем кастомные NER-решения, которые настраиваются под вашу терминологию и бизнес-задачи. Наша команда реализует проект под ключ — от выбора архитектуры до внедрения и последующей поддержки.
Часто задаваемые вопросы

Представьте: вы анализируете медицинские статьи, где «Аспирин» — не бренд, а действующее вещество; «ИНН 7701234567» — не просто число, а идентификатор. Без кастомного NER вся аналитика превращается в ручной труд. Стандартные модели (CoNLL-2003) распознают только персоны, организации, локации — этого явно недостаточно для доменной лексики. Типичные бизнес-задачи: извлечение финансовых показателей из отчётов, идентификация лекарств в рецептах, распознавание юридических сущностей в договорах. Каждая требует индивидуального подхода.

Мы реализуем NER под ключ: от выбора архитектуры до деплоя в вашу инфраструктуру. Разберём, как настроить распознавание сущностей на русском языке, сравним инструменты и покажем, почему дообучение окупается. Затраты на разметку стартуют от $450–650, а экономия от автоматизации достигает $2.7k–3.9k в год.

Что такое NER? Named Entity Recognition — задача извлечения именованных сущностей из текста.NER (Named Entity Recognition) — это процесс идентификации и классификации именованных сущностей (персоны, организации, локации, даты и т.д.) в неструктурированном тексте. Без кастомной модели стандартные решения дают низкую точность на доменной лексике.

Стандартные типы сущностей и их расширение

Базовый набор (CoNLL-2003): PER (персоны), ORG (организации), LOC (местоположения), MISC (прочее). Для бизнеса этого мало. Типичные кастомные типы:

  • Финансы: MONEY, PERCENT, DATE, TICKER, FINANCIAL_INSTRUMENT
  • Медицина: DISEASE, DRUG, DOSAGE, PROCEDURE, ANATOMY
  • Юриспруденция: LAW, COURT, CASE_NUMBER, LEGAL_ENTITY
  • Логистика: ADDRESS, POSTAL_CODE, VEHICLE_ID, CARGO

Как выбрать инструмент для NER на русском языке?

natasha — оптимальный выбор для быстрого старта:

from natasha import Segmenter, MorphVocab, NewsEmbedding, NewsNERTagger, Doc

segmenter = Segmenter()
emb = NewsEmbedding()
ner_tagger = NewsNERTagger(emb)
doc = Doc("Газпром подписал контракт с немецкой компанией Wintershall в Берлине.")
doc.segment(segmenter)
doc.tag_ner(ner_tagger)
# [(Газпром, ORG), (Wintershall, ORG), (Берлине, LOC)]

spaCy (ru_core_news_lg): баланс скорости и качества, легко встраивается в production-пайплайны. BERT-based (DeepPavlov, HuggingFace): максимальная точность на сложных текстах, но выше latency.

Сравним инструменты в таблице:

Инструмент Точность (F1) Скорость (ms/предл.) Кастомные сущности
natasha 85–90% ~2 ms нет (только базовые)
spaCy 88–93% ~5 ms дообучение через prodigy
ruBERT 92–97% ~30 ms (CPU) fine-tuning через HF

Почему fine-tuning улучшает точность?

Fine-tuning на вашем корпусе убирает омонимию и поднимает F1 на 10–15%. Готовая модель путает «Яблоко» (фрукт) и «Яблоко» (компания). После дообучения модель учитывает контекст, что критично для доменной лексики. Процесс включает разметку, IOB2-форматирование и обучение через HuggingFace.

Сценарий F1 до fine-tuning F1 после fine-tuning
Медицинские термины 75% 91%
Юридические сущности 68% 88%

Fine-tuning для кастомных сущностей

Процесс:

  1. Разметка: Prodigy или Label Studio. Минимум 200–500 примеров на тип сущности.
  2. Формат: IOB2 (BIO-tagging) — стандарт для NER.
  3. Обучение: HuggingFace TokenClassification с предобученным RuBERT.
from transformers import AutoModelForTokenClassification, TrainingArguments
model = AutoModelForTokenClassification.from_pretrained(
    "DeepPavlov/rubert-base-cased",
    num_labels=len(label_list),
    id2label=id2label,
    label2id=label2id
)

Оценка качества NER

Entity-level F1 (strict) — основная метрика. «Strict» означает: правильный тип И правильные границы span. Partial match считается ошибкой.

Типичные показатели на русских текстах:

  • PER: F1 95–97% (легко распознаваемые паттерны)
  • ORG: F1 88–93% (много сокращений, аббревиатур)
  • LOC: F1 90–95%
  • Кастомные доменные сущности: 80–90% после fine-tuning на 1K+ примерах

Как мы реализуем NER под ваш домен?

Наш подход — инженерный, без чёрных ящиков. Этапы работы:

  1. Анализ данных: изучаем ваши тексты, определяем целевые сущности, оцениваем сложность (вложенность, омонимия, разнесённые сущности).
  2. Разметка и аугментация: готовим корпус в IOB2, контролируем качество через кросс-валидацию разметчиков.
  3. Выбор архитектуры: сравниваем natasha/spaCy/BERT на вашем корпусе, выбираем по F1 и latency.
  4. Fine-tuning и тестирование: обучаем модель, добиваемся F1 > 90% по целевым типам.
  5. Деплой: упаковываем в ONNX (CPU) или TorchServe (GPU), latency — от 5 до 30 мс на предложение.
  6. Передача: документация, код пайплайна, доступ к модели, обучение вашей команды.

Что входит в работу

В результате вы получаете:

  • Обученную модель с кастомными сущностями
  • Код инференса (Python, Docker-образ)
  • Инструкцию по переобучению на новых данных
  • Гарантийную поддержку на 3 месяца

Для каждого проекта мы готовим guideline для разметчиков, проводим тестовый раунд с контролем качества IAA (inter-annotator agreement > 0.9). После утверждения схемы начинаем полную разметку.

Сложные случаи

  • Вложенные сущности: «Министерство финансов России» — ORG + LOC. Большинство моделей не поддерживают вложенность; используем Span-BERT или biaffine NER.
  • Разнесённые сущности: «ООО… (далее — Компания)» — требуется модуль кореференции.
  • Омонимия: решается контекстом (трансформеры справляются лучше CRF).

Деплой и надёжность

Мы гарантируем стабильную работу модели под нагрузкой. Опыт — более 50 проектов по NLP, сертифицированные инженеры PyTorch. Свяжитесь с нами для оценки вашей задачи — пришлём план работ и сроки (от 2 до 6 недель в зависимости от объёма разметки).

Закажите разработку NER-системы под ваш домен. Получите консультацию по выбору инструментов и оценке необходимого объёма данных. Для предварительной оценки вашего кейса напишите нам — мы подготовим детальный план работ.

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139