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 :
- Traduction automatique
- Désambiguïsation de mots en contexte
- Identification de la langue
- Discussion automatique
Traduction Automatique
Nous utilisons pour cela le
traducteur Babel Fish de Systran utilisé par Yahoo
ou encore le traducteur de Google
- Commencez par quelques essais personnels dans les langues que
vous souhaitez.
- (Example historique) Traduire la
phraseL'esprit est fort mais la chair est
faiblede français en anglais puis retraduire le
résultat obtenu d'anglais en français.
Qu'obtient-on ?
- Considérez la phraseTime flies like an
arrow
- En quoi peut elle poser problème ?
- Essayez sa traduction en français...
- Retraduire le résultat obtenu d'anglais en français
- Faire de même avec les expressions
il tombe des cordes
il pleut des cordes
- Sont-elles correctement traduites ?
- voir les différences (expressions idiomatiques)
- Retraduire pour étudier la symétrie
- 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 - d'expressions comme "à l'heure" (per
hour ou on time ?), "le rapport"
(report ou ratio ?), ...
- de sigles (ONU, OVNI, ...)
- de vocabulaire spécialisé :
The Sun products are well known.
|
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 :
- l'aide à la mise sous forme cannonique ("lematisation") ;
- désambiguisation pour des traitement de plus haut niveaux
- l'affectation de "rôles" aux mots inconnus ;
- la recherche de terminologies spécifiques (à l'aide d'expressions
régulières de catégories morpho-syntaxiques).
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 :
- DET --- Déterminant
- NOUN --- Nom
- PRON --- Pronon
- PREP --- Préposition
- VAUX --- Auxiliaire
- IndP, Fut, Cond --- Présent Indicatif, Futur, Conditionnel
- Imp, Subj --- Imperatif, Subjonctif
- PaPrt, PrPrt --- Participe Passé, Participe Présent
- SG, PL --- Singulier, Pluriel
- Masc, Fem --- Masculin, Féminin
- P1, P2, P3 --- Première, Deuxième ou Troisième Personne
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."
- Comment comprenez vous la phrase ? Voyez vous un autre sens possible ?
- 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 :
- le traitement des formes extra-lexicales (i.e. mots inconnus);
- le choix du module de traitement et des données à mettre en
oeuvre (par exemple pour la classification de paragraphes de
courrier électronique).
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 :
- reconnaissance de mots fréquents importants (et discriminants) tels
que par exemple les mots grammaticaux. D'où le comportement précédent.
- 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 :
- prendre conscience des difficultés de traitement de la langue
- difficulté intrinsèque liée à la richesse du langage
(implicite et ambiguë)
- mais aussi difficulté bassement technique due aux formats
terriblement variables et peu fiables, ceci à tous les
niveaux
- niveau "signal" : problème de format de caractères
spéciaux, ...
- niveau lexical : fautes de frappe, mots inconnus, ...
- niveau syntaxique : regardez comment vous avez
parlé à ce pauvre robot (grammaire ?)
- niveaux sémantique et pragmatique : de quoi
parlez-vous ?
- 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.