Идеи решения
Эта статья является идеей решения. Если вы хотите расширить содержимое с дополнительными сведениями, такими как потенциальные варианты использования, альтернативные службы, рекомендации по реализации или рекомендации по ценам, сообщите нам, предоставив отзыв GitHub.
Реализуйте пользовательское решение для обработки естественного языка (NLP) в Azure. Используйте NLP Spark для таких задач, как обнаружение темы и тональности и анализ.
Apache, Apache® Spark и логотип пламени являются зарегистрированными товарными знаками или товарными знаками Apache Software Foundation в США и/или других странах. Использование этих меток не подразумевает подтверждения от Apache Software Foundation.
Архитектура
Скачайте файл Visio для этой архитектуры.
Workflow
- Центры событий Azure, Фабрика данных Azure или обе службы получают документы или неструктурированные текстовые данные.
- Центры событий и фабрика данных хранят данные в формате файлов в Azure Data Lake служба хранилища. Рекомендуется настроить структуру каталогов, которая соответствует бизнес-требованиям.
- API Компьютерное зрение Azure использует возможность оптического распознавания символов (OCR) для использования данных. Затем API записывает данные в бронзовый слой. Эта платформа потребления использует архитектуру Lakehouse.
- В бронзовом слое различные функции NLP Spark предварительно обработают текст. Примеры включают разделение, исправление правописания, очистку и понимание грамматики. Рекомендуется выполнять классификацию документов на бронзовом слое, а затем записывать результаты на серебряный слой.
- На уровне серебра расширенные функции NLP Spark выполняют задачи анализа документов, такие как распознавание именованных сущностей, сводка и извлечение информации. В некоторых архитектурах результат записывается на золотой слой.
- В золотом слое Spark NLP выполняет различные лингвистические визуальные анализы текстовых данных. Эти анализы предоставляют аналитические сведения о зависимостях языка и помогают в визуализации меток NER.
- Пользователи запрашивают текстовые данные уровня золота в виде кадра данных и просматривают результаты в Power BI или веб-приложениях.
Во время обработки Azure Databricks, Azure Synapse Analytics и Azure HDInsight используются с NLP Spark для предоставления функциональных возможностей NLP.
Компоненты
- Data Lake служба хранилища — это файловая система, совместимая с Hadoop, которая имеет интегрированное иерархическое пространство имен и масштабируемую и экономию Хранилище BLOB-объектов Azure.
- Azure Synapse Analytics — это служба аналитики для хранилищ данных и систем обработки больших данных.
- Azure Databricks — это служба аналитики для больших данных, которая легко используется, упрощает совместную работу и основана на Apache Spark. Azure Databricks предназначен для обработки и анализа данных.
- Центры событий принимаются потоки данных, создаваемые клиентскими приложениями. Центры событий хранят потоковую передачу данных и сохраняют последовательность полученных событий. Потребители могут подключаться к конечным точкам центра для получения сообщений для обработки. Центры событий интегрируются с Data Lake служба хранилища, как показано в этом решении.
- Azure HDInsight — это управляемая комплексная облачная служба аналитики с открытым кодом, предназначенная для предприятий. Платформы с открытым кодом можно использовать с Azure HDInsight, например Hadoop, Apache Spark, Apache Hive, LLAP, Apache Kafka, Apache Storm и R.
- Фабрика данных автоматически перемещает данные между учетными записями хранения различных уровней безопасности, чтобы обеспечить разделение обязанностей.
- Компьютерное зрение использует API распознавания текста для распознавания текста в изображениях и извлечения этой информации. API чтения использует последние модели распознавания и оптимизирован для больших, текстовых и шумных изображений. API OCR не оптимизирован для больших документов, но поддерживает больше языков, чем API чтения. Это решение использует OCR для создания данных в формате hOCR .
Подробности сценария
Обработка естественного языка (NLP) имеет много использования: анализ тональности, обнаружение тем, обнаружение языка, извлечение ключевых фраз и классификация документов.
Apache Spark — это платформа параллельной обработки, которая поддерживает обработку в памяти для повышения производительности приложений аналитики больших данных, таких как NLP. Azure Synapse Analytics, Azure HDInsight и Azure Databricks предлагают доступ к Spark и используют свою мощность обработки.
Для настраиваемых рабочих нагрузок NLP библиотека с открытым кодом Spark NLP служит эффективной платформой для обработки большого количества текста. В этой статье представлено решение для крупномасштабных пользовательских NLP в Azure. Решение использует функции NLP Spark для обработки и анализа текста. Дополнительные сведения о NLP Spark см. в разделе "Функции и конвейеры NLP Spark" далее в этой статье.
Потенциальные варианты использования
Классификация документов: Spark NLP предлагает несколько вариантов классификации текста:
- Предварительная обработка текста в алгоритмах NLP и машинного обучения Spark, основанных на машинном обучении Spark
- Предварительная обработка текста и внедрение слов в алгоритмы NLP и машинного обучения Spark, такие как GloVe, BERT и ELMo
- Предварительная обработка текста и внедрение предложений в алгоритмы и модели машинного обучения Spark NLP и машинного обучения, такие как универсальный кодировщик предложений
- Предварительная обработка текста и классификация в NLP Spark, использующая аннатор ClassifierDL и основанный на TensorFlow
Извлечение сущностей имен (NER): в Spark NLP с несколькими строками кода можно обучить модель NER, использующую BERT, и вы можете достичь точности в области искусства. NER — это подзадака извлечения информации. NER находит именованные сущности в неструктурированном тексте и классифицирует их в предопределенные категории, такие как имена лиц, организации, расположения, медицинские коды, выражения времени, количества, денежные значения и проценты. Spark NLP использует модель NER с использованием модели NER с помощью BERT. Модель вдохновляется бывшей моделью NER, двунаправленной LSTM-CNN. Эта бывшая модель использует новую архитектуру нейронной сети, которая автоматически обнаруживает функции уровня слова и символьного уровня. Для этого модель использует гибридную двунаправленную архитектуру LSTM и CNN, поэтому она устраняет необходимость в большинстве технических возможностей.
Обнаружение тональности и эмоций: Spark NLP может автоматически обнаруживать положительные, отрицательные и нейтральные аспекты языка.
Часть речи (POS): эта функция назначает грамматическую метку каждому маркеру во входном тексте.
Обнаружение предложений (SD): SD основан на модели нейронной сети общего назначения для обнаружения границ предложения, определяющего предложения в тексте. Многие задачи NLP принимают предложение в качестве входной единицы. Примерами этих задач являются тег POS, синтаксический анализ зависимостей, распознавание именованных сущностей и машинный перевод.
Функциональные возможности и конвейеры Spark NLP
Spark NLP предоставляет библиотеки Python, Java и Scala, которые предоставляют полные функциональные возможности традиционных библиотек NLP, таких как spaCy, NLTK, Стэнфорд CoreNLP и Open NLP. Spark NLP также предоставляет такие функции, как орфографические проверка, анализ тональности и классификация документов. NLP Spark улучшает предыдущие усилия, обеспечивая точность, скорость и масштабируемость.
NLP Spark является самой быстрой библиотекой NLP с открытым исходным кодом. Последние общедоступные тесты показывают Spark NLP как 38 и 80 раз быстрее, чем spaCy, с сравнимой точностью для обучения пользовательских моделей. Spark NLP — это единственная библиотека с открытым исходным кодом, которая может использовать распределенный кластер Spark. Spark NLP — это собственное расширение машинного обучения Spark, которое работает непосредственно на кадрах данных. В результате увеличение скорости в кластере приводит к еще одному упорядочению повышения производительности. Так как каждый конвейер NLP Spark — это конвейер машинного обучения Spark, NLP хорошо подходит для создания унифицированных конвейеров NLP и машинного обучения, таких как классификация документов, прогнозирование рисков и конвейеры рекомендаций.
Помимо отличной производительности, Spark NLP также обеспечивает высокую точность для растущего числа задач NLP. Команда NLP Spark регулярно читает последние актуальные академические документы и производит самые точные модели.
Для порядка выполнения конвейера NLP spark NLP следует той же концепции разработки, что и традиционные модели машинного обучения Spark ML. Но В Spark NLP применяются методы NLP. На следующей схеме показаны основные компоненты конвейера NLP Spark.
Соавторы
Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участник.
Основные авторы:
- Мориц Стеллер | Старший архитектор облачных решений
Следующие шаги
Документация по Spark NLP:
Компоненты Azure:
Связанные ресурсы
- Технология обработки естественного языка
- Обогащение ИИ с помощью обработки изображений и естественного языка в Когнитивный поиск Azure
- Анализ веб-каналов новостей с помощью аналитики в режиме реального времени с помощью обработки изображений и естественного языка
- Предложение тегов содержимого с помощью NLP с помощью глубокого обучения