Что такое NER?
Имена людей, названия организаций, книг, городов, и другие имена собственные называют «именованные сущности» (named entities), а саму задачу — «распознавание именованных сущностей». По-английски «Named entity recognition» или коротко NER; это сокращение регулярно используется и в русскоязычных текстах.
За одной задачей NER, на самом деле, стоит две: 1) обнаружить, что какая-то последовательность слов — это именованная сущность; 2) понять, к какому классу (имя человека, название организации, город и т.п.) эта именованная сущность относится. На каждом из этапов возникают свои сложности.
Какие бывают именованные сущности
Начнем со второго этапа: какие классы именованных сущностей обычно хотят найти. Никакого стандартного набора классов нет. Практически всегда стараются извлекать имена людей и названия мест и организаций, а дальше все зависит от конкретных задач, которые нужно решать, или от возможностей предобученной системы, которую планируется использовать. Также к задаче NER относят извлечение дат, денежных сумм (число + валюта), которые интуитивно не выглядят как именованные сущности.
Многие именованные сущности могут в разных контекстах относиться к разным классам: слово «Пушкин» может быть человеком, городом, названием клуба и т.д. Понять, к какому именно классу слово относится в конкретном контексте, — сложная задача, которой сейчас много занимаются.
Почему найти именованные сущности непросто?
На первый взгляд кажется, что с именованными сущностями не должно возникнуть особых проблем, большинство из них -— имена собственные, они пишутся с большой буквы, так что найти их в тексте не сложно. Во-первых, во многих языках вообще нет больших букв (например, в китайском или арабском). Но и в европейских языках приходится сталкиваться с трудностями. Основные сложности:
- Именованные сущности редко состоят из одного слова. Например, из предложения «Звонил доктор Владимир Бомгард» нужно извлечь, как минимум, имя и фамилию — «Владимир Бомгард», а для многих задач полезно уметь находить полное «наименование» человека, о котором говорится: «доктор Владимир Бомгард». Аналогично и с другими именованными сущностями: «Министерство просвещения Российской Федерации», «19 октября», «100 000 динаров» и т.п.
- Не всегда очевидны границы, например, словосочетание «Иван Васильевич и партнеры» может быть названием некоторой организации, а может подразумевать некоторого Ивана Васильевича и отдельно его партнеров.
- С большой буквы пишутся не только имена собственные. Это верно и для русского, и еще больше для английского, но особенно хорошо видно в немецком, где с большой буквы пишутся вообще все существительные.
Как работают с именованными сущностями?
Хотя большинство именованных сущностей состоит из нескольких слов, при решении этой задачи обычно рассматривают отдельные слова и решают, является ли это слово частью именованной сущности или нет. При этом различают начало, середину и конец именованной сущности.
При разметке именованных сущностей принято использовать префикс «B» (beginning) для обозначения первого слова, «E» — для последнего слова и «I» (intermediate) — для всех слов между. Иногда также используется префикс «S» (single) для обозначения именованной сущности, состоящей из одного слова.
Таким образом, задача сводится к пословной классификации. Сейчас для построения классифкатора обычно тренируют нейросетевую модель на большом количестве текстов с разметкой именованных сущностей. В основе моделей обычно стоят модули, которые позволяют учитывать контекст с двух сторон от анализируемого слова (например, bi-LSTM или bi-RNN).
Хорошие результаты дают и классические классификаторы, работающие с предзаданным множеством признаков. Большие буквы или нестандартное использование больших и маленьких букв (iPhone), а также специфических символов (H&M) внутри слова — все это полезныепризнаки для выявления именованных сущностей.
Также до сих пор используются системы, основанные на правилах: в них прописываются разные шаблонные схемы именованных сущностей. Например, шаблон «Министерство + образования\туризма\здравоохранения + Название страны» поможет найти «Министерство образования Италии» и «Министерство туризма Мексики». Шаблон «однозначное\двузначное число + название месяца + четырехзначное число» — это дата. Основная проблема такого подхода: на подготовку правил требуется очень много времени, а малейшее отступление от паттерна (например, банальная опечатка) все сломает. Также набор правил пишется под определенный язык, поэтому набор правил, помогающий извлекать именованные сущности из текстов на русском языке никак не поможет при обработке другого языка.
Ну и последнее: активно используемых именованных сущностей конечное количество, многие из них уже собраны в списки (так называемые газетиры, gazetteers): географические названия, словари имен, реестры организаций и т.п. Всю эту информацию тоже стараются использовать для решения задачи NER.