Распознавание именованных сущностей (NER): от классического NLP к извлечению на базе ИИ
Распознавание именованных сущностей (Named Entity Recognition, NER) — это один из краеугольных камней обработки естественного языка (Natural Language Processing, NLP). Этот процесс представляет собой автоматическое обнаружение и классификацию ключевых элементов в неструктурированном тексте по заранее определенным категориям, таким как имена людей, названия организаций, географические объекты, даты, денежные суммы и наименования продуктов.
Без NER поисковым системам, рекомендательным сервисам и системам автоматического анализа документов было бы сложно понять, кто, что, где и когда упоминается в тексте.
В этом руководстве мы подробно рассмотрим концепцию NER, эволюцию данной технологии и то, почему современный генеративный ИИ полностью изменил принципы извлечения сущностей.
1. Эволюция методов NER
Чтобы понять, почему NER на базе ИИ настолько революционен, давайте посмотрим, как развивались технологии извлечения сущностей на протяжении последних десятилетий.
Этап 1: Системы на основе правил и словарей
Ранние системы NER полагались на регулярные выражения (regex) и вручную составленные словари (gazetteers).
- Принцип работы: Если слово присутствовало в базе данных географических названий или соответствовало шаблону (например, формат телефонного номера), оно извлекалось.
- Ограничения: Крайне высокая хрупкость. Системы не справлялись с опечатками, новыми сущностями или сложным контекстом. Например, они не могли определить, относится ли слово «Apple» к фрукту или к технологической компании.
Этап 2: Классическое машинное обучение (CRF и SVM)
В 2000-х годах стандартом стали статистические модели машинного обучения, такие как условные случайные поля (CRF) и метод опорных векторов (SVM).
- Принцип работы: Инженеры вручную проектировали признаки (префиксы, суффиксы, шаблоны написания с заглавной буквы) и обучали модели на размеченных данных для предсказания вероятности принадлежности токена к сущности.
- Ограничения: Требовались огромные наборы размеченных данных и трудоемкая ручная работа над признаками.
Этап 3: Глубокое обучение (BiLSTM-CRF и BERT)
С развитием глубокого обучения двунаправленные сети долгой краткосрочной памяти (BiLSTM) в сочетании с CRF, а затем и модели-трансформеры (такие как BERT), совершили революцию в NLP.
- Принцип работы: Векторные представления слов (embeddings) улавливали семантический смысл, а глубокие нейросети понимали контекст. Модели на базе BERT могли легко распознать «Apple» как организацию в предложении «Apple представила новый iPhone» на основе окружающего контекста.
- Ограничения: По-прежнему требовалось контролируемое обучение (fine-tuning) на специализированных наборах данных, а также отсутствовала гибкость извлечения новых категорий без переобучения.
Этап 4: Генеративный ИИ и NER на базе LLM
Сегодня большие языковые модели (LLM), такие как Gemini, GPT-4 и Llama 3, выполняют задачи NER за счет глубокого семантического понимания контекста и следования инструкциям.
- Принцип работы: С помощью промптинга Zero-shot или Few-shot пользователь может дать указание модели извлечь абсолютно любую категорию сущностей и вернуть результат в структурированном виде (например, в формате JSON).
- Почему это побеждает: Модели понимают сложный синтаксис, игнорируют опечатки, логически разбирают двусмысленные фразы и не требуют обучающих данных на старте.
2. Сравнение: NER на базе ИИ vs. Классический NER
| Характеристика | Классический NER (BERT / CRF) | NER на базе ИИ (LLMs) |
|---|---|---|
| Необходимые обучающие данные | Высокие (Тысячи размеченных примеров) | Отсутствуют или минимальны (Zero-shot / Few-shot) |
| Гибкость | Жесткая (Извлекает только те категории, на которых обучался) | Экстремально высокая (Любые сущности можно задать в промпте) |
| Понимание контекста | Умеренное (Локальное окно контекста) | Глубокое (Понимает общий смысл документа и намерения автора) |
| Работа с незнакомыми словами (OOV) | Слабая (Тяжело обрабатывает новые слова) | Отличная (Использует семантические рассуждения) |
| Скорость выполнения и стоимость | Быстро и дешево (Локально на компактных CPU/GPU) | Медленнее и дороже (Требуются вычисления на больших моделях) |
3. Ключевые области применения NER на базе ИИ
Извлечение сущностей на базе ИИ выходит за рамки простого выделения текста. Превращая неструктурированные данные в структурированный JSON, технология автоматизирует сложные бизнес-процессы:
Анализ документов и извлечение данных
Компании ежедневно обрабатывают тысячи счетов-фактур, резюме, контрактов и тендерных документов (RFP). NER на базе ИИ позволяет извлекать:
- Счета-фактуры: ИНН, перечень товаров/услуг, итоговые суммы, адреса выставления счетов.
- Резюме: Имена кандидатов, опыт работы, ключевые навыки, названия вузов.
- Контракты: Даты расторжения соглашений, лимиты ответственности, применимое право, имена подписантов.
Построение графов знаний
Извлекая сущности и взаимосвязи между ними (например, [Jennifer Lee] -> [работает в] -> [Acme Innovations]), NER выступает базовым механизмом для наполнения графов знаний, которые все чаще интегрируются с GraphRAG для поиска по корпоративным базам данных.
Улучшенный RAG и разметка метаданных
В системах генерации с дополненной выборкой (RAG) индексация документов с метаданными (автор, версия продукта, страна, стек технологий) резко повышает качество поиска. NER на базе ИИ генерирует эти теги автоматически в процессе импорта документов.
Клинический и медицинский NLP
Медицинские организации используют NER для извлечения симптомов пациентов, дозировок препаратов, истории болезней и диагнозов из врачебных записей с автоматическим скрытием персональных данных (PHI) в соответствии с требованиями регуляторов.
4. Как работает NER на базе ИИ (Рабочий процесс)
Современный NER на базе ИИ строится на отправке системных инструкций и целевой схемы данных в LLM для получения строго структурированных ответов.
[Неструктурированный текст] ──> [LLM + Системные инструкции + JSON Schema] ──> [Структурированный JSON]
- Входной текст: Исходный текст для обработки.
- Системный промпт и схема: Мы описываем нужные сущности (Имя, Организация, Дата) и задаем формат (например, JSON).
- Извлечение моделью: Модель проводит семантический анализ, находит сущности, убирает двусмысленности и форматирует результат.
- Структурированный JSON: Результат готов для сохранения в БД или передачи в сторонний API.
5. Пример реализации: NER на базе ИИ на Python
Ниже представлен простой пример реализации NER на Python с использованием схемы структурированного вывода JSON:
import json
from google import genai
from google.genai import types
from pydantic import BaseModel
# Инициализируем клиент Gemini
client = genai.Client()
# Определяем структуру данных с помощью Pydantic
class EntityExtraction(BaseModel):
people: list[str]
organizations: list[str]
locations: list[str]
dates: list[str]
text_content = """
14 марта 2024 года Дженнифер Ли была назначена новым вице-президентом по инжинирингу
в Acme Innovations Inc., расположенной в Киото, Япония. Она сменит Дэвида Миллера.
"""
# Запрашиваем структурированный вывод у Gemini
response = client.models.generate_content(
model='gemini-2.5-flash',
contents=text_content,
config=types.GenerateContentConfig(
system_instruction="Извлеки всех людей, организации, локации и даты из предоставленного текста.",
response_mime_type="application/json",
response_schema=EntityExtraction,
),
)
# Десериализуем и выводим чистый JSON-результат
entities = json.loads(response.text)
print(json.dumps(entities, indent=2))
Результат:
{
"people": ["Jennifer Lee", "David Miller"],
"organizations": ["Acme Innovations Inc."],
"locations": ["Kyoto", "Japan"],
"dates": ["March 14, 2024"]
}
Заключение
Распознавание именованных сущностей прошло путь от статического поиска по словарям к гибкому семантическому анализу с использованием ИИ. Сегодня компании могут извлекать специфические сущности из любых неструктурированных документов без предварительного долгого обучения моделей. Интеграция NER на базе ИИ в рабочие процессы превращает хаотичные тексты в строгие базы данных, выводя автоматизацию и бизнес-аналитику на новый уровень.