M1 Ingénierie de la Communication Personne-Système 2004/2005
1
Méthodes pour le Traitement Automatique des Langues
Alain Lecomte – Professeur, Université Pierre Mendès-France
Leçon 1 – Introduction : les langues naturelles sont-elles « hors-contexte » ?
1.1 Les grammaires hors-contexte
Noam Chomsky (voir photo), dans les
années cinquante, a été un véritable
pionnier concernant les modèles à utiliser
pour analyser les langues naturelles. Un
article de 1956 (« Trois modèles de
description du langage ») passait en revue
plusieurs modèles et s’arrêtait sur un
modèle final : celui qualifié alors de
« génératif et transformationnel ». Le
premier modèle reposait sur la notion
d’états finis : Chomsky montrait qu’il
n’était pas envisageable de traiter la
syntaxe d’une langue naturelle au moyen
d’automates à états finis.
La raison essentielle en est l’existence de liens de dépendance entre des marques syntaxiques
à l’intérieur des phrases. Par exemple, le Français possède une règle d’accord entre sujet et
verbe. Partant de la phrase : (1) le paysan laboure le champ, si nous changeons « le » en
« les » devant le mot « paysan », nous devons aussi changer « paysan » en « paysans » et
« laboure » en « labourent ». On pourrait penser qu’il s’agit d’une simple modification entre
des mots adjacents, mais partant de la phrase plus complexe : (2) le paysan dont la maison
prend feu laboure le champ, si nous changeons « le paysan » en « les paysans », là aussi nous
devrons changer « laboure » en « labourent ». L’effet du premier changement se répercute à
distance, et a priori, cette distance peut être arbitraire (bien qu’en pratique, il n’en soit pas
tout à fait ainsi : le paysan dont la maison que je regarde prend feu laboure le champ devient
plus difficile à admettre et notre réticence va augmenter avec le nombre de relatives
enchâssées). On peut dire de ce point de vue qu’une langue comme le Français ressemble au
langage formel L = {anbn ; n>0} : on sait qu’il n’est pas reconnaissable par un automate à états
finis (il suffit d’utiliser pour cela le théorème de la chaîne itérée).
On trouve un problème semblable dans les langages informatiques. Un langage informatique
qui possède des instructions en « si… alors… » composables entre elles contiendra des
instructions du genre :
(3) si si A alors B alors si C alors D
le compilateur devra calculer les bonnes dépendances entre les « si » et les « alors », de
manière à obtenir ici :
si1 si2 A alors2 B alors1 si3 C alors3 D.
Il est commode de représenter cette structure de liens graphiquement, ou au moyen de
parenthèses, par exemple :
(si (si A alors B) alors (si C alors D)).