Caroline Eppright | Responsable de la stratégie de contenu | 25 mars 2021
Le traitement du langage naturel (NLP) est une branche de l'intelligence artificielle (AI) qui permet aux ordinateurs de comprendre, générer et manipuler le langage humain. Le traitement du langage naturel permet d'interroger les données à l'aide d'un texte ou d'une voix en langage naturel. C'est ce qu'on appelle aussi le « langage dans ». La plupart des consommateurs ont probablement été en contact avec le NLP sans s'en rendre compte. Par exemple, le NLP est la technologie de base des assistants virtuels, tels que l'Oracle Digital Assistant (ODA), Siri, Cortana ou Alexa. Lorsque nous posons des questions à ces assistants virtuels, le NLP leur permet non seulement de comprendre la demande de l'utilisateur, mais aussi de répondre en langage naturel. Le NLP s'applique à la fois au texte écrit et à la parole, et peut être appliqué à toutes les langues humaines. Parmi les autres exemples d'outils utilisant le NLP, citons la recherche sur Internet, le filtrage des spams, la traduction automatique de textes ou de discours, le résumé de documents, l'analyse des sentiments et la vérification de la grammaire et de l'orthographe. Par exemple, certains programmes de messagerie peuvent suggérer automatiquement une réponse appropriée à un message en fonction de son contenu. Ces programmes utilisent le NLP pour lire, analyser et répondre à votre message.
Il existe plusieurs autres termes qui sont plus ou moins synonymes de NLP. La compréhension du langage naturel (NLU) et la génération du langage naturel (NLG) font référence à l'utilisation d'ordinateurs pour comprendre et produire respectivement du langage humain. NLG a la possibilité de fournir une description verbale de ce qui s'est passé. C'est ce qu'on appelle aussi le « language out », qui consiste à résumer en texte les informations significatives à l'aide d'un concept connu sous le nom de « grammaire des graphiques ».
Dans la pratique, on entend par NLU le NLP. La compréhension par les ordinateurs de la structure et de la signification de tous les langages humains, permettant aux développeurs et aux utilisateurs d'interagir avec les ordinateurs en utilisant des phrases et une communication naturelles. La linguistique informatique (CL) est le domaine scientifique qui étudie les aspects informatiques du langage humain, tandis que le NLP est la discipline d'ingénierie qui s'intéresse à la construction d'artefacts informatiques qui comprennent, génèrent ou manipulent le langage humain.
La recherche sur le NLP a commencé peu après l'invention des ordinateurs numériques dans les années 1950, et le NLP s'appuie à la fois sur la linguistique et l'IA. Cependant, les principales percées de ces dernières années ont été réalisées grâce à le machine learning, une branche de l'IA qui développe des systèmes capables d'apprendre et de généraliser à partir de données. Le deep learning est une sorte de machine learning qui peut apprendre des modèles très complexes à partir de grands ensembles de données, ce qui signifie qu'il est parfaitement adapté à l'apprentissage des complexités du langage naturel à partir d'ensembles de données provenant du web.
Automatiser les tâches de routine : les chatbots alimentés par le NLP peuvent traiter un grand nombre de tâches de routine qui sont aujourd'hui prises en charge par des agents humains, libérant ainsi les collaborateurs pour qu'ils se consacrent à des tâches plus stimulantes et intéressantes. Par exemple, les chatbots etles assistants digitaux peuvent reconnaître une grande variété de demandes d'utilisateurs, les faire correspondre à l'entrée appropriée dans une base de données d'entreprise et formuler une réponse appropriée à l'utilisateur.
Améliorer la recherche : le NLP peut améliorer la recherche par correspondance de mots clés pour l'extraction de documents et de FAQ en désambiguïsant les sens des mots en fonction du contexte (par exemple, "porteur" a une signification différente dans les contextes biomédical et industriel), en faisant correspondre les synonymes (par exemple, l'extraction de documents mentionnant "voiture" à partir d'une recherche sur "automobile") et en tenant compte des variations morphologiques (ce qui est important pour les requêtes non anglaises). Des systèmes efficaces de recherche universitaire basés sur le NLP peuvent améliorer considérablement l'accès à des recherches pertinentes de pointe pour les médecins, les avocats et d'autres spécialistes.
Optimisation du moteur de recherche : le NLP est un excellent outil pour obtenir un meilleur classement de votre entreprise dans la recherche en ligne en analysant les recherches afin d'optimiser votre contenu. Les moteurs de recherche utilisent le NLP pour classer leurs résultats et savoir utiliser efficacement ces techniques facilite leur classement par rapport à vos concurrents. Cela conduira à une plus grande visibilité de votre entreprise.
Analyse et organisation de grandes collections de documents : les techniques de NLP telles que le regroupement de documents et la modélisation thématique simplifient la compréhension de la diversité du contenu des grandes collections de documents, comme les rapports d'entreprise, les articles d'actualité ou les documents scientifiques. Ces techniques sont souvent utilisées à des fins de découverte légale.
Analyse des réseaux sociaux : le NLP peut analyser les avis des clients et les commentaires sur les réseaux sociaux pour mieux comprendre d'énormes volumes d'informations. L'analyse des sentiments identifie les commentaires positifs et négatifs dans un flux de commentaires sur les réseaux sociaux, ce qui permet de mesurer directement le sentiment des clients en temps réel. Cela peut entraîner d'énormes gains de rentabilité, tels qu'une satisfaction accrue des clients et des revenus.
Connaissance du marché : grâce au NLP, qui analyse le langage des clients de votre entreprise, vous saurez mieux ce qu'ils veulent et comment communiquer avec eux. L'analyse des sentiments axée sur les aspects détecte le sentiment associé à des aspects ou à des produits spécifiques dans les médias sociaux (par exemple, "le clavier est génial, mais l'écran est trop faible"), fournissant ainsi des informations directement exploitables pour la conception et le marketing des produits.
Modération de contenu : si votre entreprise attire un grand nombre de commentaires d'utilisateurs ou de clients, le NLP vous permet de modérer ce qui est dit afin de maintenir la qualité et la civilité en analysant non seulement les mots, mais aussi le ton et l'intention des commentaires.
Le NLP simplifie et automatise un large éventail de processus métier, en particulier ceux qui impliquent de grandes quantités de texte non structuré tels que des e-mails, des enquêtes, des conversations sur les réseaux sociaux, etc. Grâce au NLP, les entreprises sont mieux à même d'analyser leurs données pour prendre les bonnes décisions. Voici quelques exemples d'applications pratiques du NLP :
Modèles de machine learning pour le NLP : nous avons mentionné plus haut que le NLP innovant repose en grande partie sur une approche de l'intelligence artificielle appelée machine learning. Le machine learning effectue des prédictions en généralisant les exemples dans un ensemble de données. Cet ensemble de données est appelé données d'apprentissage, et les algorithmes de machine learning s'entraînent sur ces données d'apprentissage pour produire un modèle de machine learning qui accomplit une tâche cible.
Par exemple, les données d'apprentissage de l'analyse des sentiments consistent en des phrases accompagnées de leur sentiment (par exemple, un sentiment positif, négatif ou neutre). Un algorithme de machine learning lit cet ensemble de données et produit un modèle qui prend des phrases en entrée et renvoie leurs sentiments. Ce type de modèle, qui prend des phrases ou des documents en tant qu'entrées et renvoie un libellé pour cette entrée, est appelé modèle de classification de document. Les classificateurs de documents peuvent également être utilisés pour classer les documents en fonction des thèmes qu'ils évoquent (par exemple, le sport, la finance, la politique, etc.).
Un autre type de modèle est utilisé pour reconnaître et classer les entités dans les documents. Pour chaque mot d'un document, le modèle prédit si ce mot fait partie d'une mention d'entité et, dans l'affirmative, quel type d'entité est impliqué. Par exemple, dans "Les actions de la société XYZ ont été échangées pour 28 dollars hier", "XYZ Corp" est une entité de la société, "28 dollars" est un montant en devise, et "hier" est une date. Les données d'apprentissage pour la reconnaissance d'entités sont une collection de textes, où chaque mot est étiqueté avec les types d'entités auxquelles le mot se réfère. Ce type de modèle, qui produit une étiquette pour chaque mot de l'entrée, est appelé modèle d'étiquetage de séquence.
Les modèles de séquence à séquence sont un ajout très récent à la famille des modèles utilisés en NLP. Un modèle de séquence à séquence (ou seq2seq) prend une phrase ou un document entier en entrée (comme dans un classificateur de documents) mais il produit une phrase ou une autre séquence (par exemple, un programme informatique) en sortie. (Un classificateur de document ne produit qu'un seul symbole en tant que sortie.) Parmi les exemples d'applications des modèles seq2seq, citons la traduction automatique, qui, par exemple, prend une phrase en anglais en entrée et renvoie sa phrase en français en sortie ; le résumé de documents (où la sortie est un résumé de l'entrée) ; et l'analyse sémantique (où l'entrée est une requête ou une demande en anglais, et la sortie est un programme informatique mettant en œuvre cette demande).
Deep learning, modèles prédéfinis et apprentissage par transfert : le deep learning est le type de machine learning le plus répandu dans le NLP. Dans les années 1980, les chercheurs ont développé les réseaux neuronaux, dans lesquels un grand nombre de modèles primitifs de machine learning sont combinés en un seul réseau : par analogie avec le cerveau, les modèles simples de machine learning sont parfois appelés "neurones". Ces neurones sont disposés en couches, et un réseau neuronal profond est un à plusieurs couches. Le deep learning est le machine learning à l'aide de modèles de réseau neuronal profonds.
En raison de leur complexité, il faut généralement beaucoup de données pour former un réseau neuronal profond, et le traitement nécessite beaucoup de puissance de calcul et de temps. Les modèles de NLP des réseaux neuronaux profonds modernes sont formés à partir d'un large éventail de sources, telles que l'ensemble de Wikipédia et des données mises au rebut sur le web. Les données d'entraînement peuvent être de l'ordre de 10 Go ou plus, et l'entraînement du réseau neuronal profond peut prendre une semaine ou plus sur un cluster haute performance. (Les chercheurs ont constaté que l'entraînement de modèles encore plus profonds à partir d'ensembles de données encore plus grands permettait d'obtenir des performances encore plus élevées, de sorte qu'il existe actuellement une course à l'entraînement de modèles de plus en plus grands à partir d'ensembles de données de plus en plus grands.)
Les besoins voraces en données et en calcul des réseaux neuronaux profonds semblent limiter sérieusement leur utilité. Cependant, l'apprentissage par transfert permet à un réseau neuronal profond entraîné d'être entraîné davantage pour réaliser une nouvelle tâche avec beaucoup moins de données d'entraînement et d'effort de calcul. Le type le plus simple d'apprentissage par transfert est appelé réglage fin. Il s'agit simplement d'entraîner d'abord le modèle sur un grand ensemble de données génériques (par exemple, Wikipédia), puis d'entraîner ensuite (« affiner ») le modèle sur un ensemble de données spécifiques à la tâche, beaucoup plus petit, qui est étiqueté avec la tâche cible réelle. Il est peut-être surprenant de constater que les ensembles de données d'ajustement fin peuvent être extrêmement petits, ne contenant peut-être que des centaines ou même des dizaines d'exemples d'entraînement, et que l'entraînement à l'ajustement fin ne prend que quelques minutes sur un seul processeur. L'apprentissage par transfert facilite le déploiement de modèles de deep learning dans toute l'entreprise.
Il existe aujourd'hui tout un écosystème de fournisseurs proposant des modèles de deep learning pré-entraînés, entraînés sur différentes combinaisons de langues, d'ensembles de données et de tâches de pré-entraînement. Ces modèles pré-entraînés peuvent être téléchargés et ajustés pour une grande variété de tâches cibles différentes.
Découvrez comment la création d'un centre d'excellence en IA (CoE) peut stimuler votre succès avec les technologies de NLP. Notre e-book fournit des conseils pour créer un CoE et utiliser efficacement des modèles de machine learning avancés.
Tokénization : la tokénisation divise le texte brut (par exemple, une phrase ou un document) en une séquence de jetons, tels que des mots ou des sous-mots. La tokénisation est souvent la première étape d'un pipeline de traitement NLP. Les jetons sont des séquences de texte récurrentes qui sont traitées comme des unités atomiques dans un traitement ultérieur. Il peut s'agir de mots, d'unités de sous-mots appelés morphèmes (par exemple, des préfixes comme "un-" ou des suffixes comme "-ing" en anglais), ou même de caractères individuels.
Modèles de sac de mots : les modèles de sac de mots traitent les documents comme des collections non ordonnées d'éléments ou de mots (un sac est comme un ensemble, sauf qu'il comptabilise le nombre d'apparitions de chaque élément). Parce qu'ils ignorent complètement l'ordre des mots, les modèles de type "sac de mots" confondront une phrase telle que "le chien mord l'homme" avec "l'homme mord le chien". Cependant, les modèles de type "sac de mots" sont souvent utilisés pour des raisons d'efficacité dans le cadre de tâches de recherche d'informations de grande envergure, telles que les moteurs de recherche. Ils peuvent produire des résultats proches de ceux de la dernière génération avec des documents plus longs.
Suppression des mots d'arrêt : un "mot d'arrêt" est un jeton qui est ignoré dans le traitement ultérieur. Il s'agit généralement de mots courts et fréquents tels que "a", "the" ou "an". Les modèles de sacs de mots et les moteurs de recherche ignorent souvent les mots d'arrêt afin de réduire le temps de traitement et le stockage dans la base de données. Les réseaux neuronaux profonds prennent généralement en compte l'ordre des mots (c'est-à-dire qu'ils ne sont pas des modèles de type "sac de mots") et n'arrêtent pas la suppression des mots parce que les mots d'arrêt peuvent véhiculer des distinctions subtiles au sens (par exemple, "le paquet a été perdu" et "un paquet est perdu" ne signifient pas la même chose, même si elles sont identiques après la suppression du mot stop) .
Racinisation et lemmatization : les morphèmes sont les plus petits éléments porteurs de sens de la langue. Les morphèmes sont généralement plus petits que les mots. Par exemple, "revisited" se compose du préfixe "re-", de la tige "visit" et du suffixe "-ed" passé. La racinisation et la lemmatisation font correspondre les mots à leurs formes souches (par exemple, "revisiter" + PAST). La racinisation et la lemmatisation sont des étapes cruciales dans les modèles de pré-deep learning, mais les modèles de deep learning apprennent généralement ces régularités à partir de leurs données d'apprentissage et ne nécessitent donc pas d'étapes explicites de racinisation ou de lemmatisation.
Balisage vocal et analyse syntaxique : le balisage vocal partiel (PoS) est le processus consistant à étiqueter chaque mot avec sa partie vocale (par exemple, nom, verbe, adjectif, etc.). Un analyseur syntaxique identifie la façon dont les mots se combinent pour former des phrases, des clauses et des phrases entières. Le balisage PoS est une tâche d'étiquetage de séquence, l'analyse syntaxique est un type étendu de tâche d'étiquetage de séquence et les Nntworks neuronaux profonds constituent la technologie de pointe pour le balisage PoS et l'analyse syntaxique. Avant le deep learning, le balisage PoS et l'analyse syntaxique étaient des étapes essentielles de la compréhension des phrases. Cependant, les modèles de NLP de deep learning innovants ne bénéficient généralement que marginalement (le cas échéant) des informations de syntaxe ou PoS, de sorte que ni le balisage PoS ni l'analyse syntaxique ne sont largement utilisés dans le NLP de deep learning.
Les bibliothèques et les boîtes à outils NLP sont généralement disponibles en Python. C'est pourquoi la grande majorité des projets NLP sont développés en Python. L'environnement de développement interactif de Python permet de développer et de tester facilement un nouveau code.
Pour le traitement de grandes quantités de données, les langages C++ et Java sont souvent préférés car ils permettent un code plus efficace.
Voici quelques exemples de bibliothèques NLP populaires.
TensorFlow et PyTorch : voici les deux boîtes à outils de deep learning les plus populaires. Elles sont librement disponibles pour la recherche et à des fins commerciales Bien qu'elles prennent en charge plusieurs langues, leur langue principale est Python. Elles sont fournies avec de vastes bibliothèques de composants préconstruits, de sorte que même des modèles de deep learning du NLP très sophistiqués ne nécessitent souvent que le branchement de ces composants. Elles prennent également en charge les infrastructures de calcul à haute performance, telles que les grappes de machines équipées d'accélérateurs de processeurs graphiques (GPU). Elles disposent d'une excellente documentation et de tutoriels.
AllenNLP : il s'agit d'une bibliothèque de composants NLP de haut niveau (par exemple, des chatbots simples) mis en œuvre dans PyTorch et Python. La documentation est excellente.
HuggingFace : cette société distribue des centaines de modèles NLP de deep learning pré-entraînés différents, ainsi qu'une boîte à outils logicielle plug-and-play en TensorFlow et PyTorch qui permet aux développeurs d'évaluer rapidement les performances de différents modèles pré-entraînés pour leurs tâches spécifiques.
Spark NLP : Spark NLP est une bibliothèque open source de traitement de texte pour le NLP avancé pour les langages de programmation Python, Java et Scala. Son objectif est de fournir une interface de programmation d'applications (API) pour les pipelines de traitement du langage naturel. Elle propose des modèles de réseaux neuronaux préformés, des pipelines et des embeddings, ainsi qu'une assistance pour la formation de modèles personnalisés.
SpaCy NLP : SpaCy est une bibliothèque gratuite et open source pour le traitement automatique des langues (NLP) avancé en Python, et elle est spécifiquement conçue pour aider à construire des applications qui peuvent traiter et comprendre de grands volumes de texte. SpaCy est connu pour être très intuitif et peut gérer la plupart des tâches nécessaires aux projets NLP courants.
En résumé, le traitement du langage naturel est un domaine passionnant du développement de l'intelligence artificielle qui alimente un large éventail de nouveaux produits tels que les moteurs de recherche, les chatbots, les systèmes de recommandation et les systèmes de conversion de la parole en texte. Étant donné que les interfaces humaines avec les ordinateurs continuent de s'éloigner des boutons, des formulaires et des langages spécifiques à un domaine, la demande de croissance dans le domaine du traitement du langage naturel continuera d'augmenter. Pour cette raison, Oracle Cloud Infrastructure s'engage à fournir des performances sur site avec nos formes de calcul et nos outils optimisés pour le NLP. Oracle Cloud Infrastructure offre un éventail de formes de GPU que vous pouvez déployer en quelques minutes pour commencer à expérimenter le NLP.