Cours 8 Analyse syntaxique - descendante - ascendante - par programmation dynamique.

Slides:



Advertisements
Lignende præsentationer
Les verbes en -ER Que constatez-vous ?
Advertisements

Mundos lección 19 El piso nuevo. Comprar un piso Conchita har købt en ny lejlighed. Den har kostet hende seks millioner pesetas. Hun har betalt en million,
1.La Grammaire For at se en oversigt over alle de grammatiske emner højreklikkes på musen og vælges Gå til dias Eksemplerne er taget fra Carte Blanche.
Information om tysk/fransk
Datid Den franske datid er kompliceret p.g.a., at der er hele 3 datider: L’imparfait Le passé composé Le passé simple Forskellene mellem l’imparfait på.
VIDENSKAB Et videnskabeligt arbejde er ikke videnskab før det er publiceret! Hasenkam’s I. Tese.
Forførende webkommunikation ITU, 7. marts 08 Lars Ylander
Adrián de Santiago de Compostela
Forslag til AT-projekter med fransk
1.Marcel Pagnol: L’eau des collines
Nægtelser i det franske sprog
1- Utilisation 2- Formation 3- Tidsangivelser
1. Moussa Lô in ”Porte Paroles” Hvorfor har denne nat været super? fordi de har fanget mange fisk Hvor sender de størstedelen af de store fisk hen? De.
L’enterrement de ma mère
1.Annie Saumont: Les Loukoums
1.Krzysztof Kieslowski: Bleu, 1993
1. Tekst De første 14 sider af No Limits læses på ”normal vis” – evt. ud fra Arbejdshæfte til No Limits, (Kim Boje, Liljeforlaget 2001).
I believe in Drama!. Hvad er PhyEmoC? Action!  Dynamik og god stemning fanger elevernes opmærksomhed  Fremme spontanitet og kreativitet  Fjerne elevens.
Koncernsprog og forventninger til høflighed i s
Afrika 50 år Velkommen Fra VDV (Venskabsforeningen Danmark – Vestafrika)
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
Øvelser i spansk annoncer. Qué Leer betyder Hvad skal man læse. Prøv om du kan tyde annoncen. Giv så mange oplysninger, som du kan.
  la France Février Estelle Le Bonnec-
L’Histoire de la Cuisine Française
Drengeklubkonference 4. maj En vej ud af velfærdskrisen? eller hvorfor drengeklubberne ligner en rigtig god idé… Lars Jannick Johansen,
Hvorfor formentlig ja tak til gruppeeksamen i sprogfag?
Mail på tablet og pc ligger på Kone´s server og kan hentes på adressen
1- Brug 2- Dannelse 3- Tidsangivelser
SQL Jesper Tørresø DAB1 E oktober Punkter for i dag. SQL baggrund. Relationel algebra. Brug af VS2005.
Første gæring Champagnehusene Krug og Bollinger de eneste som udelukkende har første gæring på træfade Alle andre gære på ståltanke med temperaturstyring.
SQL Jesper Tørresø DAB1 E September Punkter for i dag. SQL baggrund. Relationel algebra. SQL koncept –Vises ved brug af VS2008.
Le passé composé Perfektum 1.
Les aliments Qu´est-ce que tu manges pour être en forme?
Avoir (at have) J’ai jeg har Tu as du har Il /Elle a han/hun har
Raza, botas y nacionalismo Mario Vargas Llosa El País, 15 de enero de
Positionstalsystemer Decimale og binære tal
¡Nos encantan los libros! Vi elsker bøger! Jardín infantil Junji, Valparaíso, enero 2011.
Bedømmelse af de nye prøver Indledning Opgavernes karakter Vægtning Tilfældighed Fri sproglig produktion Karakter skala Delprøve 2.
1 ▪ En familie fødes 2016.
Database Some walk through lv/ Figures & some text from: © Pearson Education Limited 1995,
Regulær udtryk Lad T være det terminale alfabet. og T* angive et sæt af strenge over T ex: T={a,b,c} så er: aaa, bab,bbbbbbaaaa er indeholdt i T* Et sporg.
- What is the name of your provincial (territorial) premier? - Which party won the most seats in the general election - What level of government has primary.
Figur 7.1 Hans Reitzels Forlag.
Figur 9.1 Hans Reitzels Forlag.
Buy Doxycycline Online Us
Rasmus Rask: Hvad var det han grundlagde?
¿Te puedes presentar, por favor?
Une glace, s’il vous plaît !
I Les angles orientés. 1°) Définition et notation :
Figur 2.1 Hans Reitzels Forlag.
Algoritmer og Datastrukturer 2
Figur 7.1 Hans Reitzels Forlag.
Stammefællesskaber og arkæologiske rekonstruktioner
Exercices et Correction
Joken der bringer dig held og lykke!
Hvor du sætter din fod Tekst: Jens Sejer Andersen 2001
Hvordan forbereder vi vores elever til mundtlig eksamen?
Joken, der bringer dig held!
ECML Kontaktpunkt Danmark
Los toros - ¿cultura o maltrato?
Lille Messias En stjerne på himlen 2. Maria skal føde
Joanna Ta´ mig med til dit drømmeland, der hvor man kan drømme,
Thesis Critique Københavns Universitet er én institution – men det er langt fra en ensartet institution. De mange forskningsområder og forskellige uddannelser.
Nouveau statuts ASLIC ASLIC’s nye vedtægter
Lidt om: SVAR TIL ÅBNER Åbners 2. melding
Algoritmer og Datastrukturer 2
De ansatte fra kontoret
Algoritmer og Datastrukturer Grådige Algoritmer [CLRS ]
Epigenetic Regulation of IL-8 and β-Defensin Genes in Human Keratinocytes in Response to Malassezia furfur  Tiziana Angrisano, Raffaela Pero, Iole Paoletti,
Præsentationens transcript:

Cours 8 Analyse syntaxique - descendante - ascendante - par programmation dynamique

Analyse syntaxique Parsing Entrées : une phrase étiquetée et une grammaire algébrique Sorties : le ou les arbres de dérivation de la phrase Algorithmes Descendants Ascendants Programmation dynamique Cascade de transducteurs

Exemple de grammaire algébrique P --> GN P --> GN GN GN --> Det N GN --> Npr Det --> Det --> tous les Det --> toutes les N --> Npr --> Luc Npr --> Anne

Analyse syntaxique descendante P GN P P GN DetN P GN DetN Les orchestres aiment cette mélodie

Analyse descendante P GN DetN P GN DetN P GN DetN P GN DetN exploration arborescente : on essaye autre chose

Analyse descendante P GN P GN GN P GN P Npr etc.

Arbre produit P GN GN DetN N

Analyse descendante phrase.desc(arbre, feuilleCourante, tokenCourant) : pour chaque feuille1 à partir de feuilleCourante symbole = feuille1.étiquette si symbole est terminal si symbole est compatible avec token token = phrase.suivant(token) sinon détruire arbre ; sortir de la fonction sinon si symbole est une variable pour chaque règle dont le membre gauche est symbole copieArbre = arbre.copier() feuille2 = équivalent de feuille1 dans copieArbre copieArbre.ajouter(règle, feuille2) feuille3 = copieArbre.premierFils(feuille2) phrase.desc(copieArbre, feuille3, token) sortir de la fonction arbre.écrire()

Exemple (1/8) L'orchestre aime cette mélodie desc(P, P, L') desc(P(GN disparaître), GN, L') desc(P(GN(Det N) disparaître), Det, L') desc(P(GN(Det(le) N) disparaître), le, L') desc(P(GN(Det(le) N(mélodie)) disparaître), mélodie, orchestre) desc(P(GN(Det(le) N(corruption)) disparaître), corruption, orchestre) desc(P(GN(Det(le) N(orchestre)) disparaître), orchestre, orchestre) desc(P(GN(Det(le) N(orchestre)) disparaître), disparaître, aime) desc(P(GN(Det(le) N(empire)) disparaître), empire, orchestre)

Exemple (2/8) desc(P(GN(Det(ce) N) disparaître), ce, L') desc(P(GN(Det(un) N) disparaître), un, L')... desc(P(GN(Npr) disparaître), Npr, L')

Exemple (3/8) desc(P(GN empirer), GN, L') desc(P(GN(Det N) empirer), Det, L') desc(P(GN(Det(le) N) empirer), le, L') desc(P(GN(Det(le) N(mélodie)) empirer), mélodie, orchestre) desc(P(GN(Det(le) N(corruption)) empirer), corruption, orchestre) desc(P(GN(Det(le) N(orchestre)) empirer), orchestre, orchestre) desc(P(GN(Det(le) N(orchestre)) empirer), empirer, aime) desc(P(GN(Det(le) N(empire)) empirer), empire, orchestre)

Exemple (4/8) desc(P(GN(Det(ce) N) empirer), ce, L') desc(P(GN(Det(un) N) empirer), un, L')... desc(P(GN(Npr) empirer), Npr, L')

Exemple (5/8) desc(P(GN ochestrer GN), GN, L') desc(P(GN(Det N) orchestrer GN), Det, L') desc(P(GN(Det(le) N) orchestrer GN), le, L') desc(P(GN(Det(le) N(mélodie)) orchestrer GN), mélodie, orchestre)... desc(P(GN(Det(ce) N) orchestrer GN), ce, L') desc(P(GN(Det(un) N) orchestrer GN), un, L')... desc(P(GN(Npr) orchestrer GN), Npr, L')

Exemple (6/8) desc(P(GN aimer GN), GN, L') desc(P(GN(Det N) aimer GN), Det, L') desc(P(GN(Det(le) N) aimer GN), le, L') desc(P(GN(Det(le) N(mélodie)) aimer GN), mélodie, orchestre) desc(P(GN(Det(le) N(corruption)) aimer GN), corruption, orchestre) desc(P(GN(Det(le) N(orchestre)) aimer GN), orchestre, orchestre) desc(P(GN(Det(le) N(orchestre)) aimer GN), aimer, aime) desc(P(GN(Det(le) N(orchestre)) aimer GN(Det N)), Det, cette)

Exemple (7/8) desc(P(GN(Det(le) N(orchestre)) aimer GN(Det N)), Det, cette) desc(P(GN(Det(le) N(orchestre)) aimer GN(Det(le) N)), le, cette) desc(P(GN(Det(le) N(orchestre)) aimer GN(Det(ce) N)), ce, cette) desc(P(GN(Det(le) N(orchestre)) aimer GN(Det(ce) N(mélodie))), mélodie, mélodie) desc(P(GN(Det(le) N(orchestre)) aimer GN(Det(ce) N(corruption))), corruption, mélodie)...

Exemple (8/8) desc(P(GN(Det(un) N(orchestre)) aimer GN(Det(un) N)), un, cette)... desc(P(GN(Det(le) N(orchestre)) aimer GN(Npr)), Det, cette) desc(P(GN(Det(le) N(empire)) aimer GN), empire, orchestre) desc(P(GN(Det(ce) N) aimer GN), ce, L') desc(P(GN(Det(un) N) aimer GN), un, L')... desc(P(GN(Npr) aimer GN), Npr, L')

Inconvénients On utilise peu le texte Avec Les orchestres aiment cette mélodie, les 10 premiers arbres contiennent disparaître, qui ne figure pas dans la phrase On construit plusieurs fois les mêmes sous-arbres Le sous-arbre pour Les orchestres est construit 4 fois et détruit 3 fois Boucle en cas de récursivité gauche Une règle comme GN --> GN Adj met l'algorithme dans une boucle infinie

Analyse syntaxique ascendante Les orchestres aiment cette mélodie Det N

Analyse ascendante (itération 1) N Det Det Det N

Analyse ascendante (itération 2) DetN Det NDet DetN

Analyse ascendante (itération 2) DetN NN Det Det N

Analyse ascendante (itération 2) DetN

Analyse ascendante (itération 3) DetN DetN GN

Analyse ascendante (itération 3) NDetN DetNN DetN

Analyse ascendante (itération 3) Det N DetN GN

Analyse ascendante (itération 4) DetN DetN GN Det

Analyse ascendante (itération 4) DetN DetN GN N N

Analyse ascendante (itération 4) DetN N DetN GN Det

Analyse ascendante (itération 5) DetN N Det N GN N

Analyse ascendante (itération 6) DetN N GN

Analyse ascendante (itération 7) DetN N GN P

Algorithme (1/2) ensSeqArbres = un ensemble de séquences d'arbres vide pour chaque combinaison de terminaux compatible avec phrase ensSeqArbres.ajouterSeqArbres(combinaison) tant que ensSeqArbres n'est pas vide nouvEnsSeqArbres = un ensemble de séquences d'arbres vide pour chaque seqArbres dans ensSeqArbres seqRacines = seqArbres.seqRacines() pour chaque facteur de seqRacines pour chaque règle dont le membre droit corresp. à facteur copieSeqArbres = seqArbres.copier() copieSeqArbres.ajouter(facteur, règle) nouvEnsSeqArbres.ajouter(copieSeqArbres)

Algorithme (2/2) pour chaque seqArbres dans nouvEnsSeqArbres si seqArbres est un arbre et si sa racine est l'axiome seqArbres.écrire() nouvEnsSeqArbres.supprimer(seqArbres) ensSeqArbres = nouvEnsSeqArbres

Inconvénients On utilise peu la grammaire Avec Les orchestres aiment cette mélodie, toutes les séquences qui contiennent suivi de sont incompatibles avec la grammaire

L'algorithme d'Earley (1970) Analyse descendante Sauvegarde dans un tableau tous les résultats intermédiaires réutilisables (programmation dynamique) Tableau indicé par les tokens de la phrase Phrase :Lesorchestresaimentcettemélodie Indices : Pour chaque indice, le tableau contient un ensemble de sous-arbres correspondant à des analyses partielles On remplit le tableau de gauche à droite, sans retours en arrière On ne détruit jamais des sous-arbres déjà créés Pour construire les arbres de dérivation, on combine les sous-arbres du tableau

Les sous-arbres Un sous-arbre est représenté par - une règle pointée (le point indique jusqu'où on a analysé) - deux positions dans la phrase, correspondant : - au début de la règle - et au point jusqu'où on a analysé Exemple 1 P --> GN. GN 0-3 Det N N GN P

Les sous-arbres Exemple 2 GN --> Det N. 0-2 Exemple 3 GN -->. Det N 3-3 Si la 2 e position d'un sous-arbre est j, ce sous-arbre est rangé à l'indice j dans le tableau Exemple 2 : rangé à l'indice 2Exemple 3 : rangé à l'indice 3 Det N N GN P

L'algorithme On parcourt le tableau de gauche à droite Quand on est à l'indice i, on parcourt les sous-arbres et on crée de nouveaux sous-arbres à l'indice i (queue FIFO) et à l'indice i + 1 On suppose que l'axiome de la grammaire apparaît une seule fois, dans une règle P0 --> P DébutP0 -->. P 0-0 FinP0 --> P. 0-n(n = nombre de tokens dans la phrase) Règle pointée complétée : règle dont le point est à la fin

L'algorithme analyseur.table[0].enfiler(P0 -->. P, 0, 0) pour i de 0 à n pour chaque sousArbre dans table[i] si sousArbre.complétée() analyseur.compléter(sousArbre) sinon si sousArbre.prochainSymbole() est terminal analyseur.vérifier(sousArbre) sinon analyseur.prédire(sousArbre) si analyseur.table[n].contient(P0 --> P., 0, n) analyseur.construireArbres(n)

L'algorithme compléter(B --> w., j, k) : pour chaque (A --> u. B v, i, j) dans table[j] table[k].enfiler(A --> u B. v, i, k) vérifier(A --> u. t v, i, j) : si t correspond à token[j] table[j + 1].enfiler(A --> u t. v, i, j + 1) prédire(A --> u. B v, i, j) : pour chaque (B --> w) dans règles(B) table[j].enfiler(B -->. w, j, j)