Cursus de Linguistique Informatique, Université Paris Diderot
Projets informatique de licence 3, année 2011-2012



ELIZA en français

On vous propose d'implémenter une version française de ELIZA. ELIZA est historiquement le premier succès spectaculaire du TAL. Il s'agit d'un petit agent conversationnel qui simule une conversation entre vous et un psychanalyste de patience infinie. Exemple de conversation en français :

   Système : "Comment allez vous ?" 
   Utilisateur : "Je suis déprimé." 
   S : "Dites-moi pourquoi vous êtes déprimé." 
   U : "Je passe trop de temps avec les ordinateurs."   
   S : "Pourquoi mentionnez-vous les ordinateurs ?" 
   U : "Parce que tu en es un." 
   S : "Quels sont vos rapports avec les ordinateurs ?" 
   U : "Difficiles."  
   S : etc 

Ce petit agent fonctionne principalement à l'aide de techniques élémentaires de pattern matching (expressions régulières) et vous demande de manipuler une pile simulant sa mémoire. Le sujet se focalisera sur les points suivants :

Responsable : Pascal Amsili

Difficulté : Moyen à Difficile

Langage : Java ou python

Groupe : 2 personnes

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.

Responsable : Benoit Crabbé

Langage : Java ou python

Groupe : 2 personnes

Difficulté :Facile à moyen

Correcteur orthographique (approche graphémique)

On se propose de réaliser un correcteur orthographique (lexical), qui, disposant d'un dictionnaire de formes fléchies, détecte les mots mal orthographiés, et propose si possible une correction.

Le programme prend un texte (ASCII brut) en entrée, et pour chaque forme non présente dans le dictionnaire, propose à l'utilisateur :

Les remplaçants proposés par le programme (premier cas plus haut) seront des mots figurant dans le dictionnaire, et ayant une certaine proximité avec le mot fautif.

Pour la recherche des mots proches, on appliquera diverses heuristiques, basées sur la forme du mot :

Ces heuristiques, qui peuvent être plus nombreuses, seront étudiées linguistiquement afin de déterminer précisément leurs conditions d'application.

Ressources :

Responsable : Benoit Crabbé

Langage : Java ou python

Groupe : 2 personnes

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 :

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 de type "personne". Pour cela, on envisagera un algorithme en deux étapes (qui peuvent se répéter) :

L'idée est que le programme s'enrichit au fur et à mesure qu'il est utilisé.

Responsable : Pascal Amsili

Difficulté : Facile à Difficile

Langage : Java ou Python

Groupe : 2 personnes

Extraction de collocations en corpus

Les collocations sont des ensembles de deux ou plusieurs mots qui ont une syntaxe régulière, mais dont un des composants n'est pas sélectionné librement et/ou dont un des composants n'a pas son sens habituel.

Par exemple on considère que thé fort est une collocation car le sens de fort dans cette séquence est légèrement altéré : il ne s'agit pas d'une grande force physique mais plutôt d'une forte concentration d'un agent du thé.

Une technique de repérage des collocations utilise le fait qu'ils sont plus fréquemment coocurrents que la normale. Ce sujet propose de partir à la découverte de différentes méthodes connues de détection de collocations en corpus reposant sur des tests d'hypothèses statistiques (comme par exemple le test du Chi2 ou le test exact de Fisher) en utilisant des logiciels d'analyse de données appropriés.

Responsable : Benoit Crabbé

Difficulté : Moyen

Langage : Java ou langage de script (python ou Perl) et initiation au langage R (facultatif)

Groupe : 2 personnes