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