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

Извлечение сущностей

Извлечение сущностей (англ. Named Entity Recognition, NER) — это задача компьютерной лингвистики и обработки естественного языка (NLP), заключающаяся в автоматическом поиске и классификации в тексте именованных сущностей — объектов реального мира, которые могут быть обозначены собственными именами или числовыми выражениями. К таким сущностям относятся имена людей, названия организаций, географические наименования, даты, денежные суммы, проценты и другие категории. Извлечение сущностей является одной из ключевых технологий для структурирования неструктурированной текстовой информации и широко применяется в информационном поиске, аналитике, автоматическом реферировании и построении баз знаний.

История развития

Ранние подходы (1980-е — 1990-е годы)

Первые работы по извлечению сущностей были связаны с развитием систем информационного поиска и автоматического понимания текстов. В 1980-х годах исследователи использовали рукописные лингвистические правила и шаблоны, которые позволяли идентифицировать имена собственные на основе грамматических признаков (например, заглавная буква в начале слова) и контекстных словарей. Такие системы были узкоспециализированными и требовали больших трудозатрат на адаптацию к новым предметным областям.

Эпоха конференций MUC (1991—1998)

Значительный импульс развитию NER придали конференции Message Understanding Conference (MUC), организованные DARPA. Начиная с MUC-6 (1995), извлечение именованных сущностей было выделено в отдельную задачу. Участники соревновались в точности распознавания сущностей на английских текстах. В рамках MUC были определены классические категории (PERSON, ORGANIZATION, LOCATION, DATE, MONEY, PERCENT), которые до сих пор используются как базовые. Победители тех лет применяли комбинации правил и статистических методов, таких как скрытые марковские модели (HMM).

Статистические методы и машинное обучение (2000-е годы)

С развитием корпусной лингвистики и появлением размеченных наборов данных (например, CoNLL-2003, OntoNotes) на смену правилам пришли методы машинного обучения. Наиболее популярными стали:

  • Условные случайные поля (CRF) — вероятностная модель, учитывающая последовательность меток и контекстные признаки.
  • Метод опорных векторов (SVM) — применялся для классификации отдельных токенов.
  • Скрытые марковские модели (HMM) — использовались для моделирования последовательностей.

Эти подходы требовали ручного проектирования признаков (написание слова, его часть речи, соседние слова, наличие заглавных букв).

Глубокое обучение (2010-е годы — настоящее время)

Переломным моментом стало внедрение нейронных сетей. Сначала использовались рекуррентные сети (RNN, LSTM) с механизмом внимания. В 2018 году архитектура BERT (Bidirectional Encoder Representations from Transformers) от Google установила новый стандарт, достигнув точности, сопоставимой с человеческой, на многих эталонных наборах данных. Современные системы NER строятся на основе предобученных языковых моделей (трансформеров), таких как BERT, RoBERTa, DeBERTa, а также их русскоязычных версий (RuBERT, ruRoBERTa). Эти модели позволяют учитывать контекст с обеих сторон слова и значительно улучшают распознавание редких и многозначных сущностей.

Классификация сущностей

По типу

В зависимости от задачи и предметной области выделяют различные типы сущностей. Наиболее распространённые категории:

  • PERSON — имена, фамилии, отчества людей (например, «Иван Петров», «А. С. Пушкин»).
  • ORGANIZATION — названия компаний, учреждений, партий (например, «Сбербанк», «ООН», «Газпром»).
  • LOCATION — географические объекты: страны, города, реки, горы (например, «Москва», «Волга», «Альпы»).
  • DATE — абсолютные и относительные даты (например, «12 марта 2023 года», «вчера»).
  • TIME — временные интервалы и моменты (например, «15:30», «полдень»).
  • MONEY — денежные суммы и валюты (например, «1000 рублей», «$50»).
  • PERCENT — процентные соотношения (например, «25%», «десять процентов»).
  • PRODUCT — названия продуктов, товаров, моделей (например, «iPhone 15», «Toyota Camry»).
  • EVENT — названия событий, конференций, праздников (например, «Олимпийские игры», «День Победы»).

По степени детализации

  • Грубые (coarse-grained) — сущности общего типа (например, «организация»).
  • Тонкие (fine-grained) — сущности с более узкой специализацией (например, «университет», «больница», «банк»).

По способу задания

  • Предопределённые (fixed-type) — категории заданы заранее (например, стандартный набор MUC).
  • Открытые (open-type) — система может выделять любые сущности, не ограниченные фиксированным списком (например, названия лекарств, сортов вин).

Методы и подходы

Правила и шаблоны

Классический подход, основанный на регулярных выражениях и словарях. Пример: если слово начинается с заглавной буквы и не является началом предложения, а следующее слово — «улица», то это, вероятно, топоним. Достоинства: высокая точность на узких доменах, прозрачность. Недостатки: трудоёмкость создания правил, низкая обобщающая способность.

Статистические модели (CRF, HMM)

Условные случайные поля (CRF) — наиболее популярный метод до эпохи глубокого обучения. Модель обучается на размеченных данных и предсказывает последовательность меток для каждого токена. Признаки включают: орфографию (наличие заглавной буквы, цифр), часть речи, n-граммы, информацию из внешних словарей.

Нейронные сети (LSTM, трансформеры)

Современные системы NER строятся на архитектуре «кодировщик-декодировщик»:

  • Кодировщик (например, BERT) преобразует текст в векторные представления, учитывающие контекст.
  • Декодировщик (например, CRF-слой или линейный классификатор) присваивает каждому токену метку сущности.

Преимущества: автоматическое извлечение признаков, высокая точность, способность работать с многозначностью. Недостатки: необходимость больших вычислительных ресурсов и больших объёмов размеченных данных.

Zero-shot и few-shot обучение

Современные большие языковые модели (GPT-4, LLaMA) способны выполнять NER без специального дообучения, если дать им подходящий промпт (примеры разметки). Этот подход особенно полезен для редких доменов, где нет размеченных данных.

Применение

Информационный поиск и поисковые системы

NER позволяет улучшить качество поиска: например, запрос «выступления Путина в 2023 году» может быть обработан как поиск по сущностям PERSON («Путин») и DATE («2023 год»), а не как простой набор слов.

Анализ социальных сетей и мониторинг СМИ

Системы извлекают из новостей и постов имена политиков, названия компаний, событий. Это используется для построения графов связей, отслеживания трендов и выявления информационных атак.

Биомедицина и фармацевтика

В медицинских текстах NER выделяет названия болезней, лекарств, симптомов, генов. Например, система может автоматически извлечь из клинических записей диагнозы и назначения.

Финансовый сектор

Извлечение названий компаний, сумм сделок, дат из финансовых отчётов и новостей используется для автоматизации анализа рынка и выявления инсайдерской информации.

Юриспруденция

Автоматическое извлечение сторон договора, дат, сумм, ссылок на законы из юридических документов ускоряет работу юристов.

Оценка качества

Для оценки систем NER используются стандартные метрики:

  • Точность (Precision) — доля правильно выделенных сущностей среди всех выделенных системой.
  • Полнота (Recall) — доля правильно выделенных сущностей среди всех сущностей в тексте.
  • F1-мера — гармоническое среднее точности и полноты.

Оценка проводится на размеченных тестовых наборах данных (например, CoNLL-2003, OntoNotes 5.0, для русского языка — RuREBus, FactRuEval). Современные модели на базе трансформеров достигают F1 > 92% на стандартных английских корпусах и > 85% на русскоязычных.

Проблемы и ограничения

  • Неоднозначность — одно и то же слово может быть разными сущностями в зависимости от контекста (например, «Волга» — река или автомобиль).
  • Омонимия — имя человека может совпадать с названием организации (например, «Apple» — компания или фрукт).
  • Редкие и нестандартные сущностисложность распознавания никнеймов, аббревиатур, названий, состоящих из нескольких слов.
  • Языковая зависимость — модели, обученные на одном языке, плохо переносятся на другие без дообучения.
  • Необходимость качественной разметки — создание больших аннотированных корпусов требует значительных трудовых затрат.

Интересные факты

  • Первая система NER была разработана в 1991 году для извлечения имён из новостных статей в рамках проекта MUC-3.
  • Самый большой открытый корпус для NER — OntoNotes 5.0, содержащий разметку более 1,5 миллиона слов на английском, арабском и китайском языках.
  • В 2023 году модель GPT-4 продемонстрировала способность выполнять NER с точностью, сопоставимой со специализированными моделями, при использовании техники few-shot промптинга.
  • Для русского языка одним из наиболее известных наборов данных является RuREBus, разработанный в 2020 году и содержащий разметку сущностей в деловых текстах.

Источники

  • Nadeau, D., & Sekine, S. (2007). A survey of named entity recognition and classification. Lingvisticae Investigationes, 30(1), 3–26.
  • Sang, E. F., & De Meulder, F. (2003). Introduction to the CoNLL-2003 shared task: Language-independent named entity recognition. Proceedings of CoNLL-2003.
  • Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2019). BERT: Pre-training of deep bidirectional transformers for language understanding. NAACL-HLT.
  • Lample, G., Ballesteros, M., Subramanian, S., Kawakami, K., & Dyer, C. (2016). Neural architectures for named entity recognition. NAACL-HLT.
  • Руководство по корпусу RuREBus (2020). Институт проблем передачи информации им. А. А. Харкевича РАН.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →