Открыть сервис

Распознавание именованных сущностей

Распознавание именованных сущностей (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 (словарный режим). Преимущества: высокая точность на статичных доменах, прозрачность. Недостатки: низкая полнота, трудоёмкость поддержки.

Методы машинного обучения

Ансамблевые и гибридные подходы

Комбинируют несколько моделей (например, 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 →