Analyse syntaxique automatique de langues : du combinatoire au calculatoire Jacques Vergne GREYC - Université de Caen http://www.info.unicaen.fr/~jvergne Introduction : point de départ • notre analyseur 98 : - 1ère place à l'action d'évaluation GRACE (1995-1998) - Grammaires et Ressources pour les Analyseurs de Corpus et leur Évaluation - 22 participants de France, Suisse, Allemagne, Québec, USA : labos, entreprises (dont AT&T, IBM, Xerox, France-Télécom) - décision = 100% (= tokens avec étiquette unique / total des tokens) - précision = 94,5% (= tokens ayant la même étiquette que l'humain / tokens avec étiquette unique) • quelles sont les caractéristiques de cet analyseur ? c'est un analyseur calculatoire 3/7/2001 © Jacques Vergne - TALN 2001 -2- Introduction : nos objectifs • nous placer dans l'évolution historique des analyseurs • comprendre les principes de l'analyse calculatoire • pouvoir construire des analyseurs calculatoires 3/7/2001 © Jacques Vergne - TALN 2001 -3- Introduction : notre espace de travail processus combinatoire —> calculatoire langages de programmation —> langues données à analyser données analysées processus analyseur d'analyse ressources du processus ressources déclaratives —> procédurales ressources statiques 3/7/2001 © Jacques Vergne - —> dynamiques TALN 2001 -4- Introduction : notre parcours dans cet espace • les modèles d'analyse syntaxique : origine, évolution historique analyse calculatoire • critères : processus d'analyse, tagging chunking ressources du processus analyse syntaxique de langages de programmation analyse combinatoire analyse syntaxique de langues 3/7/2001 © Jacques Vergne - TALN 2001 -5- Plan de l'exposé • 1. Analyse de langages de programmation —> analyse de langues analyse calculatoire • 2. Analyse de langues : combinatoire —> calculatoire tagging chunking • 3. Quelques caractéristiques de nos analyseurs analyse syntaxique de langages de programmation analyse combinatoire analyse syntaxique de langues 3/7/2001 © Jacques Vergne - TALN 2001 -6- • 1. Analyse de langage de programmation —> analyse de langues analyse syntaxique de langages de programmation analyse calculatoire tagging chunking analyse combinatoire analyse syntaxique de langues 3/7/2001 © Jacques Vergne - TALN 2001 -7- • 1.1 Les grammaires formelles : outil de modélisation de la syntaxe des langues • modèle : représentation simplifiée et formalisée d'un objet ou d'un processus • Noam Chomsky - formation initiale de mathématicien - entré en linguistique, dans la filiation de Harris et Bloomfield mais en rupture / objet : matériau attesté —> "compétence" du locuteur - 1957 : Syntactic Structures : un ouvrage de linguiste - pour les linguistes chomskiens : modéliser la "compétence" du locuteur natif (en génération) - pour les "TAListes" : modéliser la syntaxe des langues, comme matériau attesté (en analyse) - divergence entre les 2 courants vers 1971 (Théorie Standard Étendue) 3/7/2001 © Jacques Vergne - TALN 2001 -8- • 1.2 Les grammaires formelles : outil de modélisation de la syntaxe des langages de programmation • 1958-1960 : ALGOL 60, premier langage de programmation dont la syntaxe est définie par une grammaire formelle (context free) • grammaire formelle —> méthode de conception du compilateur • premier Langage de programmation Orienté "ALGorithmique" : plus de goto obligatoire dans les structures de contrôle, mais : alternative : if ... then ... else répétitive : for ... step ... until ... do for ... while ... do 3/7/2001 © Jacques Vergne - TALN 2001 -9- • 1.3 Un membre du groupe ALGOL : Bernard Vauquois • 7 pays : Allemagne, Danemark, États-Unis, France, Grande-Bretagne, Pays-Bas, Suisse • 14 délégués : Backus, Bauer, Green, Katz, Mc Carthy, Naur, Perlis, Rutishauser, Salmelson, Turanski, Vauquois, Wegstein, Van Wijngaarden, Woodger • conférences : Zurich (1958), Mayenne (1958), Copenhague (1959), Paris (juin 1959, janvier 1960) • filiation d'ALGOL 60 : Pascal —> C —> C++ —> Java —> Ada 3/7/2001 © Jacques Vergne - TALN 2001 -10- • 1.4 Bernard Vauquois, directeur du CETA en 1961 • astronome-mathématicien —> informaticien-linguiste • enseignant d'informatique, de la théorie des langages formels à l'université de Grenoble • ses idées pour fonder la Traduction Automatique de 2ème génération : - utiliser la théorie des langages formels - fonder la TA sur le modèle de la compilation • Christian Boitet, "L'apport scientifique de Bernard Vauquois" (Analectes, 1989) : Il revient sans doute au CETA, à l'initiative de B. Vauquois, d'avoir introduit l'analogie entre TA et compilation. Ainsi un système de TA est-il vu comme une sorte de "compilateur de langue naturelle". 3/7/2001 © Jacques Vergne - TALN 2001 -11- • 1.5 Compilation <—> Traduction Automatique humain instructions en une langue codes analysés : différents traduction humaine : analyse-programmation humain instructions en un langage de progr. textes en une langue source traduction automatique : compilation Traduction Automatique de langues instructions en langage machine textes en une langue cible processeur 3/7/2001 humain © Jacques Vergne - TALN 2001 -12- • 1.6 Les transpositions des grammaires formelles en TAL modéliser la "compétence" du locuteur natif, en génération modéliser la syntaxe des langages de programmation (ALGOL 60) linguistique informatique analogie TA - compilation (Vauquois) Théorie Standard Étendue (Chomsky) TAL combinatoire linguistique —> TAL : modéliser la syntaxe des langues abandon de (matériau attesté), en analyse l'objet modélisé par Chomsky 3/7/2001 © Jacques Vergne - TALN 2001 -13- • 1.7 Compilation —> analyse syntaxique de langues programme phrase compilation analyseur de langages analyseur de langues de programmation ressources lexicales exhaustives : primitives dictionnaire ressources syntaxiques exhaustives : grammaire formelle arbre des constituants analyse syntaxique de langues en ressources : même modèle statique du code analysé 3/7/2001 © Jacques Vergne - TALN 2001 -14- • 1.7 Compilation —> analyse syntaxique de langues même modèle du code analysé, critères mais un processus différent : compilation processus répétitif / token déterministe combinatoire non déterministe complexité théorique : polynomiale théorique : exponentielle en temps pratique : linéaire pratique : polynomiale code analysé langage formel le modèle du code analysé est transposé 3/7/2001 analyse de langues © Jacques Vergne - langue mais le processus n'est pas transposé TALN 2001 -15- • 1.7 Quelle différence entre langages de programmation et langues ? => compilation = processus déterministe —> analyse de langues = processus non déterministe critères langages de programmation langues dictionnaire fermé et figé ouvert et évolutif combien d'étiquettes par token ? 1 token <—> 1 étiquette unique 3/7/2001 © Jacques Vergne - 1 token <—> plusieurs étiquettes TALN 2001 -16- • 2. Analyse de langues : combinatoire —> calculatoire ressources = modèles dynamiques des processus de calcul analyse calculatoire ressources = modèles statiques des structures attendues : grammaires formelles analyse syntaxique de langages de programmation tagging chunking analyse combinatoire analyse syntaxique de langues 3/7/2001 © Jacques Vergne - TALN 2001 -17- • 2.0 Un exemple des deux modes de résolution • Un problème : un fils a le quart de l'âge de son père, et leur différence d'âge est de 30 ans • Sa résolution combinatoire : - soient f l' âge du fils, et p l' âge du père - avec 0<f<100, 0<p<100 (en supposant une solution entière) : pour chacun des 10 000 couples (f, p), si les 2 contraintes sont satisfaites alors sortir le couple (f, p) - nombre de solutions inconnu a priori : 0, 1, n • Sa résolution calculatoire : - poser le système des 2 équations à 2 inconnues : f=p/4 p-f=30 - résoudre le système => solution unique : f=p/4 et p-f=30 => 4f-f=3f=30 => f=10 => p=30+f=40 3/7/2001 © Jacques Vergne - TALN 2001 -18- • 2.1 Analyse de langues : combinatoire analyse calculatoire tagging chunking analyse syntaxique de langages de programmation analyse combinatoire analyse syntaxique de langues 3/7/2001 © Jacques Vergne - TALN 2001 -19- • 2.1 Poser un problème de manière combinatoire • "combinatoire" : une manière de poser et résoudre un problème mais pas le problème lui-même • poser un problème de manière combinatoire : - les attributs d'un ensemble d'unités ont plusieurs valeurs possibles - on a des contraintes sur les valeurs des attributs - on veut trouver les valeurs des attributs qui satisfont les contraintes = le poser comme un problème de satisfaction de contraintes (CSP) 3/7/2001 © Jacques Vergne - TALN 2001 -20- • 2.1 Résoudre un problème de manière combinatoire • dans une résolution combinatoire : -1- on constitue toutes les combinaisons possibles -2- pour chaque combinaison, on vérifie la satisfaction des contraintes unités à traiter combinaisons constituer de valeurs valeurs possibles des attributs combinaisons vérifier vérifiées (0, 1, n) contraintes • complexité théorique en temps : exponentielle selon le nombre d'unités 3/7/2001 © Jacques Vergne - TALN 2001 -21- • 2.1 Poser l'analyse syntaxique de manière combinatoire • le problème de l'analyse syntaxique automatique est traditionnellement posé et résolu de manière combinatoire • le problème est ainsi posé : - les mots d'une phrase ont plusieurs catégories possibles - toutes les valeurs possibles des attributs des mots d'une phrase sont explicitées "exhaustivement" dans le dictionnaire - les contraintes sur les catégories sont les structures possibles des phrases et des syntagmes, explicitées dans la grammaire formelle - on veut trouver les catégories des mots qui satisfont les contraintes (= "désambiguïsation") 3/7/2001 © Jacques Vergne - TALN 2001 -22- • 2.1 Résoudre l'analyse syntaxique de manière combinatoire unités à traiter mots de la phrase constituer valeurs possibles des attributs catégories possibles (dictionnaire) 3/7/2001 combinaisons de catégories vérifier contraintes grammaire formelle © Jacques Vergne - TALN 2001 combinaisons vérifiées (0, 1, n) -23- • 2.2 Analyse combinatoire —> tagging ressources = modèles dynamiques des processus de calcul analyse calculatoire ressources = modèles statiques des structures attendues : grammaires formelles analyse syntaxique de langages de programmation tagging chunking analyse combinatoire analyse syntaxique de langues 3/7/2001 © Jacques Vergne - TALN 2001 -24- • 2.2 Analyse combinatoire —> tagging complexité théorique : exponentielle, pratique : polynomiale processus combinatoire : reconnaître les attendus analyse combinatoire phrase processus d'analyse phrase analysée 0,1 ou n arbres syntagmatiques ressources du processus : structures attendues ressources déclaratives ou statiques : grammaire formelle complexité théorique : linéaire, pratique : linéaire processus calculatoire : interpréter les règles tagging chunking texte processus d'analyse texte analysé 1 résultat unique ressources du processus : règles contextuelles ressources procédurales ou dynamiques 3/7/2001 © Jacques Vergne - TALN 2001 -25- • 2.2 Le tagging, processus de calcul à partir de formes et de leur position dét. => nom ou adjectif prép. => dét., nom ou adjectif Le site allemand de Dasa devra assembler à Hambourg ce nouvel avion . • quelques propriétés linguistiques de formes & de leur position : catégorie d'un mot => contrainte sur la catégorie du mot suivant —> 3/7/2001 processus de catégorisation (des mots) © Jacques Vergne - TALN 2001 -26- • 2.2 Le chunking, processus de calcul à partir de formes et de leur position Le site allemand Le .... site N........ allemand [ [ devra .......er assembler V devra assembler [ de Dasa de pN Dasa .... [ ce à Hambourg à ........ Hambourg pN [ ...... nouvel avion N ..... ce nouvel avion [. . • quelques propriétés linguistiques de formes & de leur position : mot grammatical => début et type de chunk (Abney 1991) —> 3/7/2001 processus de segmentation (chunking), catégorisation (des chunks) © Jacques Vergne - TALN 2001 -27- • 2.3 Tagging —> analyse calculatoire ressources = modèles dynamiques des processus de calcul analyse calculatoire ressources = modèles statiques des structures attendues : grammaires formelles analyse syntaxique de langages de programmation tagging chunking analyse combinatoire analyse syntaxique de langues 3/7/2001 © Jacques Vergne - TALN 2001 -28- • 2.3 Tagging —> analyse calculatoire complexité théorique : linéaire, pratique : linéaire processus calculatoire : interpréter les règles analyse tagging calculatoire texte texte analysé processus d'analyse 1 résultat unique ressources du processus : règles règlescontextuelles conditions => actions ressources procédurales ou dynamiques • quasi identiques, mais quelles différences ? - ressources lexicales : mots grammaticaux + morphèmes de fin de mots une seule étiquette par défaut - règles conditions => actions : 3/7/2001 + mise en relation des unités © Jacques Vergne - TALN 2001 -29- • 2.4 Analyse de langues : calculatoire ressources = modèles dynamiques des processus de calcul analyse calculatoire ressources = modèles statiques des structures attendues : grammaires formelles analyse syntaxique de langages de programmation tagging chunking analyse combinatoire analyse syntaxique de langues 3/7/2001 © Jacques Vergne - TALN 2001 -30- • 2.4 Poser et résoudre un problème de manière calculatoire • pour poser et résoudre un problème de manière calculatoire : - poser le problème en termes de calcul à partir de données, et non pas en termes de choix parmi des valeurs possibles connues - avoir une meilleure connaissance des propriétés des unités à traiter et mieux exploiter cette connaissance => trouver plus de contraintes et trouver comment les utiliser pour calculer directement et définitivement la valeur d'un attribut unités à traiter • résolution calculatoire : contraintes les contraintes sont vues comme des opérations sur les unités à traiter 3/7/2001 opérandes solution calculer calculée unique solution calculer calculée unique opérations © Jacques Vergne - TALN 2001 -31- •modèle 2.4 statique Poser et résoudre des structures attendues > l'analyse syntaxique modèle dynamique du processus de calcul de manière calculatoire — • prendre en compte explicitement l'ouverture de la langue : - une langue n'est pas caractérisable exhaustivement, contrairement à un langage de programmation - ressources lexicales minimales : mots grammaticaux, morphèmes de fin de mots - pas de grammaire formelle : pas d'inventaire (exhaustif) des structures attendues pas de test de grammaticalité • des règles conditions => actions explicitent dans un même formalisme : - des ressources typographiques, lexicales et morphologiques minimales, - des propriétés linguistiques (utilisation explicite du contexte), - le processus de mise en relation des unités 3/7/2001 © Jacques Vergne - TALN 2001 -32- • 2.4 Résoudre l'analyse syntaxique de manière calculatoire • processus de calcul : - un moteur à base de règles passe les règles "conditions => actions" une fois sur chaque unité : caractères, tokens, syntagmes, propositions, phrases, (paragraphes, ... ) - conditions sur les attributs d'unités et sur les relations entre unités (contiguïtés, constituances, dépendances, coordinations, ...) - actions : affecter des valeurs aux attributs, établir des relations (dépendances et coordinations), et générer les unités du niveau supérieur • processus de complexité linéaire : traitement en flux à débit constant • lexique et structures syntaxiques du texte analysé calculés et produits en sortie 3/7/2001 © Jacques Vergne - TALN 2001 -33- • 3. Quelques caractéristiques de nos analyseurs ressources = modèles dynamiques des processus de calcul analyse calculatoire ressources = modèles statiques des structures attendues : grammaires formelles analyse syntaxique de langages de programmation tagging chunking analyse combinatoire analyse syntaxique de langues 3/7/2001 © Jacques Vergne - TALN 2001 -34- • 3.1 Un processus de calcul à partir de formes et de leur position V ? pN ? Le site allemand pN ? de Dasa pN ? à Hambourg Le site .... N........ allemand de pN Dasa .... à Hambourg ........ pN devra assembler .......er V sujet - verbe ce nouvel ...... avion N ..... . objet - verbe devra assembler N? ce nouvel avion . • quelques propriétés linguistiques de formes & de leur position : —> processus de segmentation (chunking), catégorisation et mise en relation (des chunks) 3/7/2001 © Jacques Vergne - TALN 2001 -35- • 3.2 Autre langue, même calcul V? pN ? The ............ N have .......ed V sujet - verbe pN ? pN ? of pN .... in ....... pN a ............. N . objet - verbe N? • premier paquet de règles : graphies —> attributs des unités • paquets suivants : 3/7/2001 calculs sur les attributs, identiques pour plusieurs langues © Jacques Vergne - TALN 2001 -36- • 3.3 Autre niveau, même calcul prop. princ. ? subordination ........ .... logement ........ .... ou .. meublé ...... Qu'il s'agisse d'un vide proposition subordonnée , .. .. ... s'opposer ......... le............ propriétaire ne..... peut pas proposition principale prop. sub. ? à ce que le .. locataire ......... ....... .. héberge un ...... animal ........ familier proposition subordonnée . subordination • quelques propriétés linguistiques de formes & de leur position : —> processus de segmentation (en propositions), catégorisation et mise en relation (des propositions) 3/7/2001 © Jacques Vergne - TALN 2001 -37- • 3.4 Un processus de complexité linéaire pour relier les unités • un processus en 2 temps, au fur et à mesure de l'arrivée des unités : unité virtuelle type intermédiaire de calcul, invocable à tout moment dans les conditions unité i unité j type temps 1 temps 2 règle 1 règle 2 • processus de complexité linéaire, condition actions condition action indépendant des unités arrivant entre les 2 unités reliées • ce processus modélise le déroulement d'une saturation de valence 3/7/2001 © Jacques Vergne - TALN 2001 -38- • Conclusion calculs à partir de formes et de leur position règles de calcul fondées sur quelques propriétés linguistiques TAL calculatoire en ressources : modèle dynamique TAL du processus grains : document, combinatoire de calcul paragraphe, phrase, proposition, chunk, ... en ressources : modèle statique de toutes abandon du modèle statique grammaire grain mot dictionnaire exhaustif les formes de toutes les formes attenduesformelle attendues possibles 3/7/2001 © Jacques Vergne - TALN 2001 -39- fin de l'exposé • vous pouvez télécharger cette présentation sur http://www.info.unicaen.fr/~jvergne/TALN2001_JV.ppt • voir aussi le tutoriel du Coling 2000 "Trends in Robust Parsing" sur http://www.info.unicaen.fr/~jvergne/tutorialColing2000.html (présentation et références) • 3/7/2001 © Jacques Vergne - TALN 2001 -40- vos questions ? 3/7/2001 © Jacques Vergne - TALN 2001 -41- Résultats de GRACE décision = 100% = tokens avec étiquette unique / total des tokens analyseur calculatoire décision < 100% <=> étiquettes multiples précision = 94,5% = tokens ayant la même étiquette que l'humain / tokens avec étiquette unique 3/7/2001 © Jacques Vergne - TALN 2001 -42-