Оценка моделей распознавания именованных сущностей для коммерческих предложений НЛП.

Фон

В рамках нашей серии по оценке моделей AI / ML команда специалистов по анализу данных Anno.Ai погрузилась в мир обработки естественного языка (NLP). Многие из наших клиентов нуждаются в НЛП, поэтому мы решили изучить множество онлайн- и офлайн-библиотек и сервисов НЛП. Для этой задачи наша команда по анализу данных изучила функцию распознавания именованных сущностей (NER), и эта статья специально ориентирована на онлайн-поставщиков.

Что такое NER?

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

Коммерческие модели

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

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

  • AWS Comprehend: Comprehend API предоставляет конечные точки для анализа текстовых документов, включая извлечение сущностей, ключевых фраз, языка и тональности. Его также можно использовать для кластеризации документов и моделирования тем.
  • Когнитивные службы Microsoft Azure. API текстовой аналитики Azure предоставляет конечные точки для анализа тональности, идентификации языка, извлечения ключевых фраз и NER.
  • Finch Text Analytics: Finch for Text API фокусируется на извлечении сущностей из текста, а также включает возможности для устранения неоднозначности сущностей и дополнительных расширений. Он также поддерживает анализ настроений.
  • Rosette Text Analytics: Rosette Text Analytics API поддерживает NER, но также обеспечивает доступ к ряду функций NLP нижнего уровня, таких как токенизация, идентификация языка и тегирование предложений. Он также поддерживает моделирование тем, транслитерацию, дедупликацию имен и анализ тональности.

Набор данных оценки

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

Методология оценки

Для оценки и оценки различных сервисов сущности и исходный текст были разделены на входные документы, которые просто состояли из исходного текста без каких-либо указанных сущностей, и «истинного» набора, который представлял собой токенизированную версию входного документа, отображающего каждый word на связанный с ним объект. Всего для оценки было использовано около 3600 документов, содержащих более 200 000 релевантных тегов.

Чтобы количественно измерить производительность, токенизированный вывод NER каждого документа для каждой службы сравнивался с его токенизированным аналогом истинности. Каждое выходное слово сравнивалось с файлом истинности, и ему присваивалось значение Истинно Положительное (TP), Ложноположительное (FP), Истинно Отрицательное (TN) или Ложноотрицательное (FN). В совокупности по всем документам для услуги были добавлены подсчеты TP, FP, TN, FN, а также были рассчитаны баллы по точности, отзыву и F1 для каждой сущности (мы рассмотрели «лицо», «расположение, организации» и «даты» как основной набор сущностей для оценки). Кроме того, мы увеличили пороговые значения достоверности для каждого обнаружения, чтобы получить представление об общей производительности. Доверительные интервалы составляли 0% - 90% с шагом 10%, а также 95% и 99% (поэтому в некоторых случаях мы видим резкие спады в моделях, которые не обеспечивают 100% достоверности).

Полученные результаты

Общая точность

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

Согласованность между более длинными документами

Многие поставщики услуг онлайн-обработки текста и NER ограничивают длину текста, обрабатываемого за один вызов. Чтобы обойти эти ограничения, документы можно разделить на более управляемые части - часто по абзацам. Некоторые другие поставщики показывают различия в отображаемых тегах до и после разделения документов (это означает, что служба будет помечать объекты по-разному в зависимости от того, как был разделен документ). Финч был единственным поставщиком, который оказался устойчивым к этой разнице.

Дополнительные обогащения

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

Что дальше?

В ближайшее время мы планируем опубликовать больше оценок моделей, поэтому следите за нашими предстоящими публикациями об автоматическом распознавании номерных знаков (ALPR) и моделях машинного перевода!

Обязательно подпишитесь на нас в Twitter и LinkedIn!