Cours de Traitement Automatique du Langage

TP: Introduction au TAL


Démonstrations d'outils linguistiques

Le but de ce TP est d'introduire la problématique du traitement automatique du langage en vous laissant "jouer" avec quelques démonstrations de logiciels et existants.

Ce TP est constitué de 4 démonstrations :

  1. Traduction automatique
  2. Désambiguïsation de mots en contexte
  3. Identification de la langue
  4. Discussion automatique


Traduction Automatique

Nous utilisons pour cela le traducteur Babel Fish de Systran utilisé par Yahoo ou encore le traducteur de Google
  1. Commencez par quelques essais personnels dans les langues que vous souhaitez.
  2. (Example historique) Traduire la phrase
    L'esprit est fort mais la chair est faible
    de français en anglais puis retraduire le résultat obtenu d'anglais en français.
    Qu'obtient-on ?
  3. Considérez la phrase
    Time flies like an arrow
    1. En quoi peut elle poser problème ?
    2. Essayez sa traduction en français...
    3. Retraduire le résultat obtenu d'anglais en français
  4. Faire de même avec les expressions
    il tombe des cordes
    il pleut des cordes
    1. Sont-elles correctement traduites ?
    2. voir les différences (expressions idiomatiques)
    3. Retraduire pour étudier la symétrie
  5. Essayez d'évaluer (pour une tâche donnée) la qualité de ce logiciel du point de vue de sa tâche : quels seraient les différents points à évaluer ?
    Évaluez la robustesse par rapports aux erreurs : au niveau des mots (niveau lexical), au niveau des phrases (niveau syntaxique) et au niveau du sens (sémantique/pragmatique).
    Regardez par exemple (et trouvez des exemples) les traductions
Quelques conclusions / Idées à retenir :

Pour toute application LN :

  • avoir une bonne couverture lexicale de l'application (i.e. du vocabulaire utilisé pour l'application envisagée)

  • prévoir le traitement des formes inconnues adapté à l'application considérée ;
    Exemple pour la traduction :
    une bonne heurisitique pour le traitement des mots inconnus est de les laisser tel quel.

  • En tant qu'ingénieur s'orienter vers la performance, c'est-à-dire tenir compte de la fréquence d'occurence des phénomènes et traiter en premier les phénomenes les plus fréquents plutôt que les phénomènes linguistiques "intéressants" et/ou les exceptions.

Désambiguïsation de mots en contexte

Le rôle du logiciel considéré ici est d'affecter des étiquettes grammaticales (appelées "catégories morpho-syntaxiques") aux mots d'un texte, c'est-à-dire d'identifier plus ou moins le rôle joué par ce mot au niveau de la phrase.

Les applications d'un tel module sont nombreuses. Citons par exemple :

Les performances usuelles de tels systèmes varient (en fonction de la langue traitée, de l'application considérée et de la finesse du jeu d'étiquettes choisi) de 95 à 98 %.

Nous utilisons ici l'étiqueteur de Xerox (sélectionner la langue french).

Choisir "Désambiguïsation" et analyser l'exemple donné (bouton "appliquer").

Abbréviations :

Essayez maintenant la phrase "La nuit, tous les chats sont gris."
Notez en particulier le choix de l'étiquette en cas d'ambigüité (e.g. "gris").
Idée clé : Il vaut mieux ne pas lever les ambiguïtés
  • si on n'en a pas besoin ;
  • à des endroits où on ne possède pas forcément toute l'information.

Comportement sur les mots inconnus ("guesser") , rêgles morphologiques :
Essayez

La xxx, tous les chats sont gris.
La wxz, tous les chats sont gris.
La wie, tous les chats sont gris.
La wix, tous les chats sont gris.
La xxxx, tous les chats sont gris.

Ambiguité intrinsèque -> choix.
Essayez la phrase "La petite brise la glace."

  1. Comment comprenez vous la phrase ? Voyez vous un autre sens possible ?
  2. La réponse obtenue est-elle cohérente avec l'une ou l'autre des 2 interprétations de la phrase ?
    -> conséquence de la portée limitée du traitement

Portée limitée du traitement
Essayez la phrase "Le chat que j'ai vu dans la rue où je courais épuisé miaule". Comment est étiqueté "miaule" ?
Essayez "Le chat que j'ai vu dans la rue où ils courraient est gris". Même question pour "gris"...
-> plutôt bonnes performances !

Trouvez d'autre exemples, testez le logiciel.


Identification de la langue

Le rôle du logiciel considéré ici est de détecter automatiquement la langue dans laquelle a été écrit un texte donné.

Les applications d'un tel module sont par exemple :

Les performances usuelles de tels systèmes sont voisines de 99 %.

Nous utilisons ici l'identificateur de langue de Xerox.

Essayez sur quelques exemples personnels.

Essayez la phrase "Le bug dans le soft a engendré un crash du système"
Étonnant, non ?

Essayez la même phrase en remplaçant les mots pleins (i.e. les mots non-grammaticaux) par n'importe quoi, par exemple "Le xwt dans le xwt a xwtyxwy un xwt du wxt"
De plus en plus surprennant...

Essayez maintenant la même séquence mais sans les mots grammaticaux. Par exemple "xwt xwt xwtyxwy xwt wxt"

Et avec les mots d'origine (i.e. "bug soft engendré crash système") ?

Un tel système utilise en fait 2 techniques combinées :

  1. reconnaissance de mots fréquents importants (et discriminants) tels que par exemple les mots grammaticaux. D'où le comportement précédent.
  2. identification de séquences de lettres fréquentes.

Pour illustrer ce dernier point, tapez du texte sans mots grammaticaux et ne contenant que des mots ressemblant à du français sans en être vraiement, par exemple "ordinateuret rajmanisme douguilette"

Essayez d'autres exemples dans votre langue maternelle.

Essayez votre nom de famille.


Discussion automatique

Nous vous proposons ici de dialoguer avec un robot de dialogue ("chatterbot" en anglais, de "CHAT" discuter et "roBOT") nommé Alice (cliquez sur "Chat with A.L.I.C.E."). Vous pouvez aussi trouver d'autres chatterbots ici.

A vous de jouer...

Le but de cette dernière partie est double :

  1. prendre conscience des difficultés de traitement de la langue
  2. mais vous faire aussi toucher du doigt que malgré ces difficultés un traitement réaliste de la langue est possible.

En guise de conclusion (dessert ?) vous pouvez aussi vous amuser à essayer de comprendre le texte suivant (si, si, il a un sens !) puis à y chercher les (nombreux) pièges pour le traitement automatique qui s'y trouvent.

Créé par Antoine Rozenknop (Antoine.Rozenknop@lipn.univ-paris13.fr), d'après Jean-Cédric Chappelier (Jean-Cedric.Chappelier@epfl.ch)
Dernière modification le 29/9/2010.