:: Enseignements :: Licence :: L3 :: 2007-2008 :: Introduction à l'informatique linguistique ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Unification |
Dans ce TP, nous allons voir la notion d'unification de structures de traits.
Unification avec NLTK
Lire la documentation la section
11.3 Computing with Feature Structures du document:
http://nltk.org/doc/en/featgram.html.
Attention : ne pas oublier de faire
import nltk pour faire fonctionner vos scripts python.
Exercice 1 - Bases de données et unification
Soit la base de données représentée par les trois tables suivantes :
np |
nom |
prenom |
ville |
1 |
Dupond |
Luc |
Paris |
2 |
Dupond |
Leon |
Marseille |
3 |
Martin |
Luc |
Lyon |
4 |
Cresus |
Louis |
Paris |
Personne
ns |
nom |
type |
1 |
football |
collectif |
2 |
rugby |
collectif |
3 |
judo |
individuel |
4 |
tennis |
individuel |
Sport
np |
ns |
1 |
1 |
2 |
2 |
3 |
2 |
4 |
1 |
4 |
4 |
Pratiquer
- Représenter chaque table par une liste de structures de traits (chaque ligne est une structure de traits).
- À l'aide de l'opération d'unification, calculer la liste des personnes habitant à Paris.
- À l'aide de l'opération d'unification, calculer la liste des personnes qui pratiquent un sport collectif.
- À l'aide de l'opération d'unification, calculer la liste des personnes qui s'appellent Dupond et qui pratiquent un sport collectif.
Exercice 2 - Levée d'ambiguïté
Les contraintes d'accords peuvent servir à lever l'ambiguïté lexicale de certains mots.
Par exemple, le verbe
viens est ambigu :
le verbe
venir au présent soit à la première personne du singulier soit à la deuxième personne du singulier.
Le contexte "je viens" et la contrainte d'accord permet de lever cette ambiguïté.
-
Écrire une fonction desamb qui prend comme paramètre une liste de structures de traits ambigus (ex. les deux structures de traits de la forme viens}), une structure de traits exprimant le contexte de levée d'ambiguïté (ex. la structure de traits associée à la forme je) et une contrainte (ex. accord).
Cette fonction retournera la bonne analyse parmi l'ensemble des analyses possibles.
Par exemple, desamb([viens1,viens2],je,"accord") retournera viens1, si :
-
viens1 est la structure de traits associée à la forme viens à la 1ère personne du singulier.
-
viens2 est la structure de traits associée à la forme viens à la 2ème personne du singulier.
-
je est la structure de traits associée à la forme je à la 1ère personne du singulier.
-
"accord" est l'attribut dont la valeur est une structure de traits représentant l'accord (cf cours).
- Tester l'exemple ci-dessus.
- Trouver d'autres exemples et appliquer les à l'aide de desamb.
Exercice 3 - Implantation d'un algorithme d'unification
Implémenter en Python l'algorithme d'unification vu en cours.
Vous définirez votre propre représentation des structures de traits.
© Université de Marne-la-Vallée