Виділення іменованих сутностей (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-системи під ваш домен. Отримайте консультацію щодо вибору інструментів та оцінки необхідного обсягу даних. Для попередньої оцінки вашого кейсу напишіть нам — ми підготуємо детальний план робіт.