Распознавание именованных сущностей
Распознавание именованных сущностей (Named Entity Recognition, NER) — это задача обработки естественного языка (NLP) и извлечения информации, заключающаяся в поиске и классификации в тексте упоминаний объектов, относящихся к предопределённым категориям, таким как имена людей, названия организаций, географические наименования, даты, числовые выражения и другие. NER является одним из ключевых этапов в построении систем анализа текстов, позволяя переходить от неструктурированных данных к структурированным базам знаний.
История и развитие
Ранние подходы
Первые работы по распознаванию именованных сущностей относятся к концу 1980-х — началу 1990-х годов. Они были стимулированы проведением конференций Message Understanding Conference (MUC), где NER была выделена в отдельную задачу. На ранних этапах преобладали правилосообразные (rule-based) методы, основанные на ручном составлении словарей (газетиров) и наборе лингвистических шаблонов. Например, система могла искать слова с заглавной буквы, следующие за титулами («господин», «доктор»), или использовать списки известных топонимов. Такие системы (например, LaSIE, FASTUS) показывали высокую точность на узких доменах, но требовали огромных трудозатрат на адаптацию к новым тематикам и языкам.
Статистические методы
В конце 1990-х — начале 2000-х годов на смену правилам пришли статистические модели машинного обучения. Наиболее популярными стали скрытые марковские модели (HMM) и, в особенности, условные случайные поля (Conditional Random Fields, CRF). CRF позволяли учитывать контекстные зависимости между соседними токенами и достигать F1-меры выше 90% на стандартных корпусах, таких как CoNLL-2003. Для обучения требовались размеченные вручную корпуса (аннотированные тексты, где каждое слово отнесено к классу сущности или к классу «не сущность»). Основным недостатком статистических подходов была зависимость от объёма и качества разметки, а также сложность переноса модели на другой язык или предметную область (domain adaptation).
Глубокое обучение
С 2010-х годов доминирующим подходом стали нейросетевые архитектуры. Первоначально использовались рекуррентные нейронные сети (RNN), в частности двунаправленные LSTM (BiLSTM), которые обрабатывали последовательность слов в обоих направлениях. Выходной слой BiLSTM часто соединялся с CRF-слоем (BiLSTM-CRF), что позволяло моделировать не только контекст каждого токена, но и глобальные переходы между метками (например, метка B-PER не может следовать за I-LOC без промежуточной B-метки).
Следующий прорыв произошёл с появлением трансформерных моделей (BERT, RoBERTa, XLM-R, RuBERT для русского языка). Предобученные на огромных корпусах текстов (например, Wikipedia, Common Crawl) языковые модели позволяют получать контекстно-зависимые векторные представления слов (embeddings), которые затем дообучаются на задачу NER с минимальным количеством размеченных данных (fine-tuning). Современные системы на основе трансформеров (например, spaCy, Stanza, DeepPavlov) демонстрируют F1-меру до 95-97% на новостных текстах, хотя на специализированных доменах (медицина, юриспруденция) точность может быть ниже.
Классификация и типы сущностей
Стандартные категории
В большинстве корпусов и систем выделяются следующие основные типы именованных сущностей:
- PER (Person) — имена людей, фамилии, прозвища.
- ORG (Organization) — названия компаний, учреждений, политических партий, спортивных клубов.
- LOC (Location) — географические названия (страны, города, реки, горы).
- GPE (Geo-Political Entity) — географически-политические образования (государства, провинции), часто объединяется с LOC.
- DATE — даты, периоды времени.
- TIME — точное время.
- MONEY — денежные суммы.
- PERCENT — процентные значения.
- PRODUCT — названия товаров, продуктов, брендов.
- EVENT — названия событий (войны, конференции, фестивали).
- LAW — законы, нормативные акты.
Специализированные категории
Для конкретных предметных областей разрабатываются собственные таксономии. Например, в медицинских текстах выделяют сущности: «лекарственный препарат», «симптом», «диагноз», «анатомическая структура». В юридических — «статья закона», «истец», «ответчик». В финансовых — «тикер акции», «индекс».
Методы и подходы
Правилосообразные системы
Основываются на:
- Газетирах — списках известных имён, названий, географических объектов.
- Регулярных выражениях для поиска чисел, дат, адресов.
- Лингвистических шаблонах (например, «[Титул] [Фамилия]»).
Примеры: GATE, Stanford NER (гибридный режим), OpenNLP (словарный режим). Преимущества: высокая точность на статичных доменах, прозрачность. Недостатки: низкая полнота, трудоёмкость поддержки.
Методы машинного обучения
- Feature-based модели: CRF, SVM, MaxEnt. Для каждого слова строится вектор признаков: регистр букв, часть речи, морфологические характеристики, контекстные слова, вхождение в газетир.
- Нейросетевые модели: BiLSTM-CRF, трансформеры (BERT, GPT). Признаки извлекаются автоматически, модель обучается «сквозным» образом (end-to-end).
Ансамблевые и гибридные подходы
Комбинируют несколько моделей (например, CRF + BERT) или дополняют нейросеть правилами для повышения точности на редких сущностях. Часто используются в промышленных системах, где требуется высокая надёжность.
Применение
Информационный поиск и вопросно-ответные системы
NER позволяет извлекать из запроса ключевые сущности (например, «Александр Пушкин» — PER, «Москва» — LOC) и сопоставлять их с проиндексированными документами. Вопросно-ответные системы (QA) используют NER для идентификации объекта вопроса (например, «Кто написал „Войну и мир“?» — сущность «Война и мир» как PRODUCT).
Извлечение знаний и построение графов
На основе NER строятся базы знаний (например, Wikidata, DBpedia). Из текстов извлекаются триплеты вида (сущность — отношение — сущность). Пример: из предложения «Лев Толстой родился в Ясной Поляне» извлекается (Лев Толстой — место рождения — Ясная Поляна).
Анализ социальных сетей и мониторинг СМИ
Системы мониторинга (например, «Медиалогия», Brand Analytics) используют NER для отслеживания упоминаний брендов, персон, событий в новостях и соцмедиа. Это позволяет строить рейтинги упоминаемости, выявлять информационные поводы.
Биомедицина и биоинформатика
NER применяется для извлечения названий генов, белков, лекарств, заболеваний из научных статей и клинических записей. Это ускоряет систематизацию знаний и поиск в базах данных (PubMed, DrugBank).
Финансы и юриспруденция
Автоматическое извлечение названий компаний, сумм сделок, дат из контрактов и финансовых отчётов. NER используется в системах due diligence и комплаенс-контроля.
Трудности и ограничения
Неоднозначность (Ambiguity)
Одно и то же слово может быть разными сущностями в зависимости от контекста. Например, «Толстой» может быть фамилией писателя (PER) или названием посёлка (LOC). «Марс» — планета (LOC) или бренд шоколада (PRODUCT).
Нестандартные написания и опечатки
В текстах социальных сетей и мессенджеров встречаются намеренные искажения («Москва» → «Москвааа»), сленг, эмодзи. Модели, обученные на литературных текстах, часто дают сбои.
Сложные и вложенные сущности
Названия организаций могут включать другие сущности (например, «Министерство иностранных дел Российской Федерации» — вложенная GPE «Российской Федерации»). Даты могут быть записаны нестандартно («через две недели»).
Переносимость на другие языки и домены
Модель, обученная на новостях на английском языке, плохо работает на русских медицинских текстах. Для каждого нового языка и домена требуется либо разметка нового корпуса, либо применение методов трансферного обучения.
Инструменты и библиотеки
Открытые библиотеки
- spaCy — промышленная библиотека NLP, включает предобученные модели для NER на многих языках, в том числе на русском (ru_core_news_sm, ru_core_news_lg).
- Stanza (ранее Stanford CoreNLP) — предоставляет высокоточные модели для русского и других языков, поддерживает морфологический анализ.
- DeepPavlov — российская библиотека (разработчик — компания «МФТИ»), включает модели NER на основе BERT (RuBERT) и BiLSTM-CRF, оптимизированные для русского языка.
- Hugging Face Transformers — позволяет дообучать предобученные трансформеры (BERT, XLM-R) на собственных данных.
- NLTK — содержит базовые инструменты, но не имеет современных предобученных моделей.
Коммерческие сервисы
- Google Cloud Natural Language API — предоставляет NER с поддержкой русского языка, выделяет сущности типов Person, Organization, Location, Event, Product и другие.
- Yandex SpeechKit (Yandex NLP) — российский сервис, включает NER для русского языка, интегрирован с другими сервисами Яндекса.
- Amazon Comprehend — поддерживает NER для нескольких языков, включая русский (ограниченно).
- Microsoft Azure Cognitive Services (Language Service) — включает NER с поддержкой русского языка.
Оценка качества
Метрики
Для оценки NER-моделей используются стандартные метрики задач классификации:
- Точность (Precision) — доля правильно найденных сущностей среди всех найденных.
- Полнота (Recall) — доля правильно найденных сущностей среди всех реальных сущностей в тексте.
- F1-мера — гармоническое среднее точности и полноты.
Оценка проводится на размеченных корпусах (например, CoNLL-2003, OntoNotes 5.0, для русского языка — FactRuEval, RuREBus).
Бенчмарки
- CoNLL-2003 — классический английский корпус новостей (F1 лучших моделей ~ 93-94%).
- OntoNotes 5.0 — более сложный корпус с 18 типами сущностей (F1 ~ 88-90%).
- FactRuEval — российский корпус новостей (F1 лучших моделей на русском языке ~ 92-95%).
- RuREBus — корпус деловых документов на русском языке (F1 ~ 85-90% для современных моделей).
Интересные факты
- Первая система NER была разработана в 1991 году в рамках конференции MUC-3. Она распознавала только три типа сущностей: PERSON, ORGANIZATION, LOCATION.
- Термин «именованная сущность» (Named Entity) был введён на MUC-6 (1995 год) для обозначения объектов, которые могут быть однозначно идентифицированы по имени.
- Современные модели NER на основе трансформеров могут содержать от 100 миллионов до нескольких миллиардов параметров (например, GPT-3).
- В русском языке NER осложняется богатой морфологией (падежи, склонения) и свободным порядком слов. Например, «Пушкина» может быть как фамилией в родительном падеже (PER), так и названием города (LOC — город Пушкина).
- Существуют соревнования (shared tasks) по NER, например, конференции CoNLL, SemEval, BioNLP, где команды соревнуются в решении задач на специально подготовленных корпусах.
Источники
- Nadeau, D., & Sekine, S. (2007). A survey of named entity recognition and classification. Lingvisticae Investigationes, 30(1), 3-26.
- Lample, G., Ballesteros, M., Subramanian, S., Kawakami, K., & Dyer, C. (2016). Neural architectures for named entity recognition. Proceedings of NAACL-HLT 2016.
- Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2019). BERT: Pre-training of deep bidirectional transformers for language understanding. Proceedings of NAACL-HLT 2019.
- Tjong Kim Sang, E. F., & De Meulder, F. (2003). Introduction to the CoNLL-2003 shared task: Language-independent named entity recognition. Proceedings of CoNLL-2003.
- Документация библиотек spaCy, Stanza, DeepPavlov.
- Материалы конференций MUC (Message Understanding Conference).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →