Cours 6 Paires attribut-valeur Structures de traits Unification.

Slides:



Advertisements
Présentations similaires
Les Verbes Voir et Croire Ch 7 Français I. Voir – To see Je vois I see Tu vois You see Il/Elle/On voit He/She/We see(s) Nous voyons We see Vous voyez.
Advertisements

Les pronoms sujets et être
La théorie du monde est petit
Algorithmes et structures de données avancées Cours 7
Classification et prédiction
Portée des variables VBA & Excel
Classification et prédiction
Champs de Markov en Vision par Ordinateur
Calculs de complexité d'algorithmes
ÊTRE être ou ne pas être Cest la question! (That is the question!)
FLSI602 Génie Informatique et Réseaux
Conception et analyse des algorithmes
L’accord des verbes pronominaux
ALGORITHMES RECURSIFS
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Le Futur Simple Avoir Être aur- ser- Avoir - Traduction – Radical –
Analyse lexicale Généralités Expressions rationnelles Automates finis
Programmation logique Logique des prédicats du premier ordre
La conjugaison Les Verbes.
IFT313 Introduction aux langages formels
AUCUN (none, not a single one) Aucun est souvent au SINGULIER SAUF si le nom auquel il se rapporte nexiste quau pluriel : Aucun nest venu / Je nai aucune.
4 - Les automates et les lexiques morphologiques : le contenu mot fléchilemmepartie du discourstraits de flexion Habituellement, un lexique morphologique.
Programmation logique Démonstrateur automatique
Les homophones ça  sa ce  se mais  mes ou  où
Équations différentielles.
Bases de données lexicales
1 Exercice : longueur d’un mot est-elle paire ?  Test fonctionnel  Quel ensemble de valeur choisir / spécification  Test structurel  Soit le code d’un.
Arbres Rouge noir Démo : INF3105 Structures de données et algorithmes
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
Les applications évoluées (traduction automatique) nécessitent beaucoup d'informations lexicales : délimitation des mots composés, lemmes... Cela fait.
Syntaxe et analyse syntaxique Réseaux sémantiques
Eric Laporte Institut Gaspard-Monge Université de Marne-la-Vallée France Syntaxe et analyse syntaxique.
CLS algorithm Step 1: If all instances in C are positive, then create YES node and halt. If all instances in C are negative, create a NO node and halt.
Le futur simple.
Exposé en structures de données
Le subjonctif.
Le langage C Structures de données
Le subjonctif Le subjonctif est formé à partir de la 3e personne du pluriel du présent de l’indicatif suivi de: e-es-e-ions-iez-ent : Présent de l’indicatif.
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
Dév. d’application interactive III Recherche de chemin.
LES PILES ET FILES.
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
Packages et Types De la Spécification Formelle A l'implémentation Ada.
Les pronoms indéfinis.
LE FUTUR #1- Take the infinitive… MANGER FINIR JOUER ECRABOUILLER CHANTER APPLAUDIR DANSER ROUGIR.
Créer des packages.
Les Types de Phrases Il existe différents types de phrases:
Analyser un verbe, qu’est-ce que cela veut dire ?
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Tutorat en bio-informatique
Futur simple.  French Tenses French Tenses  Choose an infinitive Choose an infinitive  -er future -er future  -ir future -ir future  -re future -re.
ETNA – 1ème année Guillaume Belmas –
Sujet Objet Les pronoms interrogatifs et relatifs
Sélection de colonnes (la projection)
Cours LCS N°4 Présenté par Mr: LALLALI
Le futur simple ai ai ons ons as as ez ez a a ont ont.
Le Passé Récent Une leçon créé par T. Gareau. Qu’est-ce que c’est le «Passé Récent» It is a past tense. It refers to an event which has recently occurred.
1 UMLV  FICHIERS Mémoire de masse découpée en blocs Fichier :liste chaînée de blocs, ou arbre de blocs (répertoires - fichiers)‏ Bloc d’éléments Bloc.
8 Les pronoms interrogatifs et relatifs Les normes: Communication 1.2 Comparisons 4.1 Les questions essentielles: - What are the 2 ways to ask the question.
The Future Tense (Le futur) The future tense is formed by adding “avoir” endings to the infinitive of a verb. Ai As A Ons Ez Ont parlerai choisirai Parleras.
8 Les pronoms interrogatifs et relatifs Les normes: Communication 1.2 Comparisons 4.1 Les questions essentielles: - What are the 2 ways to ask the question.
Les Pronoms Compléments d’objets directs C.O.D. Les pronoms C.O.D Les pronoms C.O.D sont: Le (masculin singulier) La (féminin singulier) L’ (devant un.
 The conditional is used to describe what people WOULD DO or what WOULD HAPPEN if certain conditions were to be met.  La racine régulière du.
© and ® 2011 Vista Higher Learning, Inc.5A.1-1 Point de départ In Leçon 4B, you learned how to form le futur simple, which is generally equivalent to the.
Techniques d’Optimisation Chapitre 2: Problème de flôt Dr TARI Abdelkamel Mars 2014.
© and ® 2011 Vista Higher Learning, Inc.3B.2-1 Point de départ The conditional expresses what you would do or what would happen under certain circumstances.
Le Passé Composé: Verbes avec ÊTRE! …ou ‘Sup, S.E.P.A.???!!
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
Transcription de la présentation:

Cours 6 Paires attribut-valeur Structures de traits Unification

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

Paires attribut-valeur avec variables Étiquettes lexicales viendrai [catgram="verbe" lemme="venir" temps="futur" personne=personneVerbe nombre=nombreVerbe ] je [catgram="pronom" personne=personnePronom 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

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

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

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

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)

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 :

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

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"]

Exemples Combinaison d'informations [ personne="1"] [ nombre="singulier"] = [personne="1" nombre="singulier"] [ nombre="singulier"] [ (vide) ] = [ nombre="singulier"]

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

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" ] ] ]

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" ] ] ]

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" ] ] ]

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

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"]

Exemple [ sujet=[ accord=(pointeur) ] verbe=[ catgram="verbe" accord=[ (vide) ] ] ] [ sujet=[ accord=(pointeur) ] verbe=[ catgram="verbe" accord=[ personne="1" nombre="singulier" ] ] ]

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

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

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 :

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" }

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 :

données contenu : "1" pointeur : contenu : résultat contenu : "1" pointeur : contenu :

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 :

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 :

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

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é