Qu’est-ce que le traitement automatique du langage naturel ?
Le traitement automatique du langage naturel, abrégé en TALN, est une discipline s’appliquant au domaine de l’informatique et du langage. Il est utilisé par exemple pour les traductions, la reconnaissance vocale ou encore les réponses automatiques aux questions. Ces domaines représentent des défis majeurs, car les mots du langage sont souvent traités un à un par l’ordinateur. Or, de nombreux mots sont polysémiques et recouvrent différentes réalités, en s’inscrivant notamment dans des contextes ou expressions qui peuvent changer complètement leur sens d’origine. A titre d’exemple, le verbe « rimer » ne va pas avoir la même signification entre « ne pas rimer » et « ne rimer à rien », tout comme le mot « film » ne va pas se référer à la pellicule photographique dans l’expression « ne rien comprendre au film ». Grâce au traitement du langage naturel, une cohérence tente d’être apportée aux textes en s’attachant au sens des phrases et formules. Ces avancées ne sont pas uniquement utiles pour les traducteurs ou chatbots mais aussi lorsque les ordinateurs exécutent des ordres oraux ou communiquent de manière vocale afin de faciliter par exemple la communication pour les personnes aveugles. Pour pouvoir résumer des textes longs, ou extraire des informations précises, les ordinateurs ont besoin également de comprendre la cohérence linguistique des textes.
Comment fonctionne le traitement automatique du langage naturel ?
Qu’il s’agisse de traduction automatique ou d’une discussion avec un chatbot, les méthodes de TALN prêtent attention aux hiérarchies afin de mettre en cohérence les mots entre eux. Ce n’est pas chose facile car beaucoup de mots ont plusieurs sens : une « souris » par exemple peut définir l’animal, le petit boîtier servant à se diriger sur un écran d’ordinateur, ou même un morceau précis de viande d’agneau. Le traitement automatique du langage naturel représente donc un défi colossal dans le domaine de l’informatique. Le langage peut en effet être à double sens et pour le comprendre, il est nécessaire de bien connaître le contexte dans lequel il s’insère. De nombreux utilisateurs ont d’ailleurs déjà fait l’expérience de conversations quelque peu chaotiques avec les chatbots qui sont fréquemment utilisés pour les chats des services clients. Toutefois, les ordinateurs comprennent de mieux en mieux le langage humain. Pour leur faire apprendre le langage, différents domaines d’application de la linguistique sont pris en compte :
- La morphologie, qui s’intéresse à la composition des mots et leur corrélation avec d’autres mots.
- La syntaxe, qui définit comment les mots sont agencés dans une phrase.
- La sémantique, qui correspond à la signification des mots et des groupes de mots
- La pragmatique, grâce à laquelle le contexte est pris en compte.
- Enfin la phonologie, qui s’occupe des sonorités de la langue orale, ce qui est important pour la reconnaissance vocale.
L’étiquetage morpho-syntaxique
Le traitement automatique du langage naturel prend dans un premier temps en considération la morphologie : cela repose sur la fonction des mots. À l’école primaire, nous avons assimilé une forme simplifiée de ce processus en apprenant à différencier un substantif d’un verbe ou d’un pronom. Ceci peut toutefois être compliqué pour les ordinateurs car un mot peut, suivant la phrase dans laquelle il intervient, changer de fonction.
Pour passer outre ces ambiguïtés, il existe différentes méthodes : les plus anciennes se basent sur de grands corpus linguistiques comme Brown Corpus ou le British National Corpus. Ces corpus de textes rassemblent au total des millions de mots, qui sont étiquetés et à partir desquels des règles d’apprentissage pour l’étiquetage peuvent être déduites.
Les programmes d’étiquetage morpho-syntaxique les plus récents utilisent des algorithmes « autodidactes », ce qui signifie qu’ils déduisent des règles automatiquement des corpus de textes disponibles et les utilisent pour définir les fonctions d’autres mots. L’un des meilleurs exemples de méthodes d’étiquetage basées sur les algorithmes, est le Brill tagger, qui alloue d’abord au mot sa fonction la plus utilisée pour ensuite déduire une autre fonction grâce à des règles définies. Une règle peut être par exemple : si le premier mot d’une phrase est un nom propre, le deuxième va probablement être un verbe.
Arbre syntaxique / Arborescence
Dans un deuxième temps, un travail sur la syntaxe va être effectué pour comprendre la structure des phrases. La linguistique informatique utilise ainsi des arborescences, dans lesquelles les syntagmes vont être décomposés. On trouve par exemple des syntagmes nominaux qui peuvent se composer d’un nom propre ou substantif et d’un article, ou de syntagmes verbaux composés d’un verbe et d’une phrase nominale.
Cette décomposition de la phrase en syntagmes s’appelle en anglais le parsing, et le diagramme correspondant le parser tree. En français, on parle habituellement d’arbre syntaxique. Chaque langue a sa propre grammaire, ce qui signifie que l’ordre des mots, la structure des phrases fonctionnent différemment d’une langue à une autre. La grammaire d’une langue peut être programmée manuellement pour un programme informatique ou peut être apprise à partir d’un corpus de texte sur lequel les structures de phrases sont annotées.
La sémantique
Dans un troisième temps, le TALN va amener les linguistes informaticiens à s’intéresser à la sémantique. Même si un mot n’a qu’une seule fonction grammaticale et s’inscrit dans une syntaxe claire, il peut arriver qu’il ait plusieurs significations. On pourra distinguer des sens différents au mot « opéra » ou « addition » par exemple ci-dessous : L’opéra était très bien mis en scène. Il n’y avait plus d’opéra au menu. L’addition était salée. Pour cet exercice, une addition est nécessaire. Pour une personne « réelle » et non un ordinateur, il n’y pas de grande ambiguïté dans les deux phrases : alors que dans la première, l’opéra se réfère à une œuvre musicale, il s’agit bien sûr dans la deuxième du nom commun d’un gâteau. Cette différenciation est néanmoins plus complexe pour un ordinateur. Plus troublant encore, la phrase « Je loue un appartement » ; on peut en effet se demander si la personne définie par « je » est locataire (et donc paie pour bénéficier d’une surface habitable) ou propriétaire (et donc reçoit de l’argent en échange d’un logement proposé à une autre personne). Afin de comprendre la signification du mot, par exemple de « opéra » dans notre premier exemple, les ordinateurs vont s‘intéresser aux mots qui sont placés avant ou après. Ainsi, la locution « mis en scène » va pouvoir lui supposer qu’il s’agit de l’œuvre musicale tandis que le mot « menu » va être assez explicite pour situer la phrase dans l’univers culinaire. Cet apprentissage est issu généralement des corpus de textes qui permettent de corriger la signification de chaque mot. Le TALN reste dans tous les cas un domaine d’expertise compliqué : les ordinateurs doivent travailler une batterie d’informations, traiter chaque cas un à un et pour les mots polysémiques, les erreurs arrivent très facilement. La marge de progrès pour le domaine de la pragmatique est encore grande, car le contexte n’est pas encore assez pris en compte. L’ironie, le sarcasme et les métaphores humoristiques sont particulièrement difficiles à comprendre pour les ordinateurs, malgré de nombreuses recherches dans le domaine et un long travail de classification.
Les outils de TALN
Pour s’initier au traitement automatique du langage naturel, il existe des outils et aides pratiques en ligne. Mais quel est l’outil le plus adapté pour vous ? Cela va dépendre de la langue et de la méthode TALN que vous souhaitez utiliser. Parmi les outils open-source les plus connus, on trouve :
- Le Natural Language Toolkit est un ensemble d’outils TALN en langage Python. L’outil propose un accès à plus de 100 corpus de textes, parmi lesquels des textes en anglais, portugais, polonais, néerlandais, catalan et basque. De plus, le kit peut effectuer le traitement de différents textes, comme l’étiquetage morpho-syntaxique, l’arbre syntaxique, la segmentation (tokenization en anglais, ce qui constitue souvent la première étape du TALN) et la synthèse de texte. Le kit d’outils TALN comporte également une introduction à la programmation et une documentation détaillée. Il est ainsi bien adapté aux étudiants, doctorants et chercheurs.
- Stanford NLP Group Software: l’un des groupes de recherche les plus importants dans le domaine du traitement automatique du langage naturel. De nombreux outils sont proposés. Ils permettent de définir la forme de base des mots (segmentation en unité), la fonction des mots (étiquetage morpho-syntaxique) et la structure des phrases (arbre syntaxique). De plus, il existe des outils pour les process compliqués comme le deep learning pour lequel le contexte de la phrase est pris en compte. Stanford CoreNLP présente la plupart des fonctions de base. L’ensemble des programmes du Standford NLP sont écrits en langage Java et sont disponibles en français, anglais, allemand, espagnol et chinois.
- Visualtext est un ensemble d’outils écrits dans un langage de programmation propre au TALN : le langage NLP++. Ce langage de programmation a surtout été développé pour ce que l’on appelle les analystes Deep Text. Visualtext sert surtout à extraire des informations depuis une grande quantité de textes. Il permet par exemple de résumer des textes longs mais aussi de regrouper des évènements sur un thème précis à partir de plusieurs sites Web et de créer un aperçu. Visualtext peut être utilisé gratuitement pour des fins non-commerciales.