Более эффективный поиск и лучшее управление ресурсами. Узнайте больше о том, как применить «Пользовательское распознавание именованных сущностей» к своему бизнесу.

Юлия Рубцова, кандидат медицинских наук, Анна Мосолова

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

Что такое NER?

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

Фактически, за одной задачей NER стоят две:

  1. Обнаружьте, что некоторая последовательность слов является именованной сущностью;
  2. Понять, к какому классу (имя человека, название организации, город и т. Д.) Принадлежит эта именованная сущность.

Трудности возникают на обоих этапах.

Что такое именованные сущности?

Начнем со второго шага: какие классы именованных сущностей вы обычно хотите найти. Они почти всегда пытаются извлечь имена людей и названия мест и организаций (общий NER), и дальше все зависит от конкретных задач, которые необходимо решить, или от возможностей предварительно обученной системы, которую планируется решить. использоваться (пользовательский NER). Кроме того, задача NER включает извлечение дат и денежных сумм (число + валюта), которые интуитивно не похожи на именованные сущности.

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

Почему трудно найти именованные объекты?

На первый взгляд кажется, что с именованными сущностями особых проблем быть не должно. Большинство из них - имена собственные, написанные с большой буквы, поэтому найти их в тексте несложно. Однако во многих языках вообще нет заглавных букв (например, в китайском или арабском). Есть и другие трудности с европейскими языками. Вот основные трудности:

  1. Именованные сущности редко состоят из одного слова. Например, из предложения «Звонил доктор Грегори Хаус» нужно извлечь хотя бы имя и фамилию - «Грегори Хаус», а для многих задач полезно иметь возможность найти полное «имя» человека. называемый «Dr. Григорий Хаус ». Аналогичная ситуация и с другими названными организациями: «Министерство юстиции США», «19 мая», «100 000 динаров» и т. Д.
  2. Границы не всегда очевидны, например, фраза «Пирсон и партнеры» может быть названием определенной организации, а может означать отдельно какого-то «Пирсона» и его «партнеров».
  3. С большой буквы пишутся не только имена собственные. Это верно для английского языка, но особенно отчетливо это видно на немецком языке, где все существительные пишутся с заглавной буквы.

Давайте обсудим несколько примеров NER для бизнеса:

Автоматическое суммирование резюме:

Одна из ключевых задач, стоящих перед HR-отделами компаний, - оценка огромного количества резюме для отбора кандидатов. Чтение и сортировка резюме - непростая задача даже для людей, поскольку резюме соискателей часто переполнены деталями, большая часть которых не имеет отношения к тому, что ищет отдел кадров. Чтобы упростить этот процесс, мы можем использовать модель NER для извлечения названия должности, названия колледжа, местоположения, адреса электронной почты, имени, навыков. Таким образом, мы могли ускорить оценку резюме, тем самым упростив работу по отбору кандидатов из списка резюме.

Поисковая оптимизация:

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

Рекомендательные системы:

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

Служба поддержки клиентов:

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

Задача распознавания сущностей общего имени

Обычно задачи NER состоят из распознавания имен людей, местоположений (географических объектов), организаций, телефонных номеров, кардиналов, GPE. Как было сказано ранее, для обучения надежных моделей NER требуется большой объем помеченных данных. Существует несколько наборов данных, доступных для обучения общей NER, например CoNLL 2003 (английский), Ontonotes v5 (английский), ACE 2005, CoNLL 2003 (немецкий), CoNLL 2002 (испанский), CoNLL 2002 (голландский), CoNLL 2003 (немецкий). Пересмотрено, CoNLL ++, NCBI-болезнь, SciERC, GENIA, BC5CDR, Новые сущности с длинным хвостом, SciERC, ACE 2004, JNLPBA, LINNAEUS.

Исследователи проделали огромную работу, изучая, как правильно решить эту проблему. В настоящее время современные тесты для задач NER превышают 90%, согласно F-measure.

F-мера для распознавания именованных сущностей в CoNLL 2003 (английский язык) составляет 94,3% [1]. Для Ontonotes v5 (английские) авторы использовали модель BERT-MRC + DSC и получили F-меру, равную 92,07% [2] MRC - это состояние для другой задачи НЛП: понимание машинного чтения с DSC в качестве коэффициента кубика [3, 4 ])

Пользовательский NER

Итак, F1 близок к 95% - неплохо, правда? Возникает вопрос: а что еще можно сделать? Пора переходить к другой задаче, верно? Не так быстро! Как насчет создания настраиваемого NER для определенного домена практически без обучающего набора? Мы уже обсуждали эту задачу для службы поддержки клиентов. Представим, что вам нужно разработать NER для организации, занимающейся продажей детской мебели, и для организации, занимающейся продажей бытовой техники. На подготовку данных для обучения необходимо потратить много времени и усилий. Мы хотим упростить этот процесс.

Данные

Корпус Ontonotes 5 [5] использовался в качестве источника данных для общей модели.

Вот информация о размере корпуса:

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

Ярлык B - для «начального», I - для «среднего». Мы не использовали обозначение E, которое означает «конец цепочки слов объекта имени», и пропустили S - «объект имени из одного слова».

Поскольку использование BERT требует предварительной обработки данных, к этому представлению была добавлена ​​дополнительная метка - т. Е. Тег «-1», обозначающий все теги SEP, CLS и PAD. В дополнение к этому все неизвестные слова (для модели BERT) были разделены на n-граммы, где только первая n-грамма слова была аннотирована исходным тегом (B-ENT, I-ENT или O). в то время как другие были помечены тегом -1.

Алгоритм

Согласно требованиям, модель должна легко повторно использоваться на новом наборе данных, поэтому было решено, что в ее обучении будет несколько шагов:

  1. Обучение общей модели, способной различать сущности и не-сущности;
  2. Аннотация нового набора данных с использованием этой модели;
  3. Кластерный анализ всех пролетов, аннотированных как сущности, с целью присвоения имен кластерам вручную;
  4. Замена ЛОР-тегов на выбранные на предыдущем шаге;
  5. Обучение модели для конкретного набора данных.

Поэтому первым делом нужно построить универсальную модель. Все алгоритмы, протестированные для этой цели, основаны на статье [6]. Первый набор методов основан на предварительно обученной модели BERT (bert-base-multingual-cased), которая была настроена с одним линейным слоем наверху.

Другой подход состоит в использовании BERT в качестве модели представления предложения, выходные данные которой используются для обучения двухслойной 768-мерной BiLSTM с линейным слоем наверху.

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

Как можно заметить, мы достигли 84% показателя F-макро для неконтролируемого распознавания именованных сущностей (обучение с нулевым выстрелом). Этот результат, хотя и неплохой, можно улучшить с помощью конкретного набора данных. Однако мы можем создавать пилотные сервисы без ручной маркировки.

[1] Ямада, И., Асаи, А., Шиндо, Х., Такеда, Х., и Мацумото, Ю. (2020). ЛЮК: ​​глубоко контекстуализированные представления сущностей с самовниманием, осознающим сущность. Препринт arXiv arXiv: 2010.01057.

[2] Ли, X., Sun, X., Meng, Y., Liang, J., Wu, F., & Li, J. (2019). Потеря костей для задач НЛП с несбалансированными данными. Препринт arXiv arXiv: 1911.02855.

[3] Th A Sorensen. 1948. Метод установления групп равной амплитуды в социологии растений, основанный на сходстве содержания видов, и его применение к анализу растительности на датских территориях. Биол. Скар., 5: 1–34.

[4] Ли Р. Дайс. 1945. Меры степени экологической связи между видами. Экология, 26 (3): 297–302.

[5] Weischedel, Ralph, et al. OntoNotes версии 5.0. Консорциум лингвистических данных, DOI: 10.35111 / XMHB-2B84. "Ссылка на сайт"

[6] Devlin J. et al. Берт: Предварительная подготовка глубоких двунаправленных преобразователей для понимания языка // препринт arXiv arXiv: 1810.04805. - 2018.

[7] Чиу, Джейсон П.К. и Эрик Николс. Распознавание именованных объектов с помощью двунаправленных LSTM-CNN. Труды Ассоциации компьютерной лингвистики 4 (2016): 357–370. "Ссылка на сайт"