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

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

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

Часто задаваемые вопросы

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    997
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1264
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1002

Представьте: вы анализируете медицинские статьи, где «Аспирин» — не бренд, а действующее вещество; «ИНН 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-системы под ваш домен. Получите консультацию по выбору инструментов и оценке необходимого объёма данных. Для предварительной оценки вашего кейса напишите нам — мы подготовим детальный план работ.