Langages hors-contexte
Damien Nouvel
Origines
Plan
1. Origines
2. Définitions 3. Dérivations 4. Simplification
Origines
Langages réguliers et grammaires
§ Les langages réguliers (ou rationnels) reconnaissent
‚ Des mots issus de lexiques
‚ Des formes normales (chiffres, dates, etc.) ñ Ils sontinsuffisants pour
‚ Les formes récursives
‚ Les structures de typetanbnu
‚ La recherche de la syntaxe dans le langage naturel
‚ L’analyse de programmes
ñ La machine de Turing peut faire mieux que ça !
Origines
Historique des grammaires
§ Hiérarchie de Chomsky (1956)
‚ Analyse du langagenaturel (morphologie, syntaxe)
‚ Grammaire formelles
‚ Type 0 : grammaires générales (machine de Turing)
‚ Type 1 : grammaires contextuelles (automates lin. bornés)
‚ Type 2 : grammaireshors-contexte (automates à pile)
‚ Type 3 : grammairesrégulières (automates à états finis)
§ Langages de programmation artificiels (compilation)
‚ Compilateurs mot-à-mot (assembleur)
‚ Expressions mathématiques :arbres d’analyse
‚ Compilateurs modernes
‚ Analyselexicale(scanner)
‚ Analysesyntaxique(parser)
Définitions
Plan
1. Origines 2. Définitions 3. Dérivations 4. Simplification
Définitions
Arbre d’expression
§ Analyse de l’expression mathématique 1
2 + 3˚? 9
‚ Priorité des opérateurs :(1
2 + (3˚? 9))
‚ Arbre d’expression : +
˜
1 2
˚
3 ?
9
Définitions
Backus-Naur Form
§ Langage de programmation Algol 1960 (J. Backus et P. Naur)
§ Règles de description du langage
‚ Pour la programmation
<ifstruct> ::= "if" "(" <test> ")" "{" <block> "}"
<test> ::= <var> "==" <num> | <var> "&&" <var> | …
<block> ::= <inst> | <inst> <block>
ñ Vérificationde la syntaxe des programmes ñ Récursivitédans les règles
‚ Pour la linguistique
<E> ::= <GN> <GV>
<GN> ::= <DET> <NC> | <DET> <ADJ> <NC>
<GV> ::= "marche" | "dort"
<DET> ::= "le"
<NC> ::= "chien" | "chat"
Définitions
Définition des grammaires hors-contexte
ñ Reconnaissance / générationde langages
§ QuadrupletG= (T,N,R,S)
‚ T: symboles terminaux
ñ Lesmotspossibles des énoncés
‚ N: symboles non-terminaux
ñ Groupes de mots intéressants (GN, GV, etc.)
‚ RĂNˆ(NYT)˚ : règles
ñ Déterminent la composition des groupes de mots ñ Notations
‚ Une règle s’écritAÑαavecAPNetαP(NYT)˚
‚ Des règlesAÑαetAÑβ s’écriventAÑα|β
‚ SPN: axiome (symbole de départ)
Définitions
Exemple
§ Expressions mathématiques
‚ N=tS,Eu etT=t+,˚,˜,?,(,),1,2,3...u
‚ Règles : SÑE EÑE+E EÑE˚E EÑE˜E EÑ(E) EÑ?
E EÑ1|2|3. . .
§ Unedérivation possible :
SÑEÑE+EÑE˜E+E¨ ¨ ¨ Ñ 1˜2 + 3˚? 9
Définitions
Exercices
§ Définissez des grammaires qui reconnaissent
‚ Un code postal
‚ Le langage des dates au formatjj/mm/aaaa
‚ Une plaque d’immatriculation française
‚ Un nombre entier naturel (positif)
‚ Un nombre réel
‚ Le langage régulierab˚cd˚
‚ Le langagetancn,ną0u
‚ Les palindrômes
‚ Une expression de parenthèses() et crochets []
‚ Le langagetanbcmd,ną0,měnu
Dérivations
Plan
1. Origines
2. Définitions 3. Dérivations 4. Simplification
Dérivations
Dérivation
§ Opérations qui génèrentle langage pour une grammaire
§ Un mot αP(NYT)˚ sedérive en un mot β P(NYT)˚ si
‚ α se décompose enα1Aα2 avec APN
‚ β se décompose en α1γα2 avecγ P(NYT)˚
‚ AÑγ PR (c’est une règle)
§ Exemple :E+E˜EÑE+E˚E˜E
‚ α1 =E+
‚ α2 =˜E
‚ A=E
‚ γ =E˚E
‚ EÑE˚EPR
Dérivations
Suite de dérivations
§ Par transitivité
‚ Chaîne de dérivationsαÑβ¨ ¨ ¨ Ñγ =αÝÑ˚ γ
‚ Fermeture transitive, clôture (cf étoile de Kleene)
‚ Siγ P(NYT)˚ alorsγ est uneproto-phrase de G
§ Ordre des dérivations
‚ Possibilité d’analyses pour1 + 2 + 3
‚ Dérivation gauche : réécrit le non-terminal le plus à gauche EÑE+EÑ1 +EÑ1 +E+EÑ1 + 2 +EÑ1 + 2 + 3
‚ Dérivation droite : réécrit le non-terminal le plus à droite EÑE+EÑE+ 3ÑE+E+ 3ÑE+ 2 + 3Ñ1 + 2 + 3 ñ Dérivations différentes …même résultat ?
ñ Pas toujours (par ex. associativité, priorité des opérateurs)
Dérivations
Langage généré
§ Soit Gune grammaire, alors le langage généré par G est L(G) =tmPT˚|SÑÝ˚ mu
ñ Sous-ensemble de T˚ ñ Pas nécessairement fini
Dérivations
Arbre de dérivation
§ Représentation graphique de la dérivation
‚ Racine: symbole initial =S
‚ Nœud: symbole non-terminal PN
‚ Feuille: symbole terminal PT
‚ Relationparent-enfants : dérivation (règle) ñ Structure de l’analyse
§ Dérivations (et analyses) de1 + 2˚3
E E
E 1
+ E
2
˚ E
3
E E
1
+ E
E 2
˚ E
3
Simplification
Plan
1. Origines
2. Définitions 3. Dérivations 4. Simplification
Simplification
Simplifier une grammaire
ñ Supprimer les éléments inutilesde la grammaire
‚ Symbolesimproductifs
‚ Aest improductif s’il n’y a pas demPT˚ tel que AÝÑ˚ m
‚ Symbolesinaccessibles
‚ Aest inaccessible s’il n’y a pas deαetβ tels queSÝÑ˚ αAβ
‚ ϵ-productions
‚ Uneϵ-production est une dérivation telle queAÝÑ˚ ϵ
‚ Production simple
‚ AÑBest une production simple si APNetBPN
ñ Pour toute grammaire, il existe une grammaire équivalente sans symboles improductifs ni inaccessibles, sans
ϵ-productions ni productions simples
Simplification
Élimination des symboles improductifs
§ Calcul des symboles productifs
‚ SoitP0 =Heti= 1
‚ SoitP1 =tAPN,DαPT˚,AÑαPRu
‚ Tant quePi ‰Pi´1
‚ Pi+1=PiY tAPN,DαP(TYPi)˚,AÑαPRu
‚ iÐi+ 1
ñ Les symboles de NzP sont improductifs
ñ Enlever ces symboles et les règles dans lesquels ils figurent
Simplification
Élimination des symboles inaccessibles
§ Calcul des symboles accessibles
‚ SoitC0 =H,C1 =tSueti= 1
‚ Tant queCi‰Ci´1
‚ Ci+1=CiY tAPN,Dα, βP(NYT)˚,XPCi,XÑαAβ PRu
ñ Les symboles de NzC sont inaccessibles
ñ Enlever ces symboles et les règles dans lesquels ils figurent
Simplification
Élimination des ϵ-productions
§ Calcul des symboles annulables
‚ SoitU0 =Het i= 1
‚ SoitU1 =tAPN,AÑϵPRu
‚ Tant quePi ‰Pi´1
‚ Ui+1 =UiY tAPN,DαP(Ui)˚,AÑαPRu
‚ iÐi+ 1
ñ Les symboles de Usont annulables
§ Modification de la grammaire
‚ Remplacer les règlesAÑαXβ où XPUparAÑαXβ|αβ (avec combinaisons possibles deX dans les règles)
‚ Supprimer toutes les règlesAÑϵ(sauf pourS)
‚ Supprimer toutes les règlesAÑA
Simplification
Équivalences et productions simples
§ Productions simples, dérivations et classes d’équivalences
‚ Production simple : toute règleAÑBavec BPN
‚ Soit la relation ětelle que AěBsiAÝÑ˚ B
‚ Soit la relation «telle que A«BsiAěBetBěA
‚ Classes d’équivalences
‚ SiA«B, tout ce qui est dérivé deApeut l’être deB
‚ Relation réflexive, symétrique et transitive
‚ L’ensemble des classes est unepartitiondeN
§ Modification de la grammaire
‚ On conserve les productions non-simples
‚ Pour chaque classe d’équivalence
ñ Choisir un symbole qui remplace tous les autres ñ Pour chaque dérivationAÝÑ˚ B
Simplification
Exemple : simplification de grammaire
§ Grammaire 1. SÑT|U 2. UÑaYb|V 3. VÑW 4. XÑW|a 5. YÑZ 6. ZÑc|ϵ
§ Étapes
‚ Symboles productifs :
‚ Symboles accessibles :
‚ ϵ-productions :
‚ Productions simples :
Simplification
Exemple : simplification de grammaire
§ Grammaire 1. SÑT|U 2. UÑaYb|V 3. VÑW 4. XÑW|a 5. YÑZ 6. ZÑc|ϵ
§ Étapes
‚ Symboles productifs :tX,Z,Y,U,Su ñretirerT,V etW
‚ Symboles accessibles :
‚ ϵ-productions :
‚ Productions simples :
Simplification
Exemple : simplification de grammaire
§ Grammaire 1. SÑU 2. UÑaYb 3.
4. XÑa 5. YÑZ 6. ZÑc|ϵ
§ Étapes
‚ Symboles productifs :tX,Z,Y,U,Su ñretirerT,V etW
‚ Symboles accessibles :
‚ ϵ-productions :
‚ Productions simples :
Simplification
Exemple : simplification de grammaire
§ Grammaire 1. SÑU 2. UÑaYb 3.
4. XÑa 5. YÑZ 6. ZÑc|ϵ
§ Étapes
‚ Symboles productifs :tX,Z,Y,U,Su ñretirerT,V etW
‚ Symboles accessibles :tS,U,Y,Zu ñretirer X
‚ ϵ-productions :
‚ Productions simples :
Simplification
Exemple : simplification de grammaire
§ Grammaire 1. SÑU 2. UÑaYb 3.
4.
5. YÑZ 6. ZÑc|ϵ
§ Étapes
‚ Symboles productifs :tX,Z,Y,U,Su ñretirerT,V etW
‚ Symboles accessibles :tS,U,Y,Zu ñretirer X
‚ ϵ-productions :
‚ Productions simples :
Simplification
Exemple : simplification de grammaire
§ Grammaire 1. SÑU 2. UÑaYb 3.
4.
5. YÑZ 6. ZÑc|ϵ
§ Étapes
‚ Symboles productifs :tX,Z,Y,U,Su ñretirerT,V etW
‚ Symboles accessibles :tS,U,Y,Zu ñretirer X
‚ ϵ-productions :tZ,Yu ñ modifier 6, 2
‚ Productions simples :
Simplification
Exemple : simplification de grammaire
§ Grammaire 1. SÑU 2. UÑaYb|ab 3.
4.
5. YÑZ 6. ZÑc
§ Étapes
‚ Symboles productifs :tX,Z,Y,U,Su ñretirerT,V etW
‚ Symboles accessibles :tS,U,Y,Zu ñretirer X
‚ ϵ-productions :tZ,Yu ñ modifier 6, 2
‚ Productions simples :
Simplification
Exemple : simplification de grammaire
§ Grammaire 1. SÑU 2. UÑaYb|ab 3.
4.
5. YÑZ 6. ZÑc
§ Étapes
‚ Symboles productifs :tX,Z,Y,U,Su ñretirerT,V etW
‚ Symboles accessibles :tS,U,Y,Zu ñretirer X
‚ ϵ-productions :tZ,Yu ñ modifier 6, 2
‚ Productions simples :SÑU etYÑZñ modifier 1, 2, 5, 6
Simplification
Exemple : simplification de grammaire
§ Grammaire 1. SÑaYb|ab 2.
3.
4.
5. YÑc 6.
§ Étapes
‚ Symboles productifs :tX,Z,Y,U,Su ñretirerT,V etW
‚ Symboles accessibles :tS,U,Y,Zu ñretirer X
‚ ϵ-productions :tZ,Yu ñ modifier 6, 2
‚ Productions simples :SÑU etYÑZñ modifier 1, 2, 5, 6
Simplification
Exercice : simplification de grammaire
§ Réduire les grammaires suivantes
‚ G1
‚ SÑbSc|bTc|a|ϵ
‚ TÑU
‚ UÑbUc|T
‚ VÑU|bc
‚ G2
‚ SÑUXT
‚ TÑb
‚ UÑaV|aXTXb
‚ VÑcV|aWT
‚ WÑV
‚ XÑab|ϵ
‚ YÑcZ
Simplification
Formes normales
§ Forme normale deChomsky : toutes règles de la forme
‚ AÑBC avec A,B,CPN
‚ AÑa avec aPT
§ Forme normale deGreibach : toutes règles de la forme
‚ AÑaα avecaPT, αPN˚
ñ Pour tout langage hors-contexte il existe une grammaire en forme normale de Chomsky et une grammaire en forme normale de Greibach qui le génèrent
Simplification
Mise sous forme normale de Chomsky
§ Étapes
‚ Pour chaque terminal a, crééer
‚ Un symboleZa
‚ Une règleZaÑa
‚ Pour chaque règleAÑα où|α| ą1
‚ Tout terminaladeαest remplacé parZa
‚ Pour chaque règleAÑα où|α| ą2
‚ On décompose :α=A1,A2. . .An
‚ On crée les non-terminauxY1,Y2. . .Yn´2
‚ On remplaceAÑαpar AÑA1Y1
Y1ÑA2Y2
. . .
Yn´2ÑAn´1An
‚ Suppression desϵ-productions et productions simples
Simplification
Récursivité
§ Symbole récursif: AÑÝ˚ αAβ
‚ Siα=ϵ,Aest récursif àgauche
‚ Siβ=ϵ,A est récursif àdroite
‚ SiÝÑ˚ ne comporte qu’une dérivation : récursivité directe
‚ SiÝÑ˚ comporte plusieurs dérivations : récursivité indirecte ñ Une grammaire récursive comporte un symbole récursif
§ Exemple : grammaire indirectement récursive à gauche
‚ AÑB
‚ BÑCD
‚ CÑAE
§ Suppression de la récursivité directe à gauche
‚ Remplacer toute règleAÑAa|b
Simplification
Ambiguïté et équivalence
§ Ambiguïté de grammaires
‚ Grammaire : un mot est généré par deux arbres de dérivation ñ Exemple : rattachement prépositionnel
‚ SÑGN V GN PRP GN
‚ SÑGN V GN
‚ GNÑGN PRP GN
ñ Il voit le chat de sa voisine(le chat de qui ?) ñ Il voit le chat de sa fenêtre(d’où voit-il ?)
‚ Ambiguïté sémantique (plutôt que morpho-syntaxique)
§ Équivalence de grammaires
‚ Génèrent le même langage
‚ Donnent les même arbres d’analyse (équivalence forte)
Simplification
Autre formalismes de grammaires
§ Insuffisances des grammaires hors-contexte
‚ Accords (flexions / morphologie)
‚ Anaphores
‚ Portée de la coordination
‚ Méthodes statistiques
ñ Non traitées par les grammaires hors-contexte
§ Autres formalismes
‚ PCFG (Probabilistic context-free grammar)
‚ LFG (Lexical Functional Grammar)
‚ HPSG (Head-driven Phrase Structure Grammar)
‚ TAG (Tree Adjoining Grammar)
‚ CCG (Combinatory Categorial Grammar)
Simplification
Exercices
§ Mettre sous forme normale de Chomsky
‚ SÑAbA
‚ AÑAaA|ca
§ Soit l’ensemble de symboles non-terminaux : N=tGN,GV,DET,PREP,NOM,ADJ,ADVu
‚ Définissez les règles d’une grammaire qui génère des phrases
‚ Ajoutez des éléments terminaux et leurs règles
‚ Donnez les arbres de dérivation pour les phrases suivantes
‚ le chat mange
‚ le chat mange la souris
‚ le chat regarde le bout de fromage
‚ Donnez quelques phrases générées par la grammaire
‚ Quel problème rencontre-t-on pour les genres (m/f) ?
Simplification
TP : SWI-Prolog
:- use_rendering(svgtree, [list(false)]).
% Règles non terminales s(s(X,Y)) --> gn(X), gv(Y).
gn(X) --> np(X).
gn(gn(X,Y)) --> det(X), nc(Y).
gv(gv(X,Y)) --> v(X), gn(Y).
% Règles terminales np(np(jean)) --> [jean].
det(det(de)) --> [de].
nc(nc(philosophie)) --> [philosophie].
nc(nc(politique)) --> [politique].
v(v(discute)) --> [discute].