Le TALN appliqué aux chatbots

    Le TALN appliqué aux chatbots
    Actu IA

    Qu’est-ce que le TALN ?

    Le Traitement Automatique des Langues (TAL) ou Traitement Automatique du Langage Naturel (TALN) vise à appliquer des méthodes informatiques pour exploiter des ressources exprimées en langue naturelle. C’est une discipline à l’interface entre la linguistique, l’informatique et l’intelligence artificielle.

    Le TAL a donc pour objectif de développer des programmes informatiques capables de traiter de façon automatique des données linguistiques. Toute la complexité de cette tâche repose sur le fait qu’un langage naturel utilise un vocabulaire non exhaustivement défini, avec une sémantique ambigüe et des règles syntaxiques nombreuses à la complexité variable.

    Pour traiter automatiquement des données linguistiques, il convient donc d’abord d’identifier les règles pertinentes de la langue puis de les représenter dans des formalismes opératoires et calculables et enfin de les implémenter à l’aide de programmes informatiques.

    Mais pourquoi donc s’intéresser au Traitement Automatique du Langage ?  A l’ère de l’Intelligence Artificielle et des données en masse, le TALN trouve, en dehors de son intérêt académique évident, une multitude d’applications pratiques dans :

    • le traitement de la parole ;
    • la traduction automatique ;
    • la compréhension automatique des textes ;
    • la génération automatique de textes ;
    • la gestion électronique de l’information et des documents existants (GEIDE).

    Dans le cadre d’un chatbot, c’est la compréhension automatique des textes et la génération automatique de textes qui s’avèrent indispensables à produire un agent conversationnel pertinent. Le chatbot va devoir comprendre les requêtes de l’utilisateur saisies en langage naturel, ce qui implique, pour être efficace, d’aller plus loin qu’une identification de mots clefs et d’effectuer une analyse lexicale poussée afin de comprendre le sens de la requête. Dans le cas du Chatbot de Synapse, l’analyse des constituants de la phrase permet de générer automatiquement des questions à partir de chacune des informations contenues dans un document. Cette méthode a pour qualité de proposer un appariement natif des questions et réponses, et ne dénature pas le contenu informatif puisque chaque réponse est un extrait exact de la documentation originale.

    Néanmoins, si le TALN permet effectivement d’exploiter des ressources linguistiques massives et complexes pour lever les ambiguïtés du langage écrit, ce n’est pas sans peine.

    Les difficultés du TALN

    La complexité des problèmes liés au TAL a toujours été sous-estimée. Et le domaine n’est pas récent ! En 1954, IBM organisait une démonstration d’un système de traduction automatique du russe vers l’anglais ; le système présenté fonctionnait avec six règles grammaticales et un vocabulaire de 250 termes. Plus de soixante phrases furent traduites avec succès. Ces résultats impressionnants soulevèrent une vague d’optimisme et l’on pensait alors que le problème de traduction automatique serait résolu en trois à cinq ans. Dix années de recherches infructueuses eurent raison de cet optimisme.

    Pour railler la faiblesse des systèmes de TALN, on rapporte souvent la phrase « The spirit is willing but the flesh is weak » (l’esprit est fort mais la chair est faible) qui fut traduite en russe puis retraduite en anglais. Cela donna quelque chose comme : « The vodka is strong but the meat is rotten » (la vodka est forte mais la viande est pourrie) !

    Cet exemple a l’avantage de mettre en exergue les deux principales raisons qui rendent le TAL difficile : l’ambiguïté du langage naturel (spirit peut ici se traduire comme esprit ou comme alcool), et le manque de connaissances contextuelles (i.e. portant sur la situation décrite) et encyclopédiques (i.e. portant sur le monde en général).

    La première difficulté, l’ambiguïté du langage naturel, se manifeste à plusieurs niveaux. Au niveau phonétique, les homophones sont des mots distincts qui se prononcent de la même façon (par exemple “laid” et “lait”). Au niveau lexical, on trouve des ambiguïtés lexicales polysémiques (“Antoine sent la rose” peut être paraphrasé en “Antoine hume la rose” ou “Antoine a l’odeur d’une rose”) et des ambiguïtés lexicales homonymiques (dans la phrase “Cet ours a mangé un avocat,” la forme avocat correspond à deux termes distincts, l’un désignant un fruit, l’autre une personne). Au niveau grammatical, certaines phrases admettent plusieurs structures syntaxiques (la phrase “Julien a vu un homme avec un télescope” peut être paraphrasée en “Julien a vu un homme grâce à un télescope” ou “Julien a vu un homme qui avait un télescope”).

    La seconde difficulté majeure est la quantité d’implicite présente dans presque tout énoncé naturel. La compréhension d’un énoncé en langue naturelle est effectuée chez l’humain par des processus cognitifs impliquant des connaissances extérieures à celles comprises dans l’énoncé. Par exemple, de l’énoncé “L’appartement est en face de l’autoroute,” un être humain déduit automatiquement que l’appartement en question se situe dans un environnement bruyant.

    Palier ces difficultés implique d’effectuer un traitement complexe de la langue, en plusieurs étapes indispensables.

     

    Les étapes essentielles du TALN pour la compréhension des requêtes d’un Chatbot :

     

    1) Tokenisation :

    Avant toute analyse automatique de texte, il est d’abord essentiel de le segmenter en unités linguistiques. La segmentation de plus bas niveau s’intéresse aux mots, et il est également possible de tokeniser en clauses, phrases et paragraphes. Cette étape s’appelle la tokenisation. La tokenisation en mots est essentiellement basée sur l’espace, marqueur de séparation privilégié à l’écrit, mais il faut néanmoins rester vigilant et ne pas oublier certaines exceptions, tels que les noms composés dont le lien est explicite (e.g bateau-mouche, aujourd’hui), ou bien les noms composés détachés (e.g. pomme de terre). La gestion de ces derniers relève d’une tokenisation avancée, et s’appuie généralement sur des ressources linguistiques externes.

    Par exemple, dans la phrase « Comment déclarer un dégât des eaux si la fuite provient de chez mon voisin ? », la tokenisation en mots équivaut à :

    comment/déclarer/un/dégât/des/eaux /si/la/fuite/provient/de chez/mon/voisin/?

     

    2) Étiquetage (morpho-)syntaxique   :

    Après avoir segmenté le texte en unités lexicales, une première analyse avancée des données consiste à étiqueter chaque token avec des informations grammaticales : c’est l’étiquetage syntaxique. Cette étape permet d’attribuer une classe grammaticale (eg. nom, verbe, adjectif) à chaque token. Si  des informations relatives au genre et au nombre apparaissent également, on parle d’étiquetage morphosyntaxique. L’étiquetage permet d’effectuer une première désambiguïsation entre un nom et un verbe conjugué homonymes par exemple (« une lance » ou « il lance »).

    Par exemple, dans la phrase « Comment déclarer un dégât des eaux si la fuite provient de chez mon voisin ? », l’étiquetage équivaut à :

    Comment déclarer un dégât des eaux
    Adverbe Verbe à l’infinitif Article indéfini masc. sing. Nom commun masc. sing. Article défini pl. invariant en genre Nom commun fém. pl.

     

    si la fuite provient de

    chez

    mon voisin ?

     

    Conj. de subord. Article déf. fém. sing. Nom commun fém. sing. Verbe indicatif présent 3e pers. du sing. préposition Dét. possessif Nom commun masculin singulier Ponct. forte

     

    3) Lemmatisation :

    Une fois les unités repérées, il est possible de normaliser la forme des tokens en passant par une étape de lemmatisation. Elle consiste à attribuer à un mot sa forme neutre, appelée le lemme. En français, le lemme d’un nom est sa forme, lorsqu’elle existe, au masculin singulier. De même, le lemme d’un verbe correspond à son infinitif. Cette étape facilite la reconnaissance des mots d’une phrase, et le rapprochement des mots similaires. En effet, s’ils ne sont pas normalisés, un programme ne peut pas savoir que “sont”, “étiez” et “fussiez” sont trois formes dérivées du verbe “être”, alors qu’il peut être intéressant dans le cadre d’une analyse automatique du texte, de savoir qu’il y a 15 occurrences du verbe “être”, plutôt que 3 occurrences de “sont”, 6 occurrences de “étiez” et 6 occurrences de “fussiez”.

    Par exemple, dans la phrase « Comment déclarer un dégât des eaux si la fuite provient de chez mon voisin ? », la lemmatisation équivaut à :

    comment/déclarer/un/dégât/de le/eau/si/le/fuite/provenir/de/chez/mon/voisin/?

     

    4) Analyse en dépendances :

    Certains étiqueteurs morphosyntaxiques effectuent également une analyse en dépendances, qui a pour objectif d’identifier les différentes relations syntaxiques qui lient les mots d’une phrase. Cela permet d’extraire des dépendances syntaxiques, sous forme de triplets composés de deux mots qui partagent une relation syntaxique, telles que les relations nom-sujet-verbe, nom-objet-verbe ou encore adjectif-attribut-nom.

    Dans notre exemple, l’analyse en dépendances, en version simplifiée, ferait apparaître ces relations :

     

    5) Désambiguïsation lexicale :

    La désambiguïsation lexicale est une tâche qui consiste à déterminer pour une forme donnée interprétable de différentes manières, qu’elle est l’interprétation à sélectionner.  L’analyse du contexte d’un mot permet généralement d’éliminer les cas les plus improbables, même s’il reste des cas que le TAL a encore beaucoup de mal à désambiguïser. Un exemple simplifié permet d’illustrer ce phénomène :  le mot (ou la forme) « tour » peut recouvrir différents sens, comme « une tour » (de guet), ou « un tour » (de piste). Dans  cet exemple, le seul contexte disponible (l’article « un/une »), permet de sélectionner un sens plutôt qu’un autre grâce à l’indication du genre (masculin/féminin). Dans d’autres situations, la sélection d’un sens aux dépens d’un autre est bien plus complexe, et la réussite de cette tâche dépend d’un contexte suffisamment riche en informations lexicales, morphologiques, etc. On peut également se servir d’informations extérieures, comme le nombre d’occurrence de chaque forme-sens en corpus, pour les classer de la plus fréquente (donc la plus probable) à la plus rare.

    Les études sur ce sujet sont historiques, et leurs applications très répandues depuis l’avènement de l’informatique, ce qui a permis de mettre en lumière qu’un mot apparaît quasi-systématiquement entouré de mots relatifs au même domaine, à la même thématique, ou encore au même champ lexical.

    Par exemple, dans notre phrase exemple « Comment déclarer un dégât des eaux si la fuite provient de chez mon voisin ? », la présence de « eau » (ou « dégâts des eaux » pour les systèmes plus sophistiqués) permet de renforcer l’interprétation de « fuite » en « écoulement d’un liquide » au détriment d’un autre sens possible, à savoir « s’échapper ».

     

    Ces 5 étapes entament le processus de compréhension des requêtes de l’utilisateur, formulées en langage naturel, par un ordinateur. Elles sont le point de départ d’une analyse et d’un traitement long et complexe qui va permettre à une Intelligence Artificielle de comprendre la requête et d’y apporter une réponse adaptée. Ce traitement se fait en quelques centièmes de secondes, ce qui permet une quasi-instantanéité des réponses mais nous donne également la fausse impression de facilité ou de simplicité de la tâche. Il est pourtant parfois bon de se rappeler que derrière l’avatar souriant des chatbots se cache souvent une expertise linguistique et technologique issue de nombreuses années de recherche et développement ! Une pensée à garder à l’esprit pour être plus indulgents avec nos compagnons robotisés, le temps qu’ils apprennent à nous déchiffrer…

     

    Auteurs :

    Anouk BIRSKI – Ingénieure Linguiste

    Émilie MERDY – Ingénieure Linguiste

     

    Sources :

    François Yvon,  Une petite introduction au Traitement Automatique des Langues Naturelles »

    1. Tellier, Introduction au TALN et à l’ingénierie linguistique, Université de Lille 3

    Camille Pradel, « D’un langage de haut niveau à des requêtes graphes permettant d’interroger le web sémantique » Thèse de doctorat en Intelligence Artificielle, sous la direction d’Ollivier Haemmerlé et Nathalie Hernandez, Université Toulouse 3 Paul Sabatier, 2013

    Djallel Bouneffouf, « Rôle de l’inférence temporelle dans la reconnaissance de l’inférence textuelle » Thèse de doctorat en Informatique, Université des Sciences et Technologie Houari Boumediene, 2008

    Ruslan Miktov, The Oxford handbook of computational linguistics, Oxford University Press, 2003

     

    PARTAGER