Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le traitement du langage naturel a de nombreuses applications, telles que l’analyse des sentiments, la détection de rubriques, la détection de langue, l’extraction d’expressions clés et la catégorisation de document.
Plus précisément, vous pouvez utiliser le traitement du langage naturel pour :
- Classifiez les documents. Par exemple, vous pouvez les étiqueter comme sensibles ou indésirables.
- Effectuez un traitement ou des recherches ultérieurs à l’aide de sorties de traitement du langage naturel.
- Résumez le texte en identifiant les entités dans le document.
- Étiqueter des documents avec des mots clés à l’aide d’entités identifiées.
- Effectuez une recherche et une récupération basées sur le contenu à l’aide de balises.
- Résumez les rubriques clés d’un document à l’aide d’entités identifiées.
- Catégorisez les documents pour la navigation à l’aide de rubriques détectées.
- Énumérer les documents qui se rapportent à un thème sélectionné.
- Évaluez le sentiment de texte pour comprendre son ton positif ou négatif.
À mesure que la technologie avance, vous pouvez utiliser le traitement du langage naturel pour catégoriser et analyser les données de texte. Vous pouvez également l’utiliser pour améliorer les fonctions IA interprétables dans différents domaines. L’intégration des modèles de langage améliore considérablement les fonctionnalités du traitement du langage naturel. Les modèles de langage tels que GPT et BERT peuvent générer du texte ressemblant à celui d'un humain et contextuellement conscient. Cette fonctionnalité les rend très efficaces pour les tâches de traitement de langage complexes. Ils complètent les techniques de traitement du langage naturel existantes en gérant des tâches cognitives plus larges, qui améliorent les systèmes de conversation et l’engagement client, en particulier avec des modèles tels que Databricks Dolly 2.0.
Relation et différences entre les modèles de langage et le traitement du langage naturel
Le traitement du langage naturel est un champ complet qui englobe différentes techniques de traitement du langage humain. En revanche, les modèles de langage sont un sous-ensemble spécifique du traitement du langage naturel. Ils se concentrent sur l’apprentissage profond pour effectuer des tâches linguistiques de haut niveau. Les modèles linguistiques améliorent le traitement du langage naturel en fournissant des fonctionnalités avancées de génération de texte et de compréhension, mais ils ne sont pas synonymes de traitement en langage naturel. Au lieu de cela, ils servent d’outils puissants dans le domaine de traitement du langage naturel plus large en permettant un traitement de langage plus sophistiqué.
Remarque
Cet article se concentre sur le traitement du langage naturel. La relation entre le traitement du langage naturel et les modèles de langage montre que les modèles de langage améliorent les processus de traitement du langage naturel par le biais de fonctionnalités de compréhension et de génération de langage supérieures.
Cas d’usage potentiels
Les scénarios métier qui peuvent tirer parti du traitement en langage naturel personnalisé sont les suivants :
Renseignements sur les documents manuscrits ou créés automatiquement dans les secteurs financiers, médicaux, de vente au détail, du gouvernement et d’autres secteurs.
Tâches de traitement du langage naturel indépendant du secteur pour le traitement du texte, telles que la reconnaissance d’entité nommée (NER), la classification, la synthèse et l’extraction des relations.
Ces tâches vous aident à récupérer, identifier et analyser automatiquement des informations de document telles que du texte et des données non structurées. Les modèles de stratification des risques, la classification d'ontologies et les synthèses commerciales sont des exemples de ces tâches.
Récupération des informations et création de graphes de connaissances pour la recherche sémantique. Cette fonctionnalité permet de créer des graphiques de connaissances médicales qui sont utiles pour la découverte de médicaments et les essais cliniques.
Traduction de texte pour les systèmes d’IA conversationnelle dans les applications orientées client dans les secteurs de la distribution, de la finance, du tourisme et d’autres.
Sentiment et intelligence émotionnelle améliorée dans l’analytique, en particulier pour surveiller la perception de la marque et l’analytique des commentaires des clients.
Génération de rapports automatisée. Synthétiser et générer des rapports textuels complets à partir d’entrées de données structurées. Ces tâches aident les secteurs tels que la finance et la conformité, où une documentation approfondie est nécessaire.
Interfaces activées par la voix qui intègrent le traitement du langage naturel pour la reconnaissance vocale et les fonctionnalités de conversation naturelle. Cette intégration améliore les interactions utilisateur dans les applications Internet des objets et les applications d’appareils intelligents.
Modèles de langage adaptatifs qui peuvent ajuster dynamiquement la sortie du langage en fonction de différents niveaux de compréhension d’audience. Cette fonctionnalité est essentielle pour les améliorations apportées au contenu éducatif et à l’accessibilité.
Analyse du texte de cybersécurité pour analyser les modèles de communication et l’utilisation du langage en temps réel. Cette analyse vous permet d’identifier les menaces de sécurité potentielles dans la communication numérique et d’améliorer la détection des tentatives d’hameçonnage ou des informations erronées.
Apache Spark en tant que framework de traitement en langage naturel personnalisé
Apache Spark est une infrastructure de traitement parallèle puissante qui améliore les performances des applications analytiques Big Data à l’aide du traitement en mémoire. Azure Synapse Analytics, Azure HDInsight et Azure Databricks fournir un accès robuste aux fonctionnalités de traitement de Spark. Cet accès vous permet d’exécuter des opérations de données à grande échelle en toute transparence.
Spark NLP est une infrastructure efficace qui peut traiter de grands volumes de texte pour les charges de travail de traitement de langage naturel personnalisées. Cette bibliothèque open source fournit des fonctionnalités étendues à l’aide de bibliothèques Python, Java et Scala. Ces bibliothèques offrent la sophistication que vous pouvez trouver dans des bibliothèques de traitement du langage naturel de premier plan telles que spaCy et Natural Language Toolkit. Spark NLP inclut des fonctionnalités avancées telles que la vérification orthographique, l’analyse des sentiments et la classification des documents. Ces fonctionnalités vous aident à garantir une précision et une scalabilité optimales.
Apache®, Apache Spark et le logo représentant une flamme sont soit des marques déposées, soit des marques commerciales d’Apache Software Foundation aux États-Unis et/ou dans d’autres pays. L’utilisation de ces marques n’implique aucune approbation de l’Apache Software Foundation.
Les benchmarks publics récents mettent en évidence les performances de Spark NLP. Ces benchmarks montrent des améliorations significatives de la vitesse par rapport à d'autres bibliothèques. Spark NLP conserve également une précision comparable pour l’entraînement de modèles personnalisés. Notamment, l’intégration des modèles Llama 2 et OpenAI Whisper améliore les interfaces conversationnelles et la reconnaissance vocale multilingue. Ces fonctionnalités marquent des progrès significatifs dans les fonctionnalités de traitement optimisées.
Spark NLP utilise efficacement un cluster Spark distribué qui fonctionne comme une extension native de Spark ML et fonctionne directement sur des trames de données. Cette intégration prend en charge les gains de performances améliorés sur les clusters, ce qui facilite la création de pipelines de traitement du langage naturel unifié et de Machine Learning pour des tâches telles que la classification des documents et la prédiction des risques. Les incorporations MPNet et la prise en charge étendue d’ONNX enrichissent davantage ces fonctionnalités et permettent un traitement précis et prenant en charge le contexte.
Spark NLP fournit des résultats très précis dans un tableau croissant de tâches de traitement du langage naturel. La bibliothèque est fournie avec des modèles d’apprentissage profond prédéfinis pour la reconnaissance d’entité nommée, la classification des documents et la détection des sentiments. Sa conception riche en fonctionnalités inclut des modèles de langage préentraînés qui prennent en charge les incorporations de mots, de blocs, de phrases et de documents.
L'infrastructure de Spark NLP s'adapte en utilisant des builds optimisées pour les processeurs, les GPU et les dernières puces Intel Xeon, qui permettent aux processus d'entraînement et d'inférence de tirer pleinement parti des clusters Spark. Cette fonctionnalité permet de garantir une gestion efficace des tâches de traitement du langage naturel dans différents environnements et applications.
Défis
traitement des ressources: le traitement d’une collection de documents texte de forme libre nécessite une quantité importante de ressources de calcul. Le traitement est également gourmand en temps. Ce type de traitement implique souvent le déploiement de calcul GPU. Les avancées récentes qui prennent en charge la quantisation, telles que les optimisations dans les architectures spark NLP comme Llama 2, permettent de simplifier ces tâches intensives en allouant des ressources plus efficacement.
la normalisation: Sans un format de document standardisé, il peut être difficile d’obtenir des résultats cohérents et précis quand vous utilisez le traitement de texte non structuré pour extraire des faits spécifiques d’un document. Par exemple, l’extraction du numéro de facture et de la date de différentes factures pose des problèmes. L’intégration de modèles de traitement de langage naturel adaptables comme M2M100 améliore la précision du traitement dans plusieurs langages et formats. Cette précision améliorée entraîne des résultats plus cohérents.
Variété et complexité des données: L'adaptation à la diversité des structures de documents et des nuances linguistiques reste complexe. Les innovations telles que les incorporations MPNet offrent une compréhension contextuelle améliorée, ce qui conduit à une gestion plus intuitive des formats textuels variés et au traitement des données plus fiable.
Critères de sélection principaux
Dans Azure, les services Spark tels qu’Azure Databricks, Microsoft Fabric et HDInsight fournissent des fonctionnalités de traitement en langage naturel lorsque vous les utilisez avec Spark NLP. Les services Azure AI constituent une autre option pour la fonctionnalité de traitement du langage naturel. Pour vous aider à décider quel service utiliser, tenez compte des aspects suivants :
Si vous souhaitez utiliser des modèles prédéfinis ou préentraînés, envisagez d’utiliser les API que les services IA fournissent. Vous pouvez également télécharger votre modèle de choix via Spark NLP, qui inclut des modèles avancés comme Llama 2 et MPNet pour des fonctionnalités améliorées.
Si vous devez entraîner des modèles personnalisés sur une grande collection de données de texte, envisagez d’utiliser Azure Databricks, Fabric ou HDInsight avec Spark NLP. Ces plateformes fournissent la puissance de calcul et la flexibilité dont vous avez besoin pour une formation approfondie des modèles.
Si vous avez besoin de fonctionnalités de traitement du langage naturel de base, telles que la tokenisation, la racinisation, la lemmatisation et la fréquence de terme/fréquence inverse de document (TF/IDF), envisagez d’utiliser Azure Databricks, Fabric ou HDInsight avec Spark NLP. Vous pouvez également utiliser une bibliothèque de logiciels open source dans votre outil de traitement de votre choix.
Si vous avez besoin de fonctionnalités de traitement de langage naturel simples et de haut niveau, telles que l’identification d’entité et d’intention, la détection de rubriques, la vérification orthographique ou l’analyse des sentiments, envisagez d’utiliser les API que les services IA fournissent. Ou téléchargez votre modèle de choix via Spark NLP pour utiliser des fonctions prédéfinies pour ces tâches.
Matrice des fonctionnalités
Les tableaux suivants résument les principales différences dans les fonctionnalités des services de traitement du langage naturel.
Fonctionnalités générales
Capacité | Service Spark (Azure Databricks, Fabric, HDInsight) avec Spark NLP | Services d’intelligence artificielle |
---|---|---|
Fournit des modèles préformés en tant que service | Oui | Oui |
API REST | Oui | Oui |
Programmabilité | Python, Scala | Voir les langages de programmation pris en charge |
Prend en charge le traitement de jeux de données volumineux et de documents volumineux | Oui | Non |
Fonctionnalités d’annotateur
Capacité | Service Spark (Azure Databricks, Fabric, HDInsight) avec Spark NLP | Services d’intelligence artificielle |
---|---|---|
Détecteur de phrases | Oui | Non |
Détecteur de phrases approfondi | Oui | Oui |
Tokeniseur | Oui | Oui |
Générateur N-gram | Oui | Non |
Segmentation des mots | Oui | Oui |
Générateur de formes dérivées | Oui | Non |
Générateur de lemmatisation | Oui | Non |
Étiquetage des parties du discours | Oui | Non |
Analyseur de dépendances | Oui | Non |
Traduction | Oui | Non |
Nettoyeur de mots vides | Oui | Non |
Correction orthographique | Oui | Non |
Normaliseur | Oui | Oui |
Correspondance de texte | Oui | Non |
TF/Tsahal | Oui | Non |
Correspondance d’expression régulière | Oui | Incorporé dans la fonctionnalité de compréhension du langage conversationnel (CLU) |
Correspondance de date | Oui | Possible dans CLU grâce aux modules de reconnaissance DateTime |
Segmenteur | Oui | Non |
Remarque
Language Understanding (LUIS) sera mis hors service le 1er octobre 2025. Vous devez migrer des applications LUIS existantes vers la fonctionnalité de compréhension du langage conversationnel (CLU) d’Azure AI Language, qui améliore les fonctionnalités de compréhension du langage et fournit de nouvelles fonctionnalités.
Fonctionnalités de traitement du langage naturel de haut niveau
Capacité | Service Spark (Azure Databricks, Fabric, HDInsight) avec Spark NLP | Services d’intelligence artificielle |
---|---|---|
Vérification de l'orthographe | Oui | Non |
Résumé | Oui | Oui |
Réponses aux questions | Oui | Oui |
Détection de sentiments | Oui | Oui |
Détection d’émotions | Oui | Prend en charge l’exploration des opinions |
Classification de jetons | Oui | Oui, via des modèles personnalisés |
Classification de texte | Oui | Oui, via des modèles personnalisés |
Représentation de texte | Oui | Non |
NER | Oui | Oui, l’analyse de texte fournit un ensemble de NER |
Reconnaissance d’entités | Oui | Oui, via des modèles personnalisés |
Détection de langue | Oui | Oui |
Prend en charge des langues en plus de l’anglais | Oui, prend en charge plus de 200 langues | Oui, prend en charge plus de 97 langues |
Configurer Spark NLP dans Azure
Pour installer Spark NLP, utilisez le code suivant, mais remplacez <version>
par le numéro de la version la plus récente. Pour plus d'informations, voir la documentation Spark NLP.
# 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
Développer des pipelines de traitement du langage naturel
Spark NLP suit le même concept de développement que les modèles de Machine Learning Spark ML traditionnels lorsqu’il exécute un pipeline de traitement en langage naturel. Il applique également des techniques spécialisées de traitement du langage naturel.
Un pipeline NLP Spark inclut les composants principaux suivants :
DocumentAssembler est un transformateur qui prépare les données en les convertissant dans un format que Spark NLP peut traiter. Cette étape est le point d’entrée de chaque pipeline Spark NLP. DocumentAssembler lit une colonne
String
ou unArray[String]
et peut prétraiter le texte à l’aide desetCleanupMode
, qui est désactivé par défaut.PhraseDetector est un annotateur qui identifie les limites de phrase à l’aide d’approches prédéfinies. Elle peut retourner chaque phrase détectée dans une
Array
ou dans des lignes distinctes lorsqueexplodeSentences
a la valeur true.Tokenizer est un annotateur qui divise le texte brut en tokens discrets, tels que des mots, des nombres et des symboles, et les restitue sous la forme d'un
TokenizedSentence
. Le tokenizer n'est pas adapté et utilise la configuration d'entrée dans leRuleFactory
pour créer des règles de tokenisation. Vous pouvez ajouter des règles personnalisées si les règles par défaut sont insuffisantes.Normalizer est un annotateur chargé d'affiner les tokens. Le normaliseur applique des expressions régulières et des transformations de dictionnaire pour nettoyer le texte et supprimer des caractères superflus.
WordEmbeddings sont des annotateurs de recherche qui mappent des jetons à des vecteurs et facilitent le traitement sémantique. Vous pouvez spécifier un dictionnaire d’incorporation personnalisé à l’aide de
setStoragePath
, où chaque ligne contient un jeton et son vecteur, séparés par des espaces. Les jetons non résolus deviennent par défaut des vecteurs nuls.
Spark NLP utilise des pipelines Spark MLlib qui ont une prise en charge native de MLflow, une plateforme open source qui gère le cycle de vie du Machine Learning. MLflow a les composants clés suivants :
MLflow Tracking enregistre les exécutions expérimentales et fournit des fonctionnalités d’interrogation robustes pour analyser les résultats.
MLflow Projects vous permet d’exécuter du code de science des données sur diverses plateformes. Cette fonctionnalité améliore la portabilité et la reproductibilité.
Modèles MLflow prennent en charge le déploiement de modèles flexibles dans différents environnements par le biais d'un cadre cohérent.
Registre de modèles fournit une gestion complète des modèles en stockant les versions de manière centralisée pour simplifier l’accès et le déploiement. Cette étape facilite la préparation de la production.
MLflow est intégré à des plateformes telles qu’Azure Databricks, mais vous pouvez également l’installer dans d’autres environnements Spark pour gérer et suivre vos expériences. Cette intégration vous permet d’utiliser le Registre de modèles MLflow pour rendre les modèles disponibles à des fins de production. Vous pouvez simplifier le processus de déploiement et gérer la gouvernance des modèles.
En utilisant MLflow avec Spark NLP, vous pouvez garantir une gestion et un déploiement plus efficaces des pipelines de traitement en langage naturel. Vous pouvez également répondre aux exigences modernes pour l’extensibilité et l’intégration tout en prenant en charge des techniques avancées telles que l’incorporation de mots et les adaptations de modèle de langage.
Contributeurs
Microsoft gère cet article. Les contributeurs suivants ont écrit cet article.
Auteurs principaux :
- Freddy Ayala | Architecture de solution cloud
- Moritz Steller | Architecte de solution cloud senior
Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.
Étapes suivantes
Documentation de Spark NLP :
Composants Azure :
- Tissu
- HDInsight
- Azure Databricks
- Services d'IA
Ressources d'apprentissage :