Технология обработки естественного языка

HDInsight
Databricks
Data Lake
Служба хранилища

Обработка естественного языка (NLP) используется для таких задач, как анализ тональности, распознавание тем, распознавание языка, извлечение ключевых фраз и классификация документов.

Diagram of a natural language processing pipeline

NLP можно использовать для классификации документов, например, чтобы пометить документы как конфиденциальные или как спам. Выходные данные NLP можно использовать для последующей обработки или поиска. NLP также можно использовать для реферирования текста путем определения сущностей, присутствующих в документе. Эти сущности также можно использовать для добавления тегов к документам с использованием ключевых слов, что обеспечивает поиск и извлечение на основе содержимого. Сущности можно объединять в разделы с аннотациями, в которых описаны важные темы, присутствующие в каждом документе. С помощью распознанных тем можно классифицировать документы для навигации или перечисления связанных документов на основе выбранной темы. Кроме того, NLP может использоваться для определения тональности текста (положительной или отрицательной). Для этих подходов используется множество методов обработки естественного языка:

  • Создатель маркеров. Разделение текста на слова или фразы.
  • Выделение корней слов и лемматизация. Нормализация слов таким образом, чтобы различные формы слов сопоставлялись с начальной формой слова с таким же значением. Например, "запускающийся" и "запущен" должны сопоставляться со словом "запуск".
  • Извлечение сущностей. Определение тем в тексте.
  • Определение части речи. Определение в тексте глаголов, существительных, причастий, глагольных конструкций и т. д.
  • Определение границ предложений. Определение полных предложений в абзацах текста.

При использовании NLP для извлечения сведений и данных из текста в свободной форме начальной точкой обычно являются необработанные документы, хранящиеся в хранилище объектов, например в службе хранилища Azure или Azure Data Lake Store.

Сложности

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

Варианты выбора служб NLP

В Azure функции NLP предоставляются в следующих службах:

Основные критерии выбора

Чтобы ограничить количество вариантов, сначала ответьте на следующие вопросы:

  • Нужно использовать предварительно созданные модели? Если да, используйте API-интерфейсы, предлагаемые в службах Microsoft Cognitive Services.

  • Нужно ли обучать пользовательские модели на основе большой совокупности текстовых данных? Если да, используйте Azure HDInsight со Spark MLlib и Spark NLP.

  • Требуются ли низкоуровневые возможности NLP, например разметка, выделение корней слов, лемматизация и частота условия или инверсная частота в документе? Если да, используйте Azure HDInsight со Spark MLlib и Spark NLP.

  • Требуются ли простые, высокоуровневые возможности NLP, например распознавание сущностей и намерений, распознавание темы, проверка орфографии и анализ тональности. Если да, используйте API-интерфейсы, предлагаемые в службах Microsoft Cognitive Services.

Матрица возможностей

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

Общие возможности

Функция Azure HDInsight Microsoft Cognitive Services
Предоставление предварительно обученных моделей как услуги Нет Да
REST API Да Да
Возможность программирования Python, Scala, Java C#, Java, Node.js, Python, PHP, Ruby
Поддержка обработки больших наборов данных и больших документов Да Нет

Низкоуровневые возможности обработки естественного языка

Функция Azure HDInsight Microsoft Cognitive Services
Создатель маркеров Да (Spark NLP) Да (API лингвистического анализа)
Парадигматический модуль Да (Spark NLP) Нет
Лемматический модуль Да (Spark NLP) Нет
Добавление тегов к частям речи Да (Spark NLP) Да (API лингвистического анализа)
Частота условия или инверсная частота в документе (TF/IDF) Да (Spark MLlib) Нет
Семантические сходства строк — вычисление расстояния редактирования Да (Spark MLlib) Нет
Вычисление N-грамм Да (Spark MLlib) Нет
Удаление стоп-слов Да (Spark MLlib) Нет

Высокоуровневые возможности обработки естественного языка

Функция Azure HDInsight Microsoft Cognitive Services
Распознавание и извлечение сущностей и намерений Нет Да (API распознавания речи (LUIS))
Определение темы Да (Spark NLP) Да (API анализа текста)
Проверка орфографии Да (Spark NLP) Да (API Bing для проверки орфографии)
Анализ тональности Да (Spark NLP) Да (API анализа текста)
Определение языка Нет Да (API анализа текста)
Поддержка нескольких языков, кроме английского Нет Да (зависит от API)

Дальнейшие действия