Traitement du langage naturel

Le traitement du langage naturel (PNL) est un sous-domaine de l’informatique, de l’ingénierie de l’information et de l’intelligence artificielle, qui s’intéresse aux interactions entre les ordinateurs et les langages humains (naturels), en particulier comment programmer des ordinateurs pour traiter et analyser de grandes quantités de données en langage naturel.

Les défis du traitement du langage naturel impliquent souvent la reconnaissance de la parole, la compréhension du langage naturel et la génération du langage naturel.

L’histoire
L’histoire du traitement du langage naturel a généralement commencé dans les années 50, bien que l’on puisse trouver du travail à partir de périodes antérieures. En 1950, Alan Turing publia un article intitulé « Intelligence » qui proposait ce que l’on appelle maintenant le test de Turing comme critère de l’intelligence.

L’expérience de Georgetown en 1954 impliquait la traduction entièrement automatique de plus de soixante phrases en russe en anglais. Les auteurs ont affirmé que d’ici trois ou cinq ans, la traduction automatique serait un problème résolu. Cependant, les progrès réels ont été beaucoup plus lents et, après le rapport ALPAC de 1966, qui concluait que dix années de recherche n’avaient pas répondu aux attentes, le financement de la traduction automatique avait été considérablement réduit. Peu de recherches supplémentaires sur la traduction automatique ont été menées jusqu’à la fin des années 1980, lorsque les premiers systèmes de traduction automatique statistiques ont été mis au point.

SHRDLU, un système de langage naturel fonctionnant dans des « mondes de blocs » restreints avec des vocabulaires restreints, et ELIZA, une simulation d’un psychothérapeute rogérien, écrit par Joseph Weizenbaum entre 1964 et 1966. En l’absence d’informations sur la pensée ou les émotions humaines, ELIZA offrait parfois une interaction étonnamment humaine. Lorsque le « patient » dépasse la très petite base de connaissances, ELIZA peut fournir une réponse générique, par exemple en répondant à « Ma tête me fait mal » avec « Pourquoi dites-vous que votre tête vous fait mal? ».

Au cours des années 1970, de nombreux programmeurs ont commencé à écrire des « ontologies conceptuelles », qui structuraient les informations du monde réel en données compréhensibles par ordinateur. MARGIE (Schank, 1975), SAM (Cullingford, 1978), PAM (Wilensky, 1978), TaleSpin (Meehan, 1976), QUALM (Lehnert, 1977), Politique (Carbonell, 1979) et Unités de parcelle de terrain (Lehnert, 1981). ). Pendant ce temps, de nombreux chatterbots ont été écrits, y compris PARRY, Racter et Jabberwacky.

Jusque dans les années 1980, la plupart des systèmes de traitement du langage naturel reposaient sur des ensembles complexes de règles manuscrites. À partir de la fin des années 1980, le traitement du langage naturel a toutefois révolutionné l’introduction d’algorithmes d’apprentissage automatique pour le traitement du langage. Cela était dû à la fois à l’augmentation constante de la puissance de calcul (voir la loi de Moore) et à la diminution progressive de la domination des théories linguistiques de Chomskyan (par exemple, la grammaire transformationnelle), dont les fondements théoriques décourageaient le type de linguistique de corpus qui sous-tendait la méthode d’apprentissage par la machine. au traitement de la langue. Certains des premiers algorithmes d’apprentissage automatique, tels que les arbres de décision, ont produit des systèmes de règles dures si-alors similaires aux règles écrites à la main. Cependant, le marquage partiel a introduit l’utilisation de modèles de Markov cachés dans le traitement du langage naturel et, de plus en plus, la recherche s’est concentrée sur les modèles statistiques, qui permettent de prendre des décisions souples et probabilistes basées sur l’attribution de pondérations réelles aux caractéristiques constituant l’entrée. Les données. Les modèles de langage de cache sur lesquels de nombreux systèmes de reconnaissance vocale reposent maintenant sont des exemples de tels modèles statistiques. De tels modèles sont généralement plus robustes lorsqu’ils reçoivent des entrées inconnues, en particulier des entrées contenant des erreurs (ce qui est très courant pour les données du monde réel), et produisent des résultats plus fiables lorsqu’ils sont intégrés dans un système plus vaste comprenant plusieurs sous-tâches.

Un grand nombre des premiers succès notables ont été enregistrés dans le domaine de la traduction automatique, en particulier grâce au travail effectué par IBM Research, où des modèles statistiques de plus en plus complexes ont été développés. Ces systèmes ont pu tirer parti des corpus textuels multilingues existants créés par le Parlement du Canada et l’Union européenne à la suite de lois demandant la traduction de toutes les procédures gouvernementales dans toutes les langues officielles des systèmes de gouvernement correspondants. Cependant, la plupart des autres systèmes dépendaient de corpus spécifiquement développés pour les tâches mises en œuvre par ces systèmes, ce qui était (et continue d’être) une limitation majeure du succès de ces systèmes. En conséquence, de nombreuses recherches ont été consacrées aux méthodes d’apprentissage plus efficace à partir de quantités limitées de données.

Les recherches récentes se sont de plus en plus concentrées sur des algorithmes d’apprentissage non supervisés et semi-supervisés. Ces algorithmes peuvent apprendre des données qui n’ont pas été annotées à la main avec les réponses souhaitées, ou en utilisant une combinaison de données annotées et non annotées. En règle générale, cette tâche est beaucoup plus difficile que l’apprentissage supervisé et produit généralement des résultats moins précis pour une quantité donnée de données d’entrée. Cependant, il existe une énorme quantité de données non annotées disponibles (y compris, entre autres, tout le contenu du World Wide Web), qui peuvent souvent compenser les résultats inférieurs si l’algorithme utilisé a une complexité temporelle suffisamment faible pour soit pratique.

Dans les années 2010, l’apprentissage de la représentation et l’apprentissage automatique à la manière de réseaux neuronaux profonds se sont généralisés dans le traitement du langage naturel, en partie grâce à une multitude de résultats montrant que de telles techniques peuvent produire des résultats de pointe dans de nombreuses tâches de langage naturel, par exemple dans la modélisation du langage, l’analyse syntaxique et bien d’autres. Les techniques populaires incluent l’utilisation d’incorporations de mots pour saisir les propriétés sémantiques des mots, ainsi que l’augmentation de l’apprentissage de bout en bout d’une tâche de niveau supérieur (par exemple, la réponse à une question) au lieu de compter sur un ensemble de tâches intermédiaires distinctes (par exemple, marquage partiel et analyse de dépendance). Dans certains domaines, ce changement a entraîné des changements substantiels dans la conception des systèmes de la PNL, de sorte que les approches basées sur des réseaux neuronaux profonds peuvent être considérées comme un nouveau paradigme distinct du traitement statistique du langage naturel. Par exemple, le terme traduction neuronale (NMT) souligne le fait que les approches approfondies de la traduction automatique apprises en profondeur apprennent directement les transformations séquence à séquence, évitant ainsi la nécessité d’étapes intermédiaires telles que l’alignement des mots et la modélisation du langage qui ont été utilisées dans la statistique. traduction automatique (SMT).

PNL basée sur des règles et statistique
Au début, de nombreux systèmes de traitement du langage ont été conçus en codant à la main un ensemble de règles, par exemple en écrivant des grammaires ou en élaborant des règles heuristiques pour les tronquer. Cependant, cela n’est en général pas robuste aux variations du langage naturel.

Depuis la prétendue « révolution statistique » de la fin des années 80 et du milieu des années 90, une grande partie de la recherche sur le traitement du langage naturel s’est largement appuyée sur l’apprentissage automatique.

Le paradigme de l’apprentissage automatique appelle plutôt l’utilisation de l’inférence statistique pour apprendre automatiquement de telles règles par l’analyse de grands corpus d’exemples typiques du monde réel (un corpus (pluriel, « corpus ») est un ensemble de documents, éventuellement avec des annotations humaines ou informatiques. ).

De nombreuses classes différentes d’algorithmes d’apprentissage automatique ont été appliquées aux tâches de traitement en langage naturel. Ces algorithmes prennent en entrée un grand ensemble de « fonctionnalités » générées à partir des données en entrée. Certains des premiers algorithmes utilisés, tels que les arbres de décision, produisaient des systèmes de règles dures si-alors similaires aux systèmes de règles manuscrites qui étaient alors courants. Cependant, la recherche a de plus en plus mis l’accent sur des modèles statistiques, qui permettent de prendre des décisions aléatoires et probabilistes basées sur l’attribution de pondérations réelles à chaque entité en entrée. Ces modèles ont l’avantage de pouvoir exprimer la certitude relative de nombreuses réponses possibles différentes plutôt que d’une seule, produisant des résultats plus fiables lorsqu’un tel modèle est inclus en tant que composant d’un système plus vaste.

Les systèmes basés sur des algorithmes d’apprentissage automatique présentent de nombreux avantages par rapport aux règles créées manuellement:

Les procédures d’apprentissage utilisées lors de l’apprentissage automatique se concentrent automatiquement sur les cas les plus courants. Tandis que lorsqu’il s’agit de rédiger des règles à la main, il n’est souvent pas évident de diriger l’effort.
Les procédures d’apprentissage automatiques peuvent utiliser des algorithmes d’inférence statistique pour produire des modèles qui résistent aux entrées inconnues (contenant par exemple des mots ou des structures jamais vus auparavant) et erronés (par exemple avec des mots mal orthographiés ou omis accidentellement). En règle générale, gérer de telles entrées avec des règles manuscrites ou, plus généralement, créer des systèmes de règles manuscrites qui permettent de prendre des décisions en douceur, est extrêmement difficile, source d’erreurs et prend beaucoup de temps.
Les systèmes basés sur l’apprentissage automatique des règles peuvent être rendus plus précis simplement en fournissant davantage de données d’entrée. Cependant, les systèmes basés sur des règles manuscrites ne peuvent être rendus plus précis qu’en augmentant leur complexité, ce qui est une tâche beaucoup plus difficile. En particulier, il existe une limite à la complexité des systèmes basés sur des règles conçues à la main, au-delà desquelles les systèmes deviennent de plus en plus ingérables. Cependant, la création de davantage de données à saisir dans les systèmes d’apprentissage automatique nécessite simplement une augmentation correspondante du nombre d’heures de travail, généralement sans augmentation significative de la complexité du processus d’annotation.

Évaluations majeures et tâches
Vous trouverez ci-dessous une liste des tâches les plus couramment étudiées dans le traitement du langage naturel. Notez que certaines de ces tâches ont des applications directes dans le monde réel, tandis que d’autres servent plus généralement de sous-tâches utilisées pour vous aider à résoudre des tâches plus importantes.

Bien que les tâches de traitement du langage naturel soient étroitement liées, elles sont fréquemment subdivisées en catégories pour des raisons pratiques. Une division grossière est donnée ci-dessous.

Syntaxe

Induction grammaticale
Générez une grammaire formelle décrivant la syntaxe d’un langage.

Lemmatisation

Segmentation morphologique
Séparez les mots en morphèmes individuels et identifiez la classe des morphèmes. La difficulté de cette tâche dépend en grande partie de la complexité de la morphologie (c’est-à-dire de la structure des mots) de la langue considérée. L’anglais a une morphologie assez simple, en particulier une morphologie flexionnelle, et il est donc souvent possible d’ignorer complètement cette tâche et de modéliser simplement toutes les formes possibles d’un mot (par exemple, « ouvrir, ouvrir, ouvrir, ouvrir ») en tant que mots séparés. Dans des langues telles que le turc ou le meitei, une langue indienne très agglutinée, une telle approche n’est toutefois pas possible, car chaque entrée de dictionnaire contient des milliers de formes de mots possibles.

Marquage partiel
Étant donné une phrase, déterminez la partie du discours pour chaque mot. De nombreux mots, en particulier les plus courants, peuvent constituer plusieurs parties du discours. Par exemple, « livre » peut être un nom (« le livre sur la table ») ou un verbe (« réserver un vol »); « set » peut être un nom, un verbe ou un adjectif; et « out » peut être n’importe laquelle d’au moins cinq parties différentes du discours. Certaines langues ont plus d’ambiguïté de ce type que d’autres. [Douteux – discuter] Les langues peu morphologiques, comme l’anglais, sont particulièrement sujettes à une telle ambiguïté. Le chinois est sujet à une telle ambiguïté car c’est un langage tonal lors de la verbalisation. Une telle inflexion n’est pas facilement transmise via les entités utilisées dans l’orthographe pour transmettre le sens voulu.

L’analyse
Déterminer l’arbre d’analyse (analyse grammaticale) d’une phrase donnée. La grammaire des langues naturelles est ambiguë et les phrases typiques ont de nombreuses analyses possibles. En fait, peut-être de manière surprenante, pour une phrase typique, il peut y avoir des milliers d’analyses potentielles (dont la plupart sembleront complètement insensées pour un humain). Il existe deux types principaux d’analyse, l’analyse de dépendance et l’analyse de circonscription. L’analyse de dépendance se concentre sur les relations entre les mots d’une phrase (marquant des objets tels que les objets principaux et les prédicats), tandis que l’analyse de circonscription se concentre sur la construction de l’arbre d’analyse en utilisant une grammaire probabiliste sans contexte (PCFG).

Annulation d’une phrase (également appelée désambiguïsation des phrases)
À partir d’un morceau de texte, trouvez les limites de la phrase. Les limites des phrases sont souvent marquées par des points ou d’autres signes de ponctuation, mais ces mêmes caractères peuvent servir à d’autres fins (par exemple, les abréviations de marquage).

Stemming
Segmentation de mots
Séparez un morceau de texte continu en mots séparés. Pour une langue comme l’anglais, c’est assez trivial, car les mots sont généralement séparés par des espaces. Cependant, certaines langues écrites comme le chinois, le japonais et le thaï ne marquent pas les frontières de mots de cette manière, et dans ces langues, la segmentation du texte est une tâche importante nécessitant une connaissance du vocabulaire et de la morphologie des mots de la langue. Parfois, ce processus est également utilisé dans des cas tels que la création d’un sac de mots (BOW) dans l’exploration de données.

Extraction de terminologie
L’extraction de terminologie a pour objectif d’extraire automatiquement les termes pertinents d’un corpus donné.

Sémantique

Sémantique lexicale
Quelle est la signification informatique des mots individuels dans leur contexte?

Traduction automatique
Traduire automatiquement le texte d’une langue humaine à une autre. C’est l’un des problèmes les plus difficiles. Il fait partie d’une classe de problèmes couramment appelée « AI-complète », c’est-à-dire nécessitant tous les types de connaissances que possède l’être humain (grammaire, sémantique, informations sur le monde réel, etc.). .) afin de résoudre correctement.

Reconnaissance d’entité nommée (NER)
À partir d’un flux de texte, déterminez quels éléments du texte sont associés à des noms propres, tels que des personnes ou des lieux, ainsi que le type de chaque nom (par exemple, personne, emplacement, organisation). Notez que, bien que la capitalisation puisse aider à reconnaître des entités nommées dans des langues telles que l’anglais, ces informations ne peuvent pas aider à déterminer le type d’entité nommée et sont souvent inexactes ou insuffisantes. Par exemple, le premier mot d’une phrase est également mis en majuscule et les entités nommées couvrent souvent plusieurs mots, dont seuls certains sont en majuscule. En outre, de nombreuses autres langues dans des écritures non occidentales (le chinois ou l’arabe, par exemple) n’ont aucune majuscule, et même les langues avec majuscule peuvent ne pas l’utiliser systématiquement pour distinguer des noms. Par exemple, l’allemand capitalise tous les noms, qu’il s’agisse de noms, et le français et l’espagnol ne capitalisent pas les noms qui servent d’adjectifs.

Génération de langage naturel
Convertir des informations provenant de bases de données informatiques ou d’intentions sémantiques en langage humain lisible.

Compréhension du langage naturel
Convertissez des fragments de texte en représentations plus formelles, telles que des structures logiques de premier ordre plus faciles à manipuler par les programmes informatiques. La compréhension du langage naturel implique l’identification de la sémantique recherchée parmi les multiples sémantiques possibles pouvant être déduites d’une expression du langage naturel qui prend généralement la forme de notations organisées de concepts de langage naturel. L’introduction et la création de métamodèles de langues et d’ontologies sont des solutions efficaces mais empiriques. Une formalisation explicite de la sémantique du langage naturel sans confusion avec des hypothèses implicites telles que l’hypothèse d’un monde fermé (CWA) contre une hypothèse d’un monde ouvert, ou subjective oui / non vs objectif vrai / faux est attendue pour la construction d’une base de formalisation sémantique .

Reconnaissance optique de caractères (OCR)
Étant donné une image représentant un texte imprimé, déterminez le texte correspondant.

Question répondant
Étant donné une question en langage humain, déterminez sa réponse. Les questions typiques ont une bonne réponse spécifique (telle que « Quelle est la capitale du Canada? »), Mais parfois des questions ouvertes sont également considérées (telles que « Quel est le sens de la vie? »). Des travaux récents ont examiné des questions encore plus complexes.

Reconnaître l’implication textuelle
Pour deux fragments de texte, déterminez si l’un est vrai implique l’autre, implique la négation de l’autre, ou permet à l’autre d’être vrai ou faux.

Extraction de relation
À partir d’un morceau de texte, identifiez les relations entre les entités nommées (par exemple, qui est marié à qui).

Analyse du sentiment (voir aussi l’analyse du sentiment multimodal)
Extrayez généralement des informations subjectives d’un ensemble de documents, en utilisant souvent des revues en ligne pour déterminer la « polarité » d’objets spécifiques. C’est particulièrement utile pour identifier les tendances de l’opinion publique dans les médias sociaux, à des fins de marketing.

Segmentation et reconnaissance de sujets
À partir d’un bloc de texte, séparez-le en segments, chacun étant consacré à un sujet, et identifiez le sujet du segment.

Désambiguïsation du sens des mots
Beaucoup de mots ont plus d’un sens; nous devons choisir le sens qui a le plus de sens dans son contexte. Pour ce problème, on nous donne généralement une liste de mots et les sens des mots associés, par exemple à partir d’un dictionnaire ou d’une ressource en ligne telle que WordNet.

Discours

Résumé automatique
Produire un résumé lisible d’un morceau de texte. Souvent utilisé pour fournir des résumés de textes d’un type connu, tels que des articles dans la partie financière d’un journal.
Résolution de coréférence

À partir d’une phrase ou d’une plus grande portion de texte, déterminez quels mots (« mentions ») font référence aux mêmes objets (« entités »). La résolution en anaphore est un exemple spécifique de cette tâche et concerne spécifiquement la correspondance des pronoms avec les noms ou les noms auxquels ils se rapportent. La tâche plus générale de la résolution des coréférences comprend également l’identification de relations dites «de pontage» impliquant des expressions de référence. Par exemple, dans une phrase telle que « Il est entré dans la maison de John par la porte d’entrée », « la porte d’entrée » est une expression de renvoi et la relation intermédiaire à identifier est le fait que la porte à laquelle on se réfère est celle de John maison (plutôt que d’une autre structure à laquelle on pourrait également faire référence).

Analyse du discours
Cette rubrique comprend un certain nombre de tâches connexes. L’une des tâches consiste à identifier la structure discursive d’un texte connecté, c’est-à-dire la nature des relations discursives entre phrases (par exemple, élaboration, explication, contraste). Une autre tâche possible consiste à reconnaître et à classer les actes de langage dans un bloc de texte (par exemple, une question oui-non, une question sur le contenu, une déclaration, une assertion, etc.).

Discours

Reconnaissance de la parole
À partir d’un extrait sonore d’une personne ou de personnes parlant, déterminez la représentation textuelle du discours. C’est l’opposé du texte à la parole et l’un des problèmes extrêmement difficiles couramment appelés « AI-complet » (voir ci-dessus). Dans la parole naturelle, il n’y a pratiquement pas de pause entre les mots successifs et la segmentation de la parole est donc une sous-tâche nécessaire de la reconnaissance de la parole (voir ci-dessous). Notez également que dans la plupart des langues parlées, les sons représentant des lettres successives se mélangent dans un processus appelé coarticulation, de sorte que la conversion du signal analogique en caractères discrets peut être un processus très difficile.

Segmentation de la parole
Étant donné le clip sonore d’une personne ou de personnes parlant, séparez-le en mots. Une sous-tâche de reconnaissance de la parole et généralement groupée avec elle.

Texte pour parler
À partir d’un texte, transformez ces unités et produisez une représentation parlée. La synthèse vocale peut être utilisée pour aider les malvoyants.