Технология обработки естественного языка
Обработка естественного языка имеет множество приложений, таких как анализ тональности, обнаружение тем, обнаружение языка, извлечение ключевых фраз и классификация документов.
В частности, вы можете использовать обработку естественного языка для:
- Классификация документов. Например, их можно пометить как конфиденциальные или нежелательные.
- Проведение последующей обработки или поиска с помощью выходных данных обработки естественного языка.
- Подведите итог текста, определяя сущности в документе.
- Пометьте документы с ключевыми словами с помощью определенных сущностей.
- Выполняйте поиск и извлечение на основе содержимого с помощью тегов.
- Суммируйте ключевые темы документа с использованием выявленных сущностей.
- Классификация документов для навигации с помощью обнаруженных разделов.
- Перечисление связанных документов на основе выбранного раздела.
- Оцените тон текста, чтобы понять его положительный или отрицательный тон.
По мере развития технологий можно использовать обработку естественного языка для классификации и анализа текстовых данных. Вы также можете использовать его для улучшения интерпретируемых функций ИИ в различных доменах. Интеграция языковых моделей значительно повышает возможности обработки естественного языка. Языковые модели, такие как GPT и BERT, могут создавать человеческий, контекстно зависимый текст. Эта возможность делает их очень эффективными для сложных задач обработки языка. Они дополняют существующие методы обработки естественного языка, обрабатывая более широкие когнитивные задачи, которые улучшают системы общения и взаимодействие клиентов, особенно с моделями, такими как Databricks'Dolly 2.0.
Связь и различия между языковыми моделями и обработкой естественного языка
Обработка естественного языка — это комплексное поле, включающее различные методы обработки человеческого языка. В отличие от этого, языковые модели представляют собой определенное подмножество обработки естественного языка. Они сосредоточены на глубоком обучении для выполнения высокоуровневых языковых задач. Языковые модели повышают обработку естественного языка, предоставляя расширенные возможности создания текста и понимания, но они не являются синонимами обработки естественного языка. Вместо этого они служат мощными инструментами в более широком домене обработки естественного языка, обеспечивая более сложную обработку языка.
Примечание.
Эта статья посвящена обработке естественного языка. Связь между обработкой естественного языка и языковыми моделями демонстрирует, что языковые модели улучшают процессы обработки естественного языка с помощью улучшенных возможностей распознавания речи и создания.
Возможные варианты использования
Сценарии использования, которые могут выиграть от пользовательской обработки текста на естественном языке, включают:
Аналитика документов для рукописных или машинных документов в финансах, здравоохранении, розничной торговле, правительстве и других секторах.
Задачи обработки естественного языка, не зависящие от отрасли, для обработки текста, такие как распознавание именованных сущностей (NER), классификация, суммирование и извлечение связей.
Эти задачи помогают автоматически извлекать, определять и анализировать сведения о документе, такие как текст и неструктурированные данные. Примерами этих задач являются модели стратификации рисков, классификация онтологии и сводные данные розничной торговли.
Получение информации и создание графа знаний для семантического поиска. Эта функция позволяет создавать медицинские графы знаний, поддерживающие обнаружение наркотиков и клинические испытания.
Перевод текста для систем ИИ для общения в клиентских приложениях в розничной торговле, финансах, путешествиях и других отраслях.
Тональность и расширенный эмоциональный интеллект в аналитике, особенно для мониторинга восприятия бренда и отзывов клиентов.
Автоматическое создание отчетов. Синтезируйте и создавайте комплексные текстовые отчеты из структурированных входных данных. Эти задачи помогают таким секторам, как финансы и соответствие требованиям, где необходима тщательная документация.
Интерфейсы, активируемые голосом, которые интегрируют обработку естественного языка для распознавания голоса и возможностей естественного диалога. Эта интеграция улучшает взаимодействие пользователей в приложениях Интернета вещей и приложениях смарт-устройств.
Адаптивные языковые модели, которые могут динамически настраивать выходные данные языка в соответствии с различными уровнями понимания аудитории. Эта возможность имеет решающее значение для улучшения образовательного содержания и доступности.
Текстовый анализ в области кибербезопасности для анализа коммуникационных и языковых моделей в режиме реального времени. Этот анализ помогает выявить потенциальные угрозы безопасности в цифровой коммуникации и улучшить обнаружение фишинговых попыток или ложной информации.
Apache Spark в качестве настраиваемой платформы обработки естественного языка
Apache Spark — это мощная платформа параллельной обработки, которая повышает производительность приложений аналитики больших данных с помощью обработки в памяти. Azure Synapse Analytics, Azure HDInsightи Azure Databricks обеспечивают надежный доступ к возможностям обработки Spark. Этот доступ позволяет легко выполнять крупномасштабные операции с данными.
NLP Spark — это эффективная платформа, которая может обрабатывать большие объемы текста для настраиваемых рабочих нагрузок обработки естественного языка. Эта библиотека с открытым кодом предоставляет широкие функциональные возможности с помощью библиотек Python, Java и Scala. Эти библиотеки обладают изысканностью, которую можно найти в известных библиотеках обработки естественного языка, таких как spaCy и Natural Language Toolkit. NLP Spark включает дополнительные функции, такие как проверка орфографии, анализ тональности и классификация документов. Эти функции помогают обеспечить оптимальную точность и масштабируемость.
Apache, Apache® Spark и логотип пламени являются зарегистрированными товарными знаками или товарными знаками Apache Software Foundation в США и/или других странах. Использование этих меток не подразумевает подтверждения от Apache Software Foundation.
Недавние общедоступные тесты демонстрируют эффективность Spark NLP. Эти тесты показывают значительные улучшения скорости по сравнению с другими библиотеками. Spark NLP также поддерживает сравнимую точность обучения пользовательских моделей. В частности, интеграция моделей Llama 2 и OpenAI Whisper улучшает диалоговые интерфейсы и многоязычное распознавание речи. Эти возможности помечают значительные успехи в оптимизированных возможностях обработки.
NLP Spark эффективно использует распределенный кластер Spark, который работает в качестве собственного расширения Машинного обучения Spark и работает непосредственно на кадрах данных. Эта интеграция поддерживает повышение производительности кластеров, что упрощает создание унифицированных конвейеров обработки естественного языка и машинного обучения для таких задач, как классификация документов и прогнозирование рисков. Внедрение MPNet и расширенная поддержка ONNX расширяют эти возможности и обеспечивают точную и контекстную обработку.
NLP Spark обеспечивает высоко точные результаты в расширяющемся массиве задач обработки естественного языка. Библиотека поставляется с предварительно обученными моделями глубокого обучения для распознавания именованных сущностей, классификации документов и определения тональности. Его многофункциональный дизайн включает предварительно обученные языковые модели, поддерживающие внедрение слов, блоков, предложений и документов.
Инфраструктура Spark NLP масштабируется с помощью оптимизированных сборок для CPU, GPU и новейших Intel Xeon, которые позволяют процессам обучения и инференса эффективно использовать кластеры Spark. Эта возможность помогает обеспечить эффективную обработку задач обработки естественного языка в различных средах и приложениях.
Проблемы
Обработка ресурсов: Для обработки коллекции текстовых документов свободной формы требуется значительное количество вычислительных ресурсов. Обработка также является интенсивной. Такая обработка часто включает развертывание вычислений GPU. Последние усовершенствования, поддерживающие квантизацию, такие как оптимизация в архитектуре NLP Spark, такие как Llama 2, помогают оптимизировать эти интенсивные задачи, распределив ресурсы более эффективно.
стандартизация: Без стандартного формата документа может быть трудно обеспечить стабильно точные результаты при использовании гибкой обработки текста для извлечения конкретных фактов из документа. Например, извлечение номера счета и даты из различных счетов вызывает проблемы. Интеграция адаптивных моделей обработки естественного языка, таких как M2M100, повышает точность обработки на нескольких языках и форматах. Эта улучшенная точность приводит к более согласованным результатам.
разнообразие и сложность данных. Решение различных структур документов и лингвистических нюансов остается сложным. Инновации, такие как внедрение MPNet, обеспечивают расширенное контекстное понимание, что приводит к более интуитивно понятной обработке различных текстовых форматов и более надежной обработке данных.
Основные критерии выбора
В Azure службы Spark, такие как Azure Databricks, Microsoft Fabric и HDInsight, предоставляют функции обработки естественного языка при их использовании с spark NLP. Службы ИИ Azure — это еще один вариант для обработки естественного языка. Чтобы помочь вам решить, какую службу следует использовать, рассмотрите следующие аспекты:
Если вы хотите использовать предварительно созданные или предварительно обученные модели, рассмотрите возможность использования API, предоставляемых службами ИИ. Вы также можете скачать модель по выбору с помощью Spark NLP, которая включает в себя расширенные модели, такие как Llama 2 и MPNet для расширенных возможностей.
Если вам нужно обучить пользовательские модели для большой коллекции текстовых данных, рассмотрите возможность использования Azure Databricks, Fabric или HDInsight с помощью Spark NLP. Эти платформы обеспечивают вычислительную мощность и гибкость, необходимые для расширенного обучения модели.
Если вам нужны низкоуровневые возможности обработки естественного языка, такие как токенизация, стемминг, лемматизация и частота термина/обратная частота термина в документе (TF/IDF), рассмотрите возможность использования Azure Databricks, Fabric или HDInsight с Spark NLP. Кроме того, используйте библиотеку программного обеспечения с открытым исходным кодом в выбранном средстве обработки.
Если вам нужны простые высокоуровневые возможности обработки естественного языка, такие как идентификация сущностей и намерения, обнаружение тем, проверка орфографии или анализ тональности, рассмотрите возможность использования API, предоставляемых службами ИИ. Или скачайте выбранную вами модель через Spark NLP, чтобы использовать готовые функции для этих задач.
Матрица возможностей
В следующих таблицах приведены основные различия в возможностях служб обработки естественного языка.
Общие возможности
Способность | Служба Spark (Azure Databricks, Fabric, HDInsight) с помощью Spark NLP | Службы искусственного интеллекта |
---|---|---|
Предоставление предварительно обученных моделей как услуги | Да | Да |
REST API | Да | Да |
Программируемость | Python, Scala | См. поддерживаемые языки программирования |
Поддерживает обработку больших наборов данных и больших документов | Да | Нет |
Возможности аннотатора
Способность | Служба Spark (Azure Databricks, Fabric, HDInsight) с помощью Spark NLP | Службы искусственного интеллекта |
---|---|---|
Детектор предложений | Да | Нет |
Детектор глубоких предложений | Да | Да |
Токенизатор | Да | Да |
Генератор N-грамм | Да | Нет |
Сегментация слов | Да | Да |
Стеммер | Да | Нет |
Лемматизатор | Да | Нет |
Тегирование частей речи | Да | Нет |
Средство синтаксического анализа зависимостей | Да | Нет |
Перевод | Да | Нет |
Средство очистки стоп-слов | Да | Нет |
Исправление орфографии | Да | Нет |
Нормализатор | Да | Да |
Сопоставление текста | Да | Нет |
TF/IDF | Да | Нет |
Сопоставление регулярных выражений | Да | Встроенный в функцию понимания разговорного языка (CLU) |
Сопоставление дат | Да | Возможно использование в CLU с помощью распознавателей DateTime |
Блокировщик | Да | Нет |
Примечание.
Распознавание речи (LUIS) будет прекращено 1 октября 2025 г. Вы должны перенести существующие приложения LUIS в функцию распознавания бесед (CLU) языка ИИ Azure, которая улучшает возможности распознавания речи и предоставляет новые функции.
Высокоуровневые возможности обработки естественного языка
Способность | Служба Spark (Azure Databricks, Fabric, HDInsight) с помощью Spark NLP | Службы искусственного интеллекта |
---|---|---|
Проверка орфографии | Да | Нет |
Резюмирование | Да | Да |
Ответы на вопросы | Да | Да |
Определение тональности | Да | Да |
Определение эмоций | Да | Поддержка анализа мнений |
Классификация токенов | Да | Да, с помощью пользовательских моделей |
Классификация текста | Да | Да, с помощью пользовательских моделей |
Текстовое представление | Да | Нет |
NER | Да | Да, анализ текста предоставляет набор NER |
Распознавание сущностей | Да | Да, с помощью пользовательских моделей |
Обнаружение языка | Да | Да |
Поддерживает языки, кроме английского языка | Да, поддерживает более 200 языков | Да, поддерживает более 97 языков |
Настройка NLP Spark в Azure
Чтобы установить NLP Spark, используйте следующий код, но замените <version>
последним номером версии. Дополнительные сведения см. в документации по NLP Spark.
# Install Spark NLP from PyPI.
pip install spark-natural language processing==<version>
# Install Spark NLP from Anaconda or Conda.
conda install -c johnsnowlabs spark-natural language processing
# Load Spark NLP with Spark Shell.
spark-shell --packages com.johnsnowlabs.natural language processing:spark-natural language processing_<version>
# Load Spark NLP with PySpark.
pyspark --packages com.johnsnowlabs.natural language processing:spark-natural language processing_<version>
# Load Spark NLP with Spark Submit.
spark-submit --packages com.johnsnowlabs.natural language processing:spark-natural language processing_<version>
# Load Spark NLP as an external JAR after compiling and building Spark NLP by using SBT assembly.
spark-shell --jars spark-natural language processing-assembly-3 <version>.jar
Разработка конвейеров обработки естественного языка
Spark NLP следует той же концепции разработки, что и традиционные модели машинного обучения Spark ml при запуске конвейера обработки естественного языка. Он также применяет специализированные методы обработки естественного языка.
Конвейер NLP Spark включает следующие основные компоненты:
DocumentAssembler — это преобразователь, который подготавливает данные, преобразовав его в формат, который может обрабатывать NLP Spark. Этот этап является точкой входа для каждого конвейера NLP Spark. DocumentAssembler считывает либо столбец
String
, либоArray[String]
и может предварительно обработать текст с помощьюsetCleanupMode
, который отключен по умолчанию.SentenceDetector, является аннотатором, который определяет границы предложений с помощью предварительно определённых методов. Он может возвращать каждое обнаруженное предложение в
Array
или в отдельных строках, если дляexplodeSentences
задано значение true.токенизатор — это аннотатор, который разделяет необработанный текст на дискретные токены, такие как слова, цифры и символы, и выводит их в виде
TokenizedSentence
. Токенизатор не настроен и использует входную конфигурацию вRuleFactory
для создания правил токенизации. Вы можете добавить настраиваемые правила, если они недостаточно по умолчанию.нормализатор является аннотатором, который предназначен для обработки токенов. Нормализатор применяет регулярные выражения и преобразования словаря для очистки текста и удаления лишних символов.
WordEmbeddings — это аннотаторы поиска, которые сопоставляют токены с векторами и упрощают семантическую обработку. Вы можете указать пользовательский словарь встраивания с помощью
setStoragePath
, где каждая строка содержит токен и его вектор, разделенные пробелами. Неразрешенные токены по умолчанию равны нулевым векторам.
Spark NLP использует конвейеры Spark MLlib, которые имеют родную поддержку с MLflow, платформой с открытым исходным кодом, управляющей жизненным циклом машинного обучения. MLflow содержит следующие ключевые компоненты:
MLflow Tracking записывает экспериментальные запуски и предоставляет надежные функции запросов для анализа результатов.
MLflow Projects позволяет запускать код для обработки и анализа данных на различных платформах. Эта возможность повышает переносимость и воспроизводимость.
модели MLflow поддерживают универсальное развертывание моделей в разных средах с помощью согласованной платформы.
реестр моделей обеспечивает комплексное управление моделями путем централизованного хранения версий для упрощенного доступа и развертывания. Этот шаг упрощает процесс подготовки к работе.
MLflow интегрирован с такими платформами, как Azure Databricks, но вы также можете установить его в других средах Spark для управления и отслеживания экспериментов. Эта интеграция позволяет использовать реестр моделей MLflow, чтобы сделать модели доступными для рабочих целей. Вы можете оптимизировать процесс развертывания и поддерживать управление моделями.
Используя MLflow вместе с Spark NLP, вы можете обеспечить более эффективное управление и развертывание конвейеров обработки естественного языка. Вы также можете решить современные требования к масштабируемости и интеграции, поддерживая расширенные методы, такие как внедрение слов и адаптация языковой модели.
Соавторы
Корпорация Майкрософт поддерживает эту статью. Следующие авторы написали эту статью.
Основные авторы:
- Фредди Айала | Архитектор облачных решений
- Мориц Стеллер | Старший архитектор облачных решений
Чтобы просмотреть неопубликованные профили LinkedIn, войдите в LinkedIn.
Дальнейшие действия
Документация по Spark NLP:
Компоненты Azure:
Учебные материалы: