Извлечение сущностей¶
Извлечение сущностей (англ. 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 →

