Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parBénézet Poirier Modifié depuis plus de 10 années
1
Eric Laporte Institut Gaspard-Monge Université de Marne-la-Vallée France http://www-igm.univ-mlv.fr/~laporte/ Syntaxe et analyse syntaxique
2
Objectifs Constituants syntaxiques Ambiguïté Chunks Grammaires algébriques Réseaux de transitions récursifs Application glissante Transducteurs Linéarisation Accord grammatical Unification Syntaxe et analyse syntaxique
3
Objectifs de la syntaxe Traduction The guy of room 5 misses the girl of room 3 La fille de la chambre 3 manque au type de la chambre 5 Délimiter pour déplacer Mots ambigus [1939 :] [l'Allemagne] [annexe] [la Pologne] [Veuillez me faire parvenir] [l'annexe technique] [du contrat] Délimiter pour lever l'ambiguïté
4
Syntaxe Je vais fermer l'autre porte *autre fermer je l'porte vais Comment les mots se combinent-ils en phrases qui ont un sens ? Dans quel ordre ? Quelles combinaisons sont possibles ?
5
Constituants syntaxiques Certaines suites de mots dans une phrase forment des constituants Exemple 1 : groupes nominaux vingt autres journaux l'Inde l'offre une seconde section d'équilibristes l'un des meilleurs bâtiments à voile de la compagnie Exemple de propriété commune à ces groupes Peuvent être suivis d'un verbe dans une phrase
6
Constituants syntaxiques vingt autres journaux titrent... l'Inde est... l'offre parvient à... une seconde section d'équilibristes arriva l'un des meilleurs bâtiments à voile de la compagnie peut... ce n'est pas vrai de n'importe quelle séquence de mots *journaux titrent... * l'parvient à... * seconde d'équilibristes arriva On doit donc pouvoir spécifier "un groupe nominal peut être suivi d'un verbe"
7
Constituants syntaxiques Exemple 2 : groupes nominaux prépositionnels depuis quelques mois Déplacement de ce groupe Depuis quelques mois la situation évolue La situation depuis quelques mois évolue La situation évolue depuis quelques mois ce n'est pas vrai de n'importe quelle séquence de mots * Depuis mois la situation quelques évolue * La depuis situation quelques mois évolue * La situation mois évolue depuis quelques
8
Arbres de constituants GN Det N GAdj Adj GAdv Adv unbâtiment à voileassezréputé
9
Arbres de constituants P GN préfère GN N Det cetteLuccompagnie Notation parenthésée (P (GN Luc) préfère (GN (Det cette) (N compagnie))) (P (GN (Det Quels) (N vols)) proposent (GN (Det un) (N dîner)) ?)
10
Arbres et interprétations Les arbres permettent de représenter des ambiguïtés de la confiture à la rhubarbe congelée de la confiture à la rhubarbe congelée Ambiguïté syntaxique A chaque arbre correspond une interprétation
11
Ambiguïtés syntaxiques Luc recouvre la table de bois Le MEDEF demande depuis longtemps la suppression de cet impôt, qui pousserait les entrepreneurs à quitter la France Moules et frites à volonté : 15 Un lecteur anonyme a trouvé cette solution astucieuse Beaucoup d'ambiguïtés sont à la fois lexicales et syntaxiques On a placé la table ronde sur les revêtements naturels à 10 h lexicales : placé, table ronde syntaxiques : statut des compléments prépositionnels
12
Ambiguïtés syntaxiques et reformulation Luc recouvre la table de bois Luc recouvre la table avec du bois Luc recouvre la table qui est en bois Le MEDEF demande depuis longtemps la suppression de cet impôt, qui pousserait les entrepreneurs à quitter la France Le MEDEF... cet impôt. Cet impôt pousserait les entrepreneurs à quitter la France Le MEDEF... cet impôt. La suppression de cet impôt pousserait les entrepreneurs à quitter la France Moules et frites à volonté : 15 Un lecteur anonyme a trouvé cette solution astucieuse On a placé la table ronde sur les revêtements naturels à 10 h
13
Ambiguïté les vols de (la soirée de lundi) pour Toulouse les réponses de Luc à (plusieurs questions de Marie) GN DetN lesvolsde Prép pour Prép DetNGN lundiToulousela Npr soiréede Prép GN
14
Ambiguïté les vols de (la soirée de lundi) pour Toulouse les réponses de Luc à (plusieurs questions de Marie) GN DetN lesréponsesde Prép à DetNGN Marie Luc plusieurs Npr questionsde Prép GN Npr
15
Ambiguïté le livre de (la fille sur la photo) dans le sac le livre de la fille sur (la photo dans le sac) le livre de (la fille) sur (la photo) dans (le sac) GN DetN lelivrede Prép sur Prép DetNGN laphotodans Prép GN DetN lafille DetN lesac
16
Constituants non récursifs ou chunks Constituants qui ne contiennent pas un constituant de la même catégorie Exemple ( GN l'un des meilleurs bâtiments à voile de ( GN la compagnie)) Un GN inclus dans un autre Le petit est un chunk, le grand non ( GN ( GN l'un des meilleurs bâtiments à voile) de ( GN la compagnie)) Une suite de deux chunks Si le GN est précédé d'une préposition, on l'inclut dans le chunk
17
Constituants non récursifs ou chunks [Parmi ces passagers] [du Mongolia], [on comptait] [divers fonctionnaires civils] et [des officiers] [de tout grade] Une phrase est presque une séquence de chunks, surtout nominaux [on comptait] chunk verbal [M. Fogg] [quitta] [l'hôtel], [seul], [après avoir] [recommandé] [à son domestique] [de l'attendre] [seul] chunk adjectival [Oui] ! [oui] ! [répétait] [machinalement] [le pauvre garçon] [machinalement] chunk adverbial
18
Grammaires algébriques Context-free grammars Outil de manipulation des constituants syntaxiques Règlesindiquent la combinaison et l'ordre des éléments GN--> Det N GAdj GN--> Npr GAdj--> GAdv Adj GAdv--> GAdv Adv GAdv--> Adv LexiqueListe des mots (symboles terminaux) Liste des symboles non terminauxGN GAdj GAdv Det...
19
Grammaires algébriques Les règles peuvent comporter des mots dans le membre droit Npr--> Luc Det--> un N--> bâtiment à voile Adj--> réputé Adv--> assez GN--> Det offre de GN Membre gauche : obligatoirement un non-terminal Membre droit : séquence de symboles terminaux ou non terminaux
20
Dérivation Réécriture utilisant les règles GN--> Det N GAdj(règle) --> Det N GAdv Adj(règleGAdj--> GAdv Adj ) --> Det N Adv Adj(règleGAdv--> Adv ) --> un N Adv Adj(règle Det--> un ) --> un bâtiment à voile Adv Adj(règle N--> bâtiment à voile ) --> un bâtiment à voile assez Adj(règle Adv--> assez ) --> un bâtiment à voile assez réputé(règle Adj--> réputé ) On peut dériver un bâtiment à voile assez réputé de GN
21
Axiome Le langage formel engendré par la grammaire est l'ensemble des séquences de terminaux dérivables à partir de l'axiome Axiome un des non-terminaux Si la grammaire engendre des phrases, l'axiome correspond au symbole "phrase" Phrase grammaticale phrase engendrée par la grammaire Analyse syntaxique associer à une phrase son (ou ses) arbres de dérivation
22
Règles pour les phrases P--> GN préfère GNLuc préfère cette compagnie P--> GN quitte GN Prép GN Luc quitte Paris vers 10 h P--> GN part Prép GN Luc part après la réunion P GN préfère GN N Det cetteLuccompagnie
23
Règles pour les phrases P--> montrez-PRO GNMontrez-moi tous les vols P--> est-ce que il y a GN Prép GN ? Est-ce qu'il y a un dîner sur le vol 312 ? P--> GN proposent GN ? Quels vols proposent un dîner ? Notation parenthésée ( P ( GN ( Det Quels) ( N vols)) proposent ( GN ( Det un) ( N dîner)) ?)
24
Règles pour les groupes nominaux GN--> Det Nun arrêt GN--> Det Adj Nune petite attente GN--> Det GAdj Nla plus longue attente GN--> Det N GAdjun coût trop élevé GN--> Det de Nbeaucoup d'attente GN--> Det N Prép GNles vols pour Toulouse GN--> Det N Rel les vols qui arrivent à Toulouse avant midi GN--> Det N Prép GN Prép GN les vols de la soirée pour Toulouse
25
Règles pour la coordination GN--> GN Conj GNun arrêt et une attente P--> P Conj POn s'arrête et on attend GAdj--> GAdj Conj GAdjtentant mais dangereux etc. GN--> Det N Prép GNles vols pour Toulouse GN--> Det N Prép GN Conj Prép GN les vols pour Toulouse ou depuis Toulouse
26
Context-free grammars Définition (X, V, A 0, P) : X alphabet terminal, V alphabet des variables (V X = ø), A 0 V axiome, P ensemble fini des règles V × (V | X)*. Grammaires algébriques
27
Règles : entrepr0 salariés des taille0 entreprises entrepr0 patrons des taille0 entreprises entrepr0 salariés des entreprises entrepr0 patrons des entreprises taille0 petites taille0 moyennes taille0 grandes Grammaires algébriques
28
Dérivations Définition f g pour f, g (V | X)* ssi on a les factorisations f = uAv et g = uhv avec une règle A h P. Exemple : des taille0 entreprises des grandes entreprises Langage engendré par la grammaire cest lensemble des f X* tels que A 0 … f. Exemple : entrepr0 salariés des taille0 entreprises salariés des petites entreprises X* donc salariés des petites entreprises est engendré par la grammaire
29
Recursive transition network (RTN) Comme les graphes, mais un noeud peut appeler un autre graphe (sous-graphe) Pour appeler un sous-graphe écrire ":" et le nom du sous-graphe Par rapport à un graphe simple : on peut représenter plus de formes Les appels à des sous-graphes peuvent faire des cycles Réseaux de transitions récursifs (RTN)
30
Réseaux de transitions récursifs entrepr.grf taille.grf Etat initial : entrepr0 Transition étiquetée par un état : de entrepr3 vers entrepr4 étiquetée par taille0
31
Définition Un automate fini (X | Q, Q, q -, F, δ) : X alphabet terminal, Q ensemble des états (Q X = ø), q - état initial Q, F Q ensemble des états finaux, δ ensemble fini des transitions Q × (X | Q | ε) × Q. L'alphabet est constitué de deux parties disjointes, l'alphabet terminal et l'ensemble des états. Réseaux de transitions récursifs
32
Les RTN au format FST2 ou FST-XML Un fichier FST2 peut contenir plusieurs graphes Le RTN est l'union de ces graphes (les états de chaque graphe sont numérotés à partir de 0, mais c'est une union disjointe) Alphabet terminal X : les étiquettes qui ne sont pas des appels à des sous-graphes Etat initial q - : l'état initial du premier graphe (graphe principal) Transitions étiquetées par des états : les appels à des sous-graphes (l'état est l'état initial du sous-graphe appelé)
33
Dérivations Définition f g pour f, g (Q | X)* ssi on a les factorisations f = uqv et g = uhv avec un chemin étiqueté h allant de q à un état final. Exemple : il existe un chemin étiqueté petites et moyennes allant de taille0 à taille1, donc taille0 petites et moyennes et des taille0 entreprises des petites et moyennes entreprises Langage engendré par le réseau cest lensemble des f X* tels que q - … f. Exemple : entrepr0 salariés des taille0 entreprises salariés des petites et moyennes entreprises X* donc salariés des petites et moyennes entreprises est engendré par le réseau
34
Ces deux formalismes engendrent les mêmes langages formels Pour une grammaire (X, V, A 0, P): A chaque règle A h on fait correspondre un automate avec un unique état initial A qui na aucune transition entrante. (Deux quelconques de ces automates ne peuvent avoir en commun que leur état initial. Si une transition va dun état dun de ces automates à un état dun autre alors elle sort de létat initial commun aux deux automates.) On obtient un réseau (X | Q, Q, A 0, F, δ) en regroupant dans F les états finaux de ces automates et dans δ leurs transitions. Une dérivation A h est valable dans la grammaire ssi elle est valable dans le réseau. Equivalence entre RTN et grammaires
35
Pour un réseau (X | Q, Q, q -, F, δ) : A chaque état q on fait correspondre lautomate obtenu en prenant q comme unique état initial, puis une grammaire (X | Q, V q, A q, P q ) engendrant le même langage sur X | Q que cet automate. Les ensembles de variables V q sont disjoints de Q et deux à deux disjoints. On crée une grammaire (X, V | Q, q -, P 1 | P 2 ) où V est lunion des V q, P 1 lunion des P q, et P 2 lensemble des règles q A q.
36
Le langage engendré par la grammaire est égal à celui engendré par le réseau Si une dérivation (élémentaire) q f pour un état q Q est valable dans le réseau, alors elle est valable (en plusieurs étapes) dans la grammaire Inversement, à toute dérivation q - f de la grammaire avec f X* on peut faire correspondre une dérivation équivalente (même arbre syntaxique) constituée détapes de la forme q A q g avec g (Q | X)*, qui utilisent uniquement des règles de P q, or chacune de ces étapes correspond à une étape q g dans le réseau.
37
Ces deux formalismes engendrent les mêmes langages formels Avantages des grammaires plus simple pour les démonstrations mathématiques Avantages des RTN plus de réutilisation plus lisible pour l'auteur des ressources construction et maintenance manuelle plus faciles Equivalence entre RTN et grammaires
38
Objectif Grammaires ou RTN pour des séquences dont on connaît les limites (phrases) Il faut représenter tout ce qui peut figurer dedans, ou au moins connaître tout l'alphabet Grammaires ou RTN pour des séquences dont on ne connaît pas les limites (groupes nominaux) Applicables de n'importe où jusqu'à n'importe où Application glissante
39
Application glissante dans Unitex C'est le seul mode d'application des graphes On lance l'analyse syntaxique à chaque point du texte, ou à chaque état de l'automate acyclique L'analyse peut se terminer n'importe où aussi Résultats Les séquences reconnues peuvent se suivre, se chevaucher ou être incluses les unes dans les autres [Les participants] [sont sortis] [de la salle] [Les fichiers {annexes] au contrat} sont attachés au message [Les fichiers] {[annexes] au contrat} sont attachés au message Application glissante
40
Réduction des ambiguïtés d'inclusion avec Unitex Option "Longest matches" (par défaut) : toute séquence reconnue incluse dans une autre est éliminée des résultats [Les fichiers] {annexes au contrat} sont attachés au message Option "Shortest matches" : toute séquence reconnue en contenant une autre est éliminée des résultats [Les fichiers] [annexes] au contrat sont attachés au message Option "All matches" : toutes les séquences reconnues sont conservées dans les résultats [Les fichiers] {[annexes] au contrat} sont attachés au message Application glissante
41
Exemple 1 : les expressions qui marquent les dialogues (dit-il...) Insérer des balises et avant et après une forme reconnue Même si le contexte est nécessaire pour reconnaître les formes, on peut ne pas l'inclure dans la zone marquée Exemple 2 : les chunks Marquage des séquences reconnues
42
Un automate fini contient des séquences qui peuvent être reconnues dans un texte existant Un transducteur fini est utilisé pour engendrer une nouvelle version du texte : il contient des séquences qui seront reconnues (séquences dentrée) et dautres qui seront insérées (séquences de sortie) Transducteurs
43
Avec Unitex Les séquences de sortie sont affichées au-dessous des noeuds Pour créer un transducteur, insérer une barre (/) entre la séquence dentrée et la séquence de sortie correspondante Pour appliquer le transducteur : - dans Locate, indiquer si les séquences de sortie doivent être insérées à gauche des séquences dentrée correspondantes (mode Merge), ou si elles doivent les remplacer (mode Replace) - dans Display, indiquer le nom du fichier de sortie, sans extension Transducteurs
44
Dans un transducteur Unitex, un noeud sans barre (/) est interprété comme un noeud avec une sortie vide (/ ) Si le transducteur est appliqué en mode Replace, les parties reconnues par des noeuds sans sortie ne sont pas copiées dans le fichier de sortie Exemple : pour supprimer le balisage, reconnaître les balises et appliquer le transducteur en mode Replace Effacer avec un transducteur
45
Comme un RTN mais les noeuds peuvent avoir des sorties sauf ceux qui appellent un sous-graphe (les sorties sont spécifiées dans le sous-graphe) RTN à sorties
46
Application glissante d'un transducteur ou d'un RTN à sorties Deux sources d'ambiguïté L'application glissante Comme l'application d'un graphe ou d'un RTN : les séquences reconnues peuvent se suivre, se chevaucher ou être incluses les unes dans les autres L'ambiguïté des transducteurs Une séquence donnée peut être reconnue par plusieurs chemins du même transducteur, mais avec des sorties différentes Le résultat est une structure complexe Ambiguïté
47
Objectif Obtenir un résultat simple Choisir entre les sorties incompatibles produites par le transducteur ou le RTN à sorties Linéarisation
48
1. Supprimer certaines séquences reconnues en fonction des options "Longest matches" ou "Shortest matches" 2. En cas de chevauchement entre séquences restantes, la séquence qui se termine en premier a la priorité [Les fichiers {annexes] [au contrat} de travail] [Les fichiers annexes] [au contrat de travail] 3. Il peut rester des incompatibilités entre séquences qui se terminent au même point. Unitex en choisit une, mais le choix n'est pas spécifié. Exemple : une même séquence reconnue par deux chemins différents [XN La [N table ronde]] sur les revêtements naturels [XN La [N table] [XA ronde]] sur les revêtements naturels Linéarisation d'Unitex
49
Accord grammatical P--> GN attendLe public attend Le GN est obligatoirement au singulier : *Les spectateurs attend P--> GN attendentLes spectateurs attendent Le GN est obligatoirement au pluriel : *Le public attendent On considère les traits du GN et de attendre comme des paramètres de la règle On ajoute des équations aux règles
50
Accord grammatical P--> GN { GN.nombre =.nombre ; GN.personne =.personne ; } Le public attend Les spectateurs attendent Vous attendez Les équations peuvent être vérifiées par unification
51
Paires attribut-valeur Étiquettes lexicales viendrai [catgram="verbe" lemme="venir" temps="futur" personne="1" nombre="singulier" ] je [catgram="pronom" personne="1" nombre="singulier" ] Contraintes Je viendrai*Tu viendrai*Il viendrai *Je viendrasTu viendras*Il viendras *Je viendras*Tu viendraIl viendra token1.personne = token2.personne token1.nombre = token2.nombre
52
Paires attribut-valeur avec variables Étiquettes lexicales viendrai [catgram="verbe" lemme="venir" temps="futur" personne=personneVerbe nombre=nombreVerbe ] je [catgram="pronom" personne=personneProno m nombre=nombrePronom ] Les valeurs d'un attribut peuvent être des constantes ou des variables Équations exprimant les contraintes d'accord : token1.personneVerbe = token2.personnePronom token1.nombreVerbe = token2.nombrePronom
53
Paires attribut-valeur avec structures viendrai [catgram="verbe" lemme="venir" temps="futur" accord= [ personne=personneVerbe nombre=nombreVerbe ] ] je [catgram="pronom" accord= [ personne=personnePronom nombre=nombrePronom ] ] La valeur d'un attribut peut être un ensemble de paires attribut-valeur (récursif) token1.accord = token2.accord
54
Structures de traits Une structure de traits (feature structure) peut être : - un ensemble de paires attribut-valeur, dans les quelles chaque valeur est une structure de traits - une constante simple ("singulier") - vide (dans le cas d'une valeur inconnue) - un pointeur sur structure de traits Les pointeurs permettent à deux structures de traits d'avoir une partie commune
55
Exemple avec valeurs inconnues viendrai [catgram="verbe" lemme="venir" temps="futur" personne=(vide) nombre=(vide) ] Utilisation - quand on ne connaît pas les valeurs de la personne et du nombre - exprimer des contraintes indépendantes de ces valeurs
56
Exemple avec partie partagée viendrai [catgram="verbe" lemme="venir" temps="futur" accord= [personne="1" nombre="singulier" ] ] je [catgram="pronom" accord=(pointeur) ] Le partage entre la structure viendrai et la structure je est équivalent à l'équation token1.accord = token2.accord Pour chaque valeur d'attribut, on aura un contenu (constante ou structure ou vide) et un pointeur (éventuellement nul)
57
Structures de traits Représentation par un graphe acyclique catgram lemme temps accord contenu : "verbe" pointeur : contenu : "venir" pointeur : contenu : "futur" pointeur : personne temps contenu : "1" pointeur : contenu : "singulier" pointeur : contenu : pointeur : contenu : pointeur :
58
Structures de traits Chaque noeud du graphe est soit une constante simple, soit un ensemble de traits attribut-valeur Pour chaque valeur d'attribut, on a un contenu et un pointeur Le contenu peut être vide Le pointeur peut être nul Si le contenu n'est pas vide et le pointeur n'est pas nul, c'est le pointeur qui représente la valeur de l'attribut Si S est une structure de traits, deref(S) est le noeud du graphe acyclique trouvé dans le champ pointeur ou dans le champ contenu deref(feature-structure S) if (S.pointer is null) return S.content else return * S.pointer
59
Unification Unifier deux structures de traits s1 et s2, c'est construire une structure qui contient l'union des informations de s1 et de s2 en supposant qu'elles décrivent la même chose Comparaison d'informations [ nombre="singulier"] = [ nombre="singulier"] [ nombre="singulier"] [ nombre="pluriel"] --> échec [ nombre="singulier"] [ nombre=(vide)] = [ nombre="singulier"]
60
Exemples Combinaison d'informations [ personne="1"] [ nombre="singulier"] = [personne="1" nombre="singulier"] [ nombre="singulier"] [ (vide) ] = [ nombre="singulier"]
61
Exemple avec partie partagée dans la même structure [sujet= [catgram="pronom" accord=(pointeur) ] verbe= [catgram="verbe" lemme="venir" temps="futur" accord= [personne="1" nombre="singulier" ] ] ] Représente Je viendrai avec un sujet et un verbe
62
Exemple d'unification avec pointeurs [ sujet=[ accord=(pointeur) ] verbe=[ catgram="verbe" accord=[ personne="1" nombre="singulier" ] ] ] [ sujet=[ accord=[ personne="1" nombre="singulier" ] ] ] = [ sujet=[ accord=(pointeur) ] verbe=[ catgram="verbe" accord=[ personne="1" nombre="singulier" ] ] ]
63
Exemple d'unification avec pointeurs [ sujet=[ accord=(pointeur) ] verbe=[ catgram="verbe" accord=[ (vide) ] ] ] [ sujet=[ accord=[ personne="3" nombre="singulier" ] ] ] = [ sujet=[ accord=(pointeur) ] verbe=[ catgram="verbe" accord=[ personne="3" nombre="singulier" ] ] ]
64
Exemple d'unification sans pointeurs [ sujet=[ accord=[ nombre="singulier" ] ] verbe=[ catgram="verbe" accord=[ nombre="singulier" ] ] ] [ sujet=[ accord=[ personne="3" nombre="singulier" ] ] ] = [ sujet=[ accord=[ personne="3" nombre="singulier" ] ] verbe=[ catgram="verbe" accord=[ nombre="singulier" ] ] ]
65
Exemple d'échec d'unification [ sujet=[ accord=(pointeur) ] verbe=[ catgram="verbe" accord=[ personne="1" nombre="singulier" ] ] ] [ sujet=[ accord=[ personne="3" nombre="singulier" ] ] verbe=[ catgram="verbe" accord=[ personne="1" nombre="singulier" ] ] ] --> échec
66
Subsomption S 1 S 2 (S 1 subsume S 2 ) veut dire que S 1 est plus générale que S 2 : - pour tout attribut a de S 1, S 1 (a) S 2 (a) - pour tous chemins c et d de S 1 tels que S 1 (c)=S 1 (d), S 2 (c)=S 2 (d) Toutes les informations présentes dans S 1 sont présentes aussi dans S 2 sans contradictions [ personne="1"] [ personne="1" nombre="singulier"] [ (vide) ] [ nombre="singulier"]
67
Exemple [ sujet=[ accord=(pointeur) ] verbe=[ catgram="verbe" accord=[ (vide) ] ] ] [ sujet=[ accord=(pointeur) ] verbe=[ catgram="verbe" accord=[ personne="1" nombre="singulier" ] ] ]
68
Subsomption et unification S 1 S 2 est la structure de traits la plus générale S 3 telle que S 1 S 3 et S 2 S 3 S 1 S 2 contient toutes les informations de S 1 et de S 2
69
Algorithme d'unification Un algorithme d'unification entre S 1 et S 2 destructif (dans le cas général, il modifie S 1 et S 2 ) Après l'unification, S 1 et S 2 contiennent chacun le résultat de l'unification L'algorithme ajoute des pointeurs entre S 1 et S 2
70
nombre contenu : "singulier" pointeur : personnecontenu : "1" pointeur : nombre contenu : "singulier" pointeur : données contenu : pointeur : contenu : pointeur : contenu : pointeur : personne contenu : "1" pointeur : personne pointeur : contenu : résultat pointeur : contenu :
71
Algorithme d'unification unify(featureStructure f1, featureStructure f2) { /* renvoie soit une structure de traits soit "failure" */ f1Node = deref(f1) f2Node = deref(f2) if (f1Node is null) { f1.pointer = f2 ; return f2 ; } else if (f2Node is null) { f2.pointer = f1 ; return f1 ; } else if (f1Node == f2Node) { f1.pointer = f2 ; return f2 ; } else if (both f1Node and f2Node contain feature-value pairs) { for each feature2 in f2Node { feature1 = find or create in f1Node a feature corresponding to feature2 if (unify(feature2.value,feature1.value)=="failure") { return "failure" } } f2.pointer = f1 return f1 } else return "failure" }
72
données contenu : pointeur : personne contenu : "1" pointeur : personne pointeur : contenu : résultat pointeur : contenu : pointeur : personne contenu : "1" pointeur : personne pointeur : contenu : pointeur : contenu :
73
données contenu : "1" pointeur : contenu : résultat contenu : "1" pointeur : contenu :
74
nombre contenu : "singulier" pointeur : données contenu : pointeur : personne contenu : "1" pointeur : personne pointeur : contenu : résultat pointeur : contenu : nombre contenu : "singulier" pointeur : contenu : pointeur : personne contenu : "1" pointeur : personne pointeur : contenu : pointeur : contenu :
75
nombre contenu : "singulier" pointeur : données contenu : pointeur : personne contenu : "1" pointeur : personne pointeur : contenu : résultat pointeur : contenu : nombre contenu : "singulier" pointeur : contenu : pointeur : personne contenu : "1" pointeur : personne pointeur : contenu : pointeur : contenu : accord pointeur : contenu : accord pointeur : contenu : accord pointeur : contenu : accord pointeur : contenu :
76
Utilisation pratique viens [catgram="verbe" lemme="venir" temps="futur" accord= [ personne="1" nombre="singulier" ] ] je [catgram="pronom" accord= [ personne="1" nombre="singulier" ] ] On peut représenter une contrainte d'accord par une équation : token1.accord = token2.accord Pour voir si l'équation est vérifiée, on unifie les deux structures de traits Dans ce cas, succès
77
Utilisation pratique viens [catgram="verbe" lemme="venir" temps="futur" accord= [ personne="2" nombre="singulier" ] ] je [catgram="pronom" accord= [ personne="1" nombre="singulier" ] ] token1.accord = token2.accord Dans ce cas, échec de l'unification Si je est le sujet de viens, viens n'est pas à la 2e personne viens,V:P1sviens,V:P2son lève une ambiguïté
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.