Arbre d’analyse pour une grammaire

Réalisé par : Groupe 5
EST ESSAOUIRA

Sommaire

1-introduction 2-Définitions 3- Arbres et règles de grammaire 4- Processus d’analyse 5- Types d’analyse 6- Fonctionnement de l'analyseur 7- Conclusion

1-introduction
Lorsque on désire analyser une phrase a l’aide des règles explicites, il est alors nécessaire substituer a l’analyse intuitive d’un programme d’analyse explicite, c'est-à-dire un algorithme dont une des taches serait de donner toutes les analyses de la phrase analysée et ensuite choisir l’analyse qui soit compatible avec le contexte.

La plupart des grammaires utilisées jusqu’à maintenant dans des programmes d’analyse syntaxique sur l’ordinateur sont basée peu ou prou sur la grammaire en constituants immédiats développée aux Etats-Unis dans les années 40 par l’école de linguistique distributionnelle. les analyses produites par ces programmes laissent à désirer, en particulier en ce qui concerne la justesse des analyses. en effet, ce type de grammaire présente un inconvénient majeur : la difficulté de l’incorporation dans la grammaire des phénomènes grammaticaux discontinus, représentés, par exemple par l’accord grammatical entre sujet et verbe.

2-Définition
2-1 Grammaire Une grammaire est un ensemble de règles permettant de dire si une phrase, c'est-à-dire une suite de mots ou lexèmes (cf. l’analyse lexicale), est correcte ou non. Les règles qui nous intéressent en informatique sont celles qui donnent une description générative du langage, en indiquant comment précisément construire de telles phrases. Par exemple une définition générative est la suivante : Une phrase se compose d’une proposition sujet, d’un verbe et d’une proposition complément. Alors qu’une définition de la forme : La subordonnée relative complète un nom ou un groupe nominal appartenant à la proposition principale n’est pas générative : elle ne nous dit pas comment effectivement construire une subordonnée relative. Une grammaire est donnée formellement sous la forme d’un quadruplet : G=<V, ∑, R, S> où :

2

• V est un vocabulaire (qu’on appelle aussi souvent alphabet), c’est à dire un ensemble fini de symboles. • ∑ ⊆ V est l’ensemble des symboles terminaux, c’est à dire les mots du langage, et V–∑ est l’ensemble des symboles non-terminaux, c'est-à-dire les catégories grammaticales. • R ⊆ (V+ × V*) est un ensemble fini de règles de réécritures. • S ∈ V–∑ est le symbole de départ (Phrase dans l’exemple du chat) . Notation : on fait commencer les catégories grammaticales d’une majuscule, les mots (terminaux) sont écrits en minuscules, les lettre grecques α β δ etc. représentent des suites de symboles (terminaux ou non-terminaux). Le mot vide s’écrit ε (comme pour les expressions régulières).

2-2 Arbre d’analyse L'analyse d’un arbre admet en entrée un flot d'unités lexicales constitué de couples (code, indice) ou de singletons (code). Ce sont des chaînes w composées d'éléments du vocabulaire terminal w appartient a VT. Ces chaînes vont être analysées à l'aide d'une grammaire G = (VN, VT, P, S). Une chaîne w est dite analysée, si on a trouvé pour w un arbre de dérivation (éventuellement tous). Le résultat de l'analyse syntaxique est un arbre syntaxique (appelé aussi arbre de dérivation). Soit G = (VN , VT , P, S) et w une chaîne dérivable à partir de S. On suppose que les règles de Production de P sont numérotées de 1 à p. Nous allons donner deux définitions et les illustrer sur un même exemple.

3- Arbres et règles de grammaire
La structure d’une phrase est généralement récursive : par exemple, une phrase contient un groupe nominal et un groupe verbal, ce dernier étant composé lui-même d’un groupe nominal. De plus, un groupe nominal peut lui-même contenir des groupes nominaux sous la forme de subordonnées relatives. L’expression de la structure d’une phrase s’exprime sous la forme d’un arbre, que l’on appelle arbre syntaxique (ou arbre de dérivation) d’une phrase. Par exemple, la phrase :

le chat qui est sur la commode regarde la souris
peut être représentée par l’arbre suivant :

2

P h ra s e

G N

G V

A r tic le

N om

S u b o rd .

V e rb e

G N

Le

chat

re g a rd e

A r tic le

N om

P ro n . r e la t if

G N

la

s o u r is

qui

V e rb e

G N p ré p .

est

P ré p .

G N

sur

A r tic le

Nom

la

com m ode

Les feuilles de l’arbre correspondent aux mots de la phrase, et les nœuds non-terminaux aux catégories grammaticales. Les règles de grammaire peuvent être données sous la forme de règles de réécritures (qu’on appelle aussi parfois productions) qui indiquent comment une catégorie grammaticale peut être transformée en une suite de catégories grammaticales ou de mots du vocabulaire.

4- Processus d’analyse
Il existe essentiellement deux types de processus : l’analyse descendante, dans laquelle on construit l’arbre en descendant de la racine vers les feuilles. Cette analyse correspond à un parcours descendant gauche (parce qu’on lit de gauche à droite). Il s’agit de deviner à chaque étape quelle est la règle qui sert à engendrer le mot que l’on lit. Les grammaires GEA et GEA1 ne peuvent pas être appliquées, car on ne sait pas à chaque moment quelle règle appliquer. Cette analyse effectue un parcours préfix de l’arbre.
1.

2

2. l’analyse ascendante construit l’arbre syntaxique en montant des feuilles vers la racine. Elle correspond au parcours inverse (puisqu’on monte) du parcours descendant droit. Dans ce type d’analyse, on essaye d’appliquer le membre droit d’une règle et à le remplacer par le non-terminal gauche correspondant. L’opération est donc inverse de celle la dérivation. La principale difficulté consiste à trouver le bon membre droit à appliquer. Elle est à la fois plus puissante mais aussi plus complexe à mettre en œuvre que l’analyse descendante (sans retour arrière). Cette analyse effectue un parcours post fixé de l’arbre.

5- Types d’analyse
5.1 Analyse gauche d'un syntagme : (analyse de haut en bas) C'est une séquence de dérivations gauches à partir de S.

La séquence (1, 1, 2, 4, 4) suffit pour déterminer l'arbre de dérivation (arbre syntaxique). 5.2 Analyse droite d'un syntagme : (analyse de bas en haut) C'est une séquence de numéros de production telle que la séquence inverse soit une dérivation droite de w. La séquence 2, 4, 1, 4, 1 suffit pour déterminer l'arbre de dérivation.

6- Fonctionnement de l'analyseur
Il s'agit d'appliquer ce que nous avons vu à des analyseurs fonctionnant de manière tabulaire, c'est-à-dire sans utiliser la récursivité du langage d'implémentation de l'analyseur syntaxique. Un analyseur prédictif se compose d'une pile (pour contenir les symboles en cours) et d'une table qui contient les relations entre terminaux courants, symboles terminaux en entrée et règles à appliquer.

2

T a b le d 'a n a l y s e (a u t o m a t e )

m ots lu s

A n a ly seu r sy n ta x iq u e

P ile

On suppose que l'analyseur lexical retourne le symbole '$' lorsque tous les caractères ont été lus (c'est le symbole de fin de fichier "réifié" comme un mot). Mettre le symbole de démarrage sur la pile (appelons le '$' pour simplifier).

Tant que la pile n'est pas vide faire { soit X le sommet de la pile et a la valeur du symbole d'entrée. Si X est un symbole terminal (ou le symbole de démarrage) si X == a alors pop X et readToken() sinon erreur sinon // X est un symbole non-terminal si TableAnalyse[X,a]== X → Y1 ... Yk alors pop X push Yk, Yk-1, ... Y1 // Y1 doit être sur le dessus sinon erreur }

7- Conclusion
Un programme qui utilise une grammaire en chaine se révèle être un outil puissant pour l’analyse des phrases d’une langue naturelle. En raison de la structure de cette grammaire, l’insertion de contraintes de natures diverses entre éléments des chaînes et non seulement commode mais aussi pratique. 2

Sign up to vote on this title
UsefulNot useful