Named Entity Recognition (NER)
Named Entity Recognition (NER, также entity extraction или entity identification) — подзадача обработки естественного языка (NLP), предназначенная для автоматического обнаружения и классификации «именованных сущностей» (людей, организаций, географических объектов, дат, денежных сумм и т. д.) в неструктурированном тексте по заранее определённым категориям[1][2].
Технология преобразует неструктурированные данные в структурированный вид, облегчая поиск и аналитическую обработку информации[3].
Общие сведения
| Распознавание именованных сущностей | |
|---|---|
| англ. Named Entity Recognition | |
| Область использования | Обработка естественного языка, Компьютерная лингвистика |
Определение
NER решает две связанные подзадачи:
- обнаружение последовательности токенов, являющейся именованной сущностью;
- отнесение этой сущности к конкретному классу (например, PER, ORG, LOC)[4].
Основные цели технологии:
- автоматическое извлечение ключевой информации из больших корпусов текста;
- преобразование текста в структурированные данные;
- ускорение поиска инсайтов и выявление трендов;
- минимизация человеческих ошибок при ручной разметке[1].
Распространённые категории сущностей:
- люди (PER);
- организации (ORG);
- географические объекты (LOC/GPE);
- даты и временные выражения;
- денежные значения и проценты;
- события, продукты, произведения искусства и др[2].
Структурные элементы процесса распознавания именованных сущностей
Процесс NER включает четыре взаимосвязанных компонента[2][5]:
- Предварительная обработка — токенизация, лемматизация, POS-теггирование, очистка текста.
- Извлечение признаков — формирование лексических, контекстных и семантических признаков (см. разделы ниже).
- Классификация — применение обученной модели (правила, CRF, BiLSTM, BERT и др.) для присвоения меток сущностям.
- Постобработка — устранение неоднозначности, агрегация пересекающихся или вложенных сущностей и валидация результатов.
Лексические признаки
Контекстные признаки
Семантические признаки
Семантические признаки отражают смысловые взаимосвязи и мировые знания:
- статические векторные представления слов (Word2Vec, GloVe);
- контекстуальные эмбеддинги (ELMo, BERT), формирующие динамические представления слова в конкретном контексте;
- онтологии и графы знаний, позволяющие соотносить сущность с реальным объектом мира[9].
Этапы работы
Полный жизненный цикл системы NER обычно включает пять фаз[10].
На этом шаге собирают и очищают текстовые данные, выполняют нормализацию, токенизацию и удаляют шумовые элементы, создавая однородную входную выборку[10].
Эксперты вручную отмечают границы и типы сущностей. Для повышения качества применяют двойную аннотацию и перекрёстную проверку[11].
Модель (CRF, BiLSTM-CRF, BERT-CRF и др.) обучается на размеченном корпусе. Современные системы часто используют трансформеры, дообучая предобученные языковые модели под конкретную предметную область[12].
После обучения модель применяется к новым документам. Результаты интегрируют в поисковые системы, чат-боты, BI-панели и другие корпоративные приложения[2].
Качество измеряется метриками Precision, Recall и F1-score на отложенной тестовой выборке. Полученные показатели используются для дообучения и периодического обновления модели[13].
Преимущества и недостатки
- Проактивное извлечение информации из больших массивов неструктурированного текста[14].
- Структурирование данных и упрощение последующей аналитики[15].
- Повышение релевантности результатов поисковых систем и рекомендательных сервисов[16].
- Автоматизация рабочих процессов и сокращение затрат времени на ручную обработку[15].
- Зависимость от объёмных, качественно размеченных данных; их создание трудоёмко[4].
- Амбигуитет: необходимость учитывать контекст для правильной классификации (Apple → фрукт или компания)[5].
- Снижение точности при появлении редких или новых сущностей, отсутствующих в обучающем корпусе[15].
- Высокие вычислительные затраты современных моделей глубокого обучения.
- Отсутствие единых стандартов наборов классов сущностей и методик оценки[14].
Сферы применения
- поисковые системы и вопросно-ответные сервисы;
- анализ новостных лент и социального медиа-контента;
- финансовая аналитика и мониторинг рисков;
- здравоохранение (извлечение диагнозов, препаратов, дат процедур);
- юридический анализ документов;
- кибербезопасность (идентификация URL, IP-адресов и индикаторов компрометации);
- поддержка клиентов и чат-боты[3].
Инструменты для использования в NER
В экосистеме NLP представлены как открытые библиотеки, так и коммерческие сервисы. Ниже приведены наиболее распространённые решения.
Фреймворки и библиотеки NER
- spaCy — высокопроизводительная библиотека на Python с предобученными моделями и визуализаторами[7].
- Hugging Face Transformers — тысячи предобученных трансформеров (BERT, RoBERTa, GPT-семейство) c удобным API pipeline.
- Flair — библиотека на PyTorch, ориентированная на SOTA-результаты благодаря контекстуализированным эмбеддингам[8].
- NLTK — учебный набор инструментов с базовой реализацией NER (chunking).
- Stanford NER — реализация CRF-модели на Java, исторический стандарт для воспроизводимости исследований.
- AllenNLP — исследовательский фреймворк на PyTorch с готовыми компонентами (LSTM-CRF, BERT-CRF).
Коммерческие API NER
- Google Cloud Natural Language API — извлечение сущностей, тональности и синтаксиса.
- Microsoft Azure Text Analytics — NER, анализ тональности, пользовательские модели.
- IBM Watson NLU — сущности, концепты, категории, эмоции.
- Amazon Comprehend — NER, ключевые фразы, тематическое моделирование.
- NLP Cloud — REST-API с многоязычными моделями spaCy и LLM-основанными расширениями.
- OpenAI GPT-4/3.5 API — извлечение сущностей через промпт-инжиниринг и функцию function calling.
Наборы данных для обучения
- CoNLL-2003 (англ., нем.) — 4 типа сущностей (PER, ORG, LOC, MISC); классический новостной корпус Reuters[17].
- OntoNotes 5.0 (англ., араб., китай.) — около 3 млн слов, 18 типов сущностей, кореференция и синтаксис.
- WNUT-17 — социальные медиа, редкие и новые сущности, 6 классов.
- ACE 2005 — многоязычный корпус (англ., араб., китай.) с аннотацией сущностей, отношений и событий.
Интеграция с другими NLP-системами
- Entity Linking — связывание распознанной сущности с объектом в базе знаний (Wikipedia, Wikidata).
- Coreference Resolution — установление, что местоимение или другое выражение относится к уже распознанной сущности.
- Relation Extraction — выявление семантических связей («компания — расположена в — город»).
- Semantic Role Labeling — определение ролей сущностей в рамках предиката («агент», «пациент»).
- Aspect-Based Sentiment Analysis — определение тональности в отношении каждой сущности.
- Summarization — сохранение ключевых сущностей при экстрактивном или абстрактивном сжатии текста.
- Question Answering — фильтрация потенциальных ответов по типу требуемой сущности и обращение к графу знаний[14].
Примечания
| Правообладателем данного материала является АНО «Интернет-энциклопедия «РУВИКИ». Использование данного материала на других сайтах возможно только с согласия АНО «Интернет-энциклопедия «РУВИКИ». |