U7LI42 : Projets en TAL

Responsable : Pascal Amsili (avec la participation d'Alexis Nasr)

L'objectif du projet est la réalisation d'un programme informatique relevant du Traitement Automatique des Langues. Les projets se font par binômes ou trinômes, et sont encadrés par un enseignant (ou un doctorant), responsable du projet.

Durant le 2e semestre, chaque groupe peut présenter l'avancement de son travail au responsable du projet.




 

Langages

Les projets peuvent être réalisés dans un des langages enseignés dans le cursus LI, exceptionnellement dans un autre langage de programmation, après accord du responsable. Ils sont réalisés sur la machine de votre choix, à condition toutefois qu'il soit possible d'en faire une démonstration le jour de la soutenance dans la salle machine.

Rapport

Un rapport comprenant une vingtaine de pages est demandé. Il doit être non manuscrit et doit contenir :
  • une partie linguistique : description du champ d'étude, des données manipulées, des choix effectués, etc. ;
  • une partie informatique : description des algorithmes mis en oeuvre, des choix d'implémentation, des éventuels problèmes rencontrés et de leur solution, etc. ;
  • un "manuel utilisateur" : indications pratiques pour exécuter le programme, et description de son interface (choix, menus...)
  • en annexe (et seulement en annexe), listing du programme, éventuellement description exhaustive des données linguistiques, etc.

Soutenance

Les projets font l'objet d'une soutenance publique. Le jury est constitué des responsables du cursus LI, Alexis Nasr et Pascal Amsili, et de l'ensemble des encadrants des projets.

Lors de la soutenance, chaque membre du groupe devra prendre la parole (environ 10 minutes chacun). Prévoir des transparents ou une présentation PDF / PowerPoint. Une démonstration du programme sur vidéo-projecteur sera incluse dans la soutenance.

La note finale individuelle est calculée à partir de :

  • la note collective attribuée au rapport, et
  • une note individuelle de soutenance.

Sujets

Les sujets peuvent être pris dans la liste ci-après, (plusieurs groupes peuvent prendre le même sujet), mais il est possible aussi de proposer vous-même un sujet, par exemple une variante d'un sujet proposé, ou quelque chose d'entièrement nouveau. Il est possible de s'inspirer des sujets proposés les années précédente, dont certains peuvent être trouvés dans mes archives.
 

Calendrier

Sauf cas particulier, étant donné le nouveau calendrier, il est prévu que toutes les soutenances auront lieu pendant la 2e session d'examen (juin).
  • Début du projet : février 2006
  • Date limite de remise des rapports : mercredi 7 juin, midi (par email en PDF, ou dans le casier de P. Amsili, à Jussieu ou rue du château des rentiers.)
  • Soutenances : toute la journée du lundi 12 juin, rue du château des rentiers.
Horaires des soutenances
(L'ordre de passage à l'intérieur des groupes peut être modifié)

14:00 Saïda Arbane
14:10 Yann Bicrel
14:20 Frédéric Laurens
14:30 Grégoire Winterstein
14:45 Benoît Brard
14:55 Yu Gao

 
 

    Liste des sujets


    Projet n° 1 : Repérage des entités nommées

    On regroupe sous le terme "entités nommées" les noms de personnes, de lieux, de dates, noms d'entreprises, adresses, etc. Il s'agit d'expressions qui dénotent une entité unique de façon presque indépendante du contexte. On s'intéresse aux entités nommées pour plusieurs raisons :
    • elles constituent des syntagmes qui peuvent être relativement complexes au point de vue syntaxique (par exemple une adresse, ou un nom d'association) dont le repérage préalable peut grandement siplifier une analyse syntaxique ;
    • dans une perspective de recherche d'information, la reconnaissance des entités nommées permet de savoir de quoi parle un texte ;
    • elles sont nécessaires pour la résolution des anaphores.
    Il s'agit dans ce projet de repérer de la façon la plus complète possible dans un texte étiqueté ou non, les entités temporelles. Pour cela, on envisagera un algorithme en deux étapes (qui peuvent se répéter) :
    • au moyen de règles générales et de dictionnaires spécialisés (noms propres, amorces --- c'est-à-dire mots qui introduisent ou suivent systématiquement des entités nommées, comme 'minutes', etc.), constitution d'une "table des symboles" des entités présentes dans le texte ;
    • à partir de cette table des symboles, et en tenant compte des formes variées sous lesquelles une même entité peut être désignée, recherche de nouvelles entités, voire de nouvelles règles trouvées précédemment.
    L'idée est que le programme s'enrichit au fur et à mesure qu'il est utilisé.

    Projet n° 2 : Analyseur syntaxique d'une grammaire ambigüe (Earley)

    Il s'agit d'implémenter, pour un fragment significatif du français (ou d'une autre langue), comportant des ambiguïtés, l'algorithme d'analyse d'Earley.

    Projet n° 3 : Réseaux sémantiques

    À partir de définitions provenant de dictionnaires électroniques, préalablement étiquetées, il s'agit de construire un « réseau sémantique ».

    Pour chaque entrée (qui peut correspondre à un des sens d'une lexie), on repèrera les mots pleins qui participent à sa définition (il faut donc (1) distinguer les mots pleins des mots « outils », (2) repérer la définition proprement dite parmi l'ensemble des informations associées à une entrée (catégorie, exemples, synonymes...)), et on construira un réseau reliant l'entrée à tous ces mots pleins.

    Ce réseau pourra être stocké sous forme de fichier Ascii, dans un format du genre de celui de WordNet.
    On pourra aussi, éventuellement, proposer une interface graphique permettant de visualiser graphiquement le réseau, voire de le modifier.

    Dans un deuxième temps, on réalisera un programme exploitant ce réseau pour désambiguïser les sens d'un mot en contexte. Principe : étant donnée une phrase contenant le mot concerné, on repère les mots pleins qui l'entourent (contexte), et on recherche ces mots dans le réseau. Alors le sens correspondant est celui qui est le plus proche (dans un sens qu'il faut précisément définir) des mots pleins de son contexte.

    D'autres exploitations d'un tel réseau peuvent être envisagées.

    Projet n° 4 : Détection de la langue d'un texte

    Pour détecter la langue d'un texte, on peut constituer une base de connaissances à partir d'un corpus de textes classés par langue. Pour chaque langue, un premier programme (à écrire) recueillera des statistiques significatives, basées sur les lettres (par exemple, il y a plus de "w" en anglais qu'en français). Le choix du modèle probabiliste employé et de ses paramètres (bigrammes, trigrammes) devra être justifié dans le rapport. On peut en proposer plusieurs et discuter de leurs avantages et inconvenients (rapport entre précision de la reconnaissance et volume de la base de connaissances ou longueur du texte nécessaire pour reconnaître sa langue).

    Un deuxième programme (à écrire), utilisera ces bases de connaissances pour reconnaître la langue d'un texte.

    Vous utiliserez un corpus d'apprentissage comprenant des textes plus ou moins variés d'un certain nombre de langues (le plus de langues possible, au moins 4). Le corpus de test ne devra pas contenir de texte appartenant au corpus d'apprentissage.

    Amélioration possible : gérer des textes dans différents encodages, pour les langues à alphabet non latin.

    Projet n° 5 : Wordnet en java

    Le titre du projet dit presque tout. Plus de détails bientôt.

    Projet n° 6 : Résolution des anaphores personnelles

    Plus de détails bientôt.

Ma maison-page June 09 2006