Gemini Passerelle

publicité
Projets de recherche et d'innovation technologique
Master 2, Ingénierie linguistique, 2015-2016
Chaque projet est pour 3 ou 4 étudiants.
Gemini
Outil de comparaison de deux corpus annotés
http://igm.univ-mlv.fr/~laporte/proj/gemini.pdf
1.1. Alignement des annotations d'un corpus par chaînes de Markov cachées (HMM), il est possible de
proposer un autre algorithme. Création d'un fichier CSV qui liste les appariements trouvés (C/C++).
1.2 Calculs statistiques et présentation des résultats sous forme de tableaux (C/C++).
1.3. Interface graphique à intégrer à Unitex/GramLab (Java).
Suivi : Eric Laporte, Philippe Gambette, Cristian Martinez
Compétences : C/C++, Java, YAML, XML, algorithmes d'alignement, métriques de comparaison
d'annotations
Passerelle
Interfaçage d'Unitex avec l'outil d'apprentissage supervisé de Gate, en vue d'extraction
d'informations ou de classification
L'objectif du projet est d'ajouter à Unitex/GramLab une fonctionnalité qui prépare un apprentissage
supervisé avec Gate, à l'aide de corpus prétraités et annotés avec Unitex/GramLab. Les utilisateurs
prévus sont des linguistes. Les principales fonctionnalités sont l'exportation et l'importation des
corpus vers le format Gate (les fonctionnalités d'importation de Gate ne sont pas prévues pour un
corpus à la fois tokenisé et balisé). Il n'est pas nécessaire d'inclure du code de Gate dans Unitex.
2.1. Etude de l'existant : balisage XML ; installation d'Unitex/GramLab et de Gate ; format de fichier
Unitex/GramLab pour les corpus, documenté dans le manuel ; format de fichier Gate pour les corpus
annotés, spécifié par GateDocument.dtd
http://grepcode.com/file/repo1.maven.org/maven2/uk.ac.gate/gate-core/8.1/gate/resources/creole/GateDocument.dtd
et illustré par un document XML fourni comme modèle :
http://igm.univ-mlv.fr/~laporte/proj/80jours-Gate.xml.
2.2. Développer un programme d'exportation de corpus vers Gate qui interprète le découpage en
phrases et en tokens comme des annotations (C/C++).
2.3. Etendre le programme d'exportation au cas d'un corpus balisé en XML, pour qu'il interprète le
balisage comme des annotations supplémentaires (C/C++). On fournit comme exemple un corpus
balisé en XML par Unitex et correspondant au document XML du 2.1 :
http://igm.univ-mlv.fr/~laporte/proj/80jours-Unitex.zip. Le programme devra :
- vérifier dans le corpus de départ que les balises ouvrantes et fermantes se correspondent,
- vérifier que le balisage satisfait aux contraintes qui doivent être respectées pour que l'apprentissage
supervisé sous Gate soit possible ensuite (noms d'éléments),
- ajouter des attributs f="v" aux éléments XML qui n'en ont pas.
2.4. Développer un programme d'importation depuis Gate qui traduit en balisage XML les annotations
autres que phrases et tokens (C/C++).
2.5. Ajouter à l'IDE Unitex une fonctionnalité qui prépare un apprentissage supervisé avec le module
externe Learning de Gate (Java). L'IDE devra ouvrir une boite de dialogue qui demande les paramètres
de l'expérience et permet de les sauvegarder dans un fichier.
Paramètres :
- le répertoire dans lequel se fera l'expérience,
- le chemin et le nom du corpus balisé,
- le même corpus prétraité par Unitex mais avant balisage (par défaut le corpus courant),
1
- le type d'apprentissage (extraction d'informations ou classification).
Une fois ces paramètres fixés, l'IDE permet de lancer l'exportation du corpus balisé, de créer le fichier
de configuration au format voulu par Gate, et d'afficher les paramètres à utiliser pour appeler le
module Learning.
Après ces opérations, l'IDE permet de préparer l'application du modèle à un nouveau corpus prétraité
par Unitex (par défaut le corpus courant), ce qui consiste à lancer les 3 mêmes opérations : exportation
du corpus, création du fichier de configuration, affichage des paramètres à utiliser pour appeler le
module Learning.
2.6. Tests :
- exportation sous Gate d'un corpus non balisé et d'un corpus balisé
- édition manuelle des annotations avec l'éditeur de corpus de Gate
- apprentissage supervisé avec Gate, puis application du modèle obtenu à un corpus non balisé (2
expériences : extraction d'information, classification)
- importation du corpus obtenu en XML
- ouverture du corpus obtenu avec Unitex/GramLab
Suivi : Eric Laporte, Philippe Gambette, Cristian Martinez
Compétences : C/C++, Java, XML, Gate
Bornage
Intégration des deux IDE Java (Unitex et GramLab) du système Unitex/GramLab.
3.1. Classement des fonctionnalités suivant qu'elles sont accessibles depuis les deux IDE, uniquement
depuis Unitex ou uniquement depuis GramLab.
3.2. Elimination de dépendances du code Java de l'IDE GramLab vers celui d'Unitex : certaines
dépendances (souvent indirectes) de GramLab vers des classes d'Unitex sont inutiles, par exemple
celles qui résultent de l'appel d'une méthode pour fermer des fenêtres qui n'ont pas été ouvertes, ou de
l'appel de classes correspondant à des fonctionnalités non prévues et non voulues dans GramLab
(exemple : TextAutomatonFrame). Vérifier si les dépendances sont justifiées par des fonctionnalités de
GramLab, et sinon, adapter le code pour les éliminer.
3.3. Convergence de menus et boites de dialogue : certains menus et boites de dialogue sont différents
entre les deux interfaces, par exemple les deux fenêtres de préférences. Vérifier si ces différences se
justifient, et sinon, les faire converger.
3.4. Convergence d'actions : certaines actions déclenchées par le même menu sont différentes suivant
l'IDE. Vérifier si ces différences se justifient, et sinon, faire converger le code.
3.5. Ensuite, séparer le code Java d'Unitex en deux parties suivant qu'elles sont invoquées par Gramlab
ou non. Transformer le code invoqué par GramLab en une bibliothèque commune qui sera utilisée par
les deux IDE. Chaque partie de code Java devra être soit commune, soit spécifique à une des deux IDE.
Bonus : optimisation de la recherche des projets : dans GramLab, l'algorithme qui détermine à quel
projet correspond un fichier donné parcourt toute l'arborescence des projets, alors que le fichier a une
forte probabilité d'appartenir au projet courant. Adapter le code pour éviter les parcours inutiles.
Suivi : Eric Laporte, Cristian Martinez
Compétences : Java
Autres
Mise à jour de Multiflex dans Unitex
La partie mots composés de Multiflex a évolué. L'objectif du projet est de répercuter les évolutions sur
Unitex.
Suivi : Eric Laporte, Agata Savary (auteur de Multiflex, Université de Tours).
Compétences : C/C++
2
Locate pattern sur corpus arboré
L'objectif du projet est d'implémenter une variante du programme de construction de l'automate du
texte d'Unitex, adaptée au cas où le texte code un corpus arboré, c'est-à-dire une séquence d'arbres.
Le corpus arboré est sous forme linéarisée par parenthésage, sur le modèle du Penn Treebank. Le
résultat du traitement sera un automate dans le même format que l'automate du texte classique. Les
mots du texte seront représentés de la même façon que dans le programme classique, et le
parenthésage sera remplacé par des transitions : chaque noeud interne de l'arbre devra être
représenté par une transition qui court-circuite la séquence de mots dominée par le noeud.
La fonctionnalité de recherche d'Unitex (Text > Locate pattern, LocateTfst) devra être applicable à cet
automate dans les mêmes conditions que l'automate du texte classique. Les requêtes devront pouvoir
contenir des masques syntaxiques (<NP>) en plus des masques lexicaux (<N>).
Suivi : Eric Laporte, Matthieu Constant.
Compétences : C/C++
3
Téléchargement