Меню

NER: распознавание именованных сущностей в NLP

NER: что это такое

NER (технология Named Entity Recognition), второе название — распознавание именованных сущностей — задача NLP, направленная на идентификацию и классификацию ключевых информационных элементов в текстовых данных. С помощью данной технологии компьютеры «понимают» текст на качественно новом уровне, идентифицируя в нём физические предметы.

NER, как умный помощник, который просматривает текст и автоматически выделяет из него именованные сущности – определенные слова иногда фразы, которые обозначают что-то уникальное и важное. Самые распространенные типы сущностей, которые ищет NER, это:

Люди: Имена (Иван Петров, Джек Лондон)

Организации: Названия учреждений, компаний (Google, Яндекс, Московский университет)

Места: Города, страны, континенты (Париж, Россия, Азия)

Даты: Конкретные периоды или даты (15 мая 2023, прошлый вторник, XIX век)

Время: Конкретное время (04:30, утро)

Валюта и сумма (100 долларов, 35 копеек)

Проценты: (15%, 3.14%).

И это далеко не полный список. Распознавание именованных сущностей может быть настроено для поиска любых специфических сущностей, которые важны для вашей задачи: названия продуктов, медицинские термины, химические элементы, номера патентов и так далее.

Рассмотрим пример. В предложении «Компания Яндекс открыла новый офис в Москве в январе 2024 года» система NER должна распознать: «Яндекс» как организацию, «Москва» как географическую локацию, «январь 2024 года» как временную метку. Такое автоматическое распознавание превращает неструктурированный массив данных в структурированную информацию, пригодную к дальнейшему использованию.

Стандартные типы сущности включают: персоны (PER), организации (ORG), локации (LOC), временные выражения (DATE/TIME), числовые значения (NUM), денежные единицы (MONEY).  В зависимости от области использования распознавания именованных сущностей перечень типов может существенно расширяться. К примеру, в медицинских текстовых данных добавляют названия заболеваний, препаратов и процедур.

Для чего применяют распознавание именованных сущностей

Распознавание именованных сущностей использует для различных целей. Технология NER решает фундаментальную проблему в NLP — преобразования неструктурированных массивов текстовых данных в форму, пригодную для машинного анализа. Рассмотрим основное практическое использование NER.

  • Извлечение информации: NER (Named Entity Recognition) служит первым этапом в системах извлечения информации (Information Extraction). После идентификации сущностей становится возможным определение связей между ними, построение графов знаний и заполнение структурированных баз данных. Например, обрабатывая новостные статьи, система может автоматически извлекать информацию о том, какая компания заключила сделку с какой организацией, на какую сумму и в какую дату.
  • Улучшение поиска информации: Представьте, что вы ищете все новости, связанные с компанией «Apple». Без NER поисковик может выдать вам статьи про фрукты. С NER он понимает, что «Apple» в данном контексте — это организация, и покажет вам новости про технологическую компанию.
  • Рекомендации контента: Если система знает, какие сущности (фильмы, актеры, жанры) вы предпочитаете, она может давать более точные рекомендации. Понимание того, о каких конкретных сущностях идёт речь в контенте, позволяет формировать более точные рекомендации. Если пользователь читает статьи об искусственном интеллекте, где упоминаются определённые компании и технологии, система может рекомендовать материалы с теми же сущностями. Новостные агрегаторы группируют статьи по упоминаемым персонам и организациям. Стриминговые сервисы связывают фильмы через общих актёров и режиссёров. Электронные библиотеки рекомендуют книги на основе географических локаций или исторических периодов, упоминаемых в уже прочитанных произведениях.
  • Автоматизированный ввод данных: Автоматизация ввода данных — наиболее востребованная область применения NER (Named Entity Recognition). Система документооборота использует распознавание именованных сущностей для автоматического заполнения баз с данными и форм. При обработке счетов-фактур NER извлекает реквизиты контрагентов, суммы, даты и номера документов. CRM-системы автоматически создают карточки клиентов из входящей корреспонденции. Банковские приложения распознают реквизиты из фотографий платёжных документов. Логистические системы извлекают адреса доставки из текстовых сообщений. Всё это существенно сокращает ручной труд и минимизирует ошибки человеческого фактора.
  • Улучшение качества анализа эмоционального настроя (Sentiment Analysis):  NER может помочь понять, к каким конкретным сущностям (продуктам, услугам) относятся положительные или отрицательные отзывы. Сентимент-анализ без привязки к конкретным сущностям даёт лишь общую картину эмоциональной окраски текста. NER позволяет определить, к каким именно объектам относятся выражаемые эмоции. В отзыве «Еда в ресторане отличная, но обслуживание ужасное» важно связать позитивную оценку с едой, а негативную — с сервисом. Такой детализированный анализ критически важен для мониторинга репутации брендов. Компания может обнаружить, что её продукт хвалят, но логистику критикуют. Инвесторы отслеживают настроения вокруг конкретных акций в социальных сетях. Политические аналитики используют распознавание именованных сущностей в оценке отношения аудитории к отдельным политикам и партиям.
  • Автоматическое суммирование: NER помогает быстро вычленить ключевые данные из больших объемов текстовой информации. Например, из медицинских записей можно автоматически извлечь имена пациентов, названия лекарств и даты приема.
  • Машинный перевод: Понимание типов сущностей помогает переводчикам лучше справляться с переводом имен собственных и специфических терминов.
  • Чат-боты и виртуальные ассистенты: Когда вы говорите: «Закажи пиццу в Додо Пицца на завтра в 7 вечера», чат-бот использует NER, чтобы понять, что «Додо Пицца» — это организация, «завтра» — дата, а «7 вечера» — время.
  • Анонимизация сведений: В конфиденциальных документах NER автоматически находит и скрывает личные данные (имена, адреса), чтобы защитить приватность.

Где применяют NER

NER (технология Named Entity Recognition) применяется практически в любой отрасли, где требуется обработка текстовых данных.

  • Медицина: В здравоохранении NER используется для извлечения сведений из карт пациентов, выявления названий лекарственных препаратов, диагнозов и симптомных явлений в медицинских текстах. Фармацевтические компании применяют технологию для анализа научных статей.
  • Финансы: В финансовой отрасли распознавание именованных сущностей помогает анализировать отчётность компании, мониторить упоминания в СМИ, обрабатывать биржевые новости. Банки используют технологию для комплаенс-контроля. Финансовые аналитики используют NER (распознавание именованных сущностей) для мониторинга упоминаний компаний в новостном потоке.
  • HR: HR-платформы автоматически парсят резюме, выделяя навыки, должности и названия работодателей.
  • Юридическая отрасль: юристы применяют NER, чтобы проанализировать судебные решения, контракты и законодательные акты, используя технологию для извлечения имён сторон, дат и сумм из договора. Система электронной обработки документов автоматически классифицируют и маршрутизируют документы на основе распознанных сущностей.
  • e-commerce: NER помогает обработать отзывы покупателей, распознавая упоминание конкретного товара и его характеристик. Службы поддержки используют технологию для автоматической категоризации обращений и маршрутизации к соответствующим специалистам.
  • Безопастность: Спецслужбы и правоохранительные органы применяют NER (Named Entity Recognition) в анализе больших массивов неструктурированных данных, выявления связей между лицами и организациями, отслеживания угроз в открытых источниках.

Как происходит распознавание именованных сущностей NER в NLP

Процесс автоматического распознавания именованных сущностей NER в NLP основывается на двух взаимосвязанных этапах, каждый из которых выполняет свою цель.

Распознавание сущности

Первый этап: система определяет границы именованной сущности в массиве текста — где начинается и заканчивается каждая сущность. Эта задача нетривиальна, поскольку сущности могут состоять из нескольких слов («Центральный банк Российской Федерации»), включать предлоги и союзы, а также пересекаться с обычными словами.

Для разметки границ используется схема BIO (или её расширения BIOES, BILOU). В этой схеме каждому токену присваивается метка: B (Beginning) — начало сущности, I (Inside) — продолжение сущности, O (Outside) — токен не является частью сущности. Например, для фразы «Президент Владимир Путин» разметка будет: Президент-O, Владимир-B-PER, Путин-I-PER.

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

Второй этап: отнесение каждой распознанной единицы к определённой категории. NER (Named Entity Recognition) в NLP обычно выполняет оба этапа одновременно, присваивая каждому токену комбинированную метку, включающую и позицию относительно границ сущности, и её тип (например, B-ORG, I-PER, O).

Классификация требует учёта контекста, например, «Apple» может обозначать компанию или фрукт и это зависит от окружения. «Вашингтон» — это город, штат, человек или учреждение. Качественная система NER должна анализировать контекст, чтобы правильно классифицировать такие неоднозначные случаи.

Решение онтологической и языковой омонимии сущностей: как система NER в NLP решает проблему с неоднозначностью языка

Естественный язык изобилует неоднозначностями, и NER системы должны справляться с несколькими типами омонимии при распознавании именованных сущностей.

  • Языковая омонимия возникает, когда одно написание может относиться к сущностям разных типов: «Марс» — планета, шоколадный батончик или древнеримский бог. «Электросталь» — название города (Московская область) и завода.
  • Онтологическая омонимия связана с необходимостью определить, какую конкретную сущность из множества однотипных имеет в виду автор текста. Упоминание «Михаил Иванов» может относиться к тысячам людей с этим именем. «Банк России» и «Центробанк» обозначают одну организацию разными наименованиями.

Современная система NER (Named Entity Recognition) в NLP разрешает омонимию через анализ контекста. Нейросетевые модели создают контекстуализированные эмбеддинги, где представление слова зависит от его окружения. «Apple» в контексте «представила новый iPhone» получит представление, отличное от «Apple» в контексте «упала с дерева».

Способы NER

Распознавание именованных сущностей за десятилетия развития технологии сформировало три основных подхода к решению задачи NER, каждый со своими преимуществами и ограничениями.

Раньше для решения задачи NER использовали правила и шаблоны, но сейчас чаще применяются метод машинного обучения и глубокого обучения. Модель обучается на размеченных текстах, где сущности уже выделены и классифицированы. Среди популярных архитектур — рекуррентные нейронные сети (RNN), трансформеры (например, BERT), которые позволяют учитывать контекст и повышать точность распознавания. Рассмотрим каждым способ.

Способ NER, основанный на правилах

Rule-based NER (Named Entity Recognition) использует вручную созданные правила и словари идентификации именованной сущности. Регулярное выражение, шаблоны, списки известных сущностей и грамматические паттерны – составляющие правил. Например, последовательность «Господин» + слово с заглавной буквы + слово с заглавной буквы вероятно является именем персоны.

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

Данный подход остаётся актуальным в задачах распознавания именованных сущностей с чётко определённой структурой — извлечение телефонов, email-адресов, ИНН, дат в стандартных форматах. В таких случаях правила работают быстро и надёжно.

Способ NER, основанный на машинном обучении

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

CRF остаётся популярным выбором благодаря способности учитывать зависимости между соседними токенами. Модель обучается на размеченных данных и использует разнообразные признаки: морфологические характеристики слов, регистр, наличие в словаре, позицию в предложениях и  слова, которые расположены рядом.

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

Способ NER на основе глубокого обучения

Глубокое обучение кардинально изменило распознавание именованных сущностей NER (Named Entity Recognition) в NLP. Нейросетевые архитектуры автоматически распознают и извлекают признаки из данных, устраняя необходимость ручного feature engineering. Современные системы NER достигают качества, сопоставимого с человеческим уровнем.

Рекуррентные нейронные сети (LSTM, GRU) эффективно захватывают последовательные зависимости в тексте. Архитектура BiLSTM-CRF комбинирует двунаправленные LSTM для извлечения контекстуальных представлений с CRF-слоем для моделирования зависимостей между метками.

Трансформерные модели (BERT, RoBERTa, XLNet) установили новые стандарты качества. Предобученные на больших корпусах, они захватывают глубокие семантические и синтаксические закономерности языка. Fine-tuning на задачу NER требует относительно небольшого объёма размеченных данных.

Для русского языка особенно релевантны NER модели DeepPavlov, ruBERT, ruRoBERTa, которые предобучены на русскоязычных корпусах и демонстрируют высокое качество на отечественных бенчмарках.

Современные подходы к NER продолжают активно развиваться, что связано с постоянным ростом объема текстовой информации и усложнением задач, которые необходимо решать. Одним из важных направлений является мультиязычный NER — способность моделей распознавать именованные сущности в текстах на разных языках, что особенно актуально для глобальных компаний и международных проектов. Для этого используются либо универсальные модели, обученные на многоязычных корпусах, либо специализированные модели для каждого языка.

Этапы подготовки данных для обучения NER модели в NLP

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

  • Первый этап — установление онтологии сущностей. Нужно чётко понимать, какие типы сущностей релевантны для вашей задачи, и составить подробные аннотационные гайдлайны. Должны быть описаны граничные случаи: включать ли должности в имена персон, как обрабатывать аббревиатуры, как размечать вложенные сущности.
  • Второй этап — сбор корпуса текстов. Тексты должны быть репрезентативными для целевого применения. Если распознавание именованных сущностей будет для юридических документ, корпус должен содержать юридические тексты, а не новости. Важно обеспечить разнообразие: разные авторы, временные периоды, стили изложения.
  • Третий этап — разметка. Аннотаторы проходят обучение, после чего размечают корпус с установленными гайдлайнами. Для обеспечения качества рекомендуется двойная разметка с последующим разрешением разногласий. Метрика межаннотаторского согласия (Inter-Annotator Agreement) позволяет оценить качество разметки и ясность гайдлайнов.
  • Четвёртый этап — валидация и очистка. Размеченные данные проверяются на консистентность: одинаковые упоминания должны быть размечены одинаково. Выявляются и исправляются систематические ошибки. Данные разбиваются на обучающую, валидационную и тестовую выборки.
  • Пятый этап — приведение к формату модели NER. Данные конвертируются в формат, ожидаемый алгоритмом обучения — обычно это последовательности токенов с соответствующими метками в формате BIO или его расширениях.

Обзор инструментов для создания NER модели

Экосистема инструментов для NER (Named Entity Recognition) в NLP богата и разнообразна. Для разметки данных широко используются платформы Label Studio, Prodigy, Doccano и BRAT. Они предоставляют удобные интерфейсы для аннотирования текстов, поддерживают коллаборативную работу и экспорт в стандартные форматы.

  • spaCy предлагает готовую NER модель на многих языках и инструменты для обучения собственных моделей. spaCy отличается высокой производительностью и удобным API. Распознавание именованных сущностей для русского языка — доступны модели NER от сообщества, хотя их качество уступает англоязычным аналогам.
  • Фреймворк Flair от Zalando Research предоставляет state-of-the-art NER через комбинацию контекстуальных эмбеддингов и LSTM-CRF архитектуры. Flair поддерживает стекирование различных эмбеддингов и показывает отличные результаты на множестве бенчмарков.
  • Cognito — российская платформа с сильными NER, предоставляющий многофункциональный API. Модель обучена на отечественных датасетах и показывают высокое качество на русскоязычных текстах. Платформа активно поддерживается и развивается.
  • Стоит также упомянуть Stanford NER, NLTK, DeepPavlov, Natasha (для русского языка), Stanza и AllenNLP. В зависимости от требований к качеству, скорости, поддерживаемых языков и свободных вычислительных ресурсов можно выбрать необходимый инструмент.
  • Hugging Face Transformers — центральный хаб для работы с трансформерными моделями. Библиотека предоставляет унифицированный интерфейс для fine-tuning BERT и подобных моделей на задачу token classification (NER). Для Named Entity Recognition (распознавание именованных сущностей) доступны предобученные NER модели на множестве языков методами NLP.

Может ли NER распознавать неизвестные сущности

Распознавание ранее не встречавшихся именованных сущностей (Out-of-Vocabulary, OOV) — один из ключевых вызовов для NER систем в NLP. В настоящее время современные нейросетевые модели способны распознавать сущности, которых не было в обучающей выборке.

Модели обучаются распознавать паттерны, характерные для сущностей определённых типов: имена людей обычно пишутся с заглавной буквы, организации часто содержат слова «компания», «банк», «университет», даты следуют определённым форматам. Контекстуальные эмбеддинги позволяют модели «понимать» значение незнакомых слов через их окружение. Если в тексте появляется «стартап Neurolink представил новое устройство», модель распознает Neurolink как организацию на основе контекста, даже если никогда не видела это название ранее. Символьные (character-level) эмбеддинги позволяют модели анализировать морфологическую структуру слов. Незнакомое название компании «Россинновации» будет обработано на уровне символов, и NER модель сможет извлечь полезные признаки из его структуры.

Тем не менее качество распознавания незнакомых именованных сущностей обычно ниже, чем для сущностей из обучающего корпуса. Для критичных приложений рекомендуется регулярно дообучать модели на новых данных и поддерживать актуальные словари (gazetteers).

Как оценить точность NER распознавания

Оценка качества Named Entity Recognition (распознавание именованных сущностей) NER моделей в NLP требует тщательного подхода, поскольку задача включает как определение границ сущностей, так и их классификацию. Стандартные метрики: Recall (полнота), F1-score (гармоническое среднее), Precision (точность).

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

Recall показывает, какую долю реальных сущностей модель обнаружила. Низкий Recall означает много пропусков — модель не находит часть сущностей. F1-score балансирует обе метрики и часто используется как основной показатель качества.

NER — фундаментальная технология NLP, активно развиваясь, прошла долгий путь от простых шаблонов до сложных интеллектуальных трансформерных моделей, делая распознавание именованных сущностей быстрым и точным.