Sujets des projets L3 LI - 2014-2015

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 inconvénients (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). Par la suite, 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
Corentin Ribeyre
Groupe
2 personnes
Difficulté
Facile à moyen

Correction orthographique

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 en entrée, et pour chaque forme non présente dans le dictionnaire, propose à l'utilisateur :

  • de choisir un de ses remplaçants
    • pour l'occurrence, ou pour toutes les occurrences
  • de fournir un remplaçant, pour l'occurrence, ou pour toutes les occurrences
    • si le remplaçant n'est pas dans le lexique
      • de l'insérer dans le lexique pour ce texte,
      • de l'insérer dans le lexique stable
  • d'ignorer la correction, c'est-à-dire conserver le mot initial, pour cette occurrence ou pour toutes, en l'insérant ou non dans le lexique.

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 ce faire, on appliquera diverses heuristiques, fondées sur la forme du mot :

  1. Utilisation de la distance d'édition entre deux mots (distance de Levenshtein)
  2. Raffinement de la distance d'édition pour prendre en compte le clavier propre à une langue (AZERTY, QWERTY, etc.)
  3. Utilisation de corpus de bigrammes ou trigrammes de mots pour rendre le correcteur contextuel 
    • Exemple : Quand à moi, je peu être fier de ce que j'ai fait
    • Les mots soulignés, bien qu'existant en langue française, sont faux dans le contexte.
  4. Autres heuristiques possibles guidées par des considérations linguistiques sur la langue que l'on cherche à corriger.
Responsable
Corentin Ribeyre
Groupe
2 personnes
Difficulté
Moyen à difficile

Reconnaissance d'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 simplifier 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 de type "personne". 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 systématiquement des entités nommées, comme 'Melle', 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é.
Responsable
Pascal Amsili
Groupe
2 personnes
Difficulté
Moyen à difficile

Saisie prédictive pour téléphone portable

Aujourd'hui les téléphones tactiles de type smartphones sont légion. Le principal problème d'une telle technologie repose sur le fait qu'à la longue, il n'est pas toujours aisé, voire peu intuitif de taper du texte, que ce soit SMS, e-mails ou courts messages sur les réseaux sociaux. De fait, ce projet consiste en la création d'un système de saisie prédictive à la manière des téléphones portables.

La difficulté réside dans l'interface entre l'utilisateur final et le programme :

  • Est-ce facile de sélectionner le texte prédit ?
  • Le texte est-il suffisamment précis pour répondre au besoin de l'utilisateur ?
  • Comment gérer les mots inconnus ? Peut-on les ajouter à un dictionnaire, les modifier, les supprimer ?

Dans un premier temps, il sera nécessaire de concevoir un programme utilisant un dictionnaire pour la prédiction. Dans un second temps, vous pourrez vous attacher à utiliser des corpus de bigrammes ou trigrammes de mots pour pouvoir prédire le mot le plus fréquent après un mot déjà tapé. Enfin, vous pourrez améliorer votre projet, afin de prendre en compte les bigrammes ou les trigrammes les plus fréquents en fonction de l'habitude de l'utilisateur.

Responsable
Corentin Ribeyre
Groupe
2 personnes
Difficulté
Facile à difficile

Expansion de requêtes d'un moteur de recherche

L'expansion de requête est une technique employée en Recherche d'Information. Elle consiste à ajouter des termes à une requête, voire à remplacer celle-ci. L'objectif est de retourner à l'utilisateur des documents qu'il n'aurait pas trouvé avec sa requête initiale (exemple : la requête "voiture" ne permettra pas de trouver les documents ne contenant que le terme "automobile", qui sont pourtant pertinents).

Le projet consiste en la mise en place d'un tel système en employant différentes méthodes, parmi celles-ci :

  • Expansion par rapprochement de mots-clé.
  • Expansion par synonymie, hyperonymie.
  • Expansion par traduction des mots dans une langue différente.
  • Expansion par lemmatisation de la requête.
  • etc.

Le programme devra être capable, pour une requête donnée, de proposer de nouvelles requêtes fondées sur les heuristiques présentées ci-dessus. Par ailleurs, l'interface entre l'utilisateur et le programme peut être un point important du travail. Enfin, on accordera une attention particulière à la question de l'évaluation de la qualité des requêtes produites.

Responsable
Corentin Ribeyre
Groupe
2 personnes
Difficulté
Moyen à difficile

Pronoms personnels pléonastiques

Il s'agit de mettre en place une série d'heuristiques pour repérer les emplois des pronoms personnels qui ne sont pas référentiels: il peut s'agir de pronoms employés dans des constructions impersonnelles (il pleut, il est probable que P...), d'emplois liés (Tout homme pense qu'il est maltraité...) ; on peut ajouter les clitiques explétifs dans les constructions interrogatives (Paul est-il rentré?) dont on ne peut pas dire qu'ils soient non référentiels, et plus généralement les occurrences pronominales pour lesquelles il n'est pas utile ou possible de rechercher un antécédent anaphorique.

L'objectif est de mettre en place un marquage de ces pronoms qui puisse se faire de façon automatique avec un taux de réussite satisfaisant. Le projet sera développé sur le corpus annoté en syntaxe « French Tree Bank », et il s'agira de porter plus particulièrement l'attention sur les aspects suivants :

  • Manipulation d'un corpus annoté, dans un format xml
  • Ajout d'une annotation (off-line) sur le corpus.
  • Évaluation de la performance.
Responsable
Pascal Amsili
Groupe
2 personnes
Difficulté
Facile à moyen

Étiquetage automatique d'un corpus d'actes de mariage

On dispose de 14.000 actes de mariages en espagnol (tous les actes de mariage catholiques à Buenos Aires, entre 1620 et 1840). Leur structure suit assez rigoureusement le schéma général suivant :

  • numéro de l'acte
  • date
  • époux :
    • Dn. (marqueur social, optionnel)
    • prénom(s)
    • nom(s) en majuscules
    • lieu de naissance, précédé des mots natural de
    • parents, précédé des mots hijo legitimo de
      • prénoms+noms du père
      • le mot y ("et", en espagnol)
      • prénoms+noms de la mère
  • le mot con ("avec", en espagnol)
  • épouse (idem)
  • Une liste de témoins (prénoms + noms) précédée de l'abréviation Ts.
  • le numéro du feuillet dans le registre original

L'exemple ci-dessous est tout à fait caractéristique


						7170) 5-4-1813: Dn. Manuel INCHAURREGUI, natural de ésta, hijo
						legítimo de Dn. José Santos Inchaurregui y de Da. María Josefa Ruiz de
						Gaona, con Da. María de los Dolores CAZON, natural de ésta, hija
						legítima de Dn. Joaquín González Cazón y de Da. María Norberta
						Ferreyra. Ts.: Dn. Pablo Ruiz de Gaona y Da. María Rafaela
						Pereyra. (f. 109).
					

Bien entendu, de nombreuses situations particulières peuvent intervenir (parents inconnus, titres et fonctions d'un des époux, mentionnés après son nom, etc.), mais certains marqueurs restent très fiables pour identifier les différentes parties (les majuscules pour les époux, les mots-clefs comme hijo/a legitimo/a, y de, con)

L'objectif est d'insérer dans l'ensemble du corpus des balises xml. Pour l'époux dans l'exemple présenté, on obtiendrait ceci :


						<epoux don="true">Dn.
						<prenom>Manuel</prenom> 
						<nom>INCHAURREGUI</nom>, 
						natural de <naissance-lieu>ésta</naissance-lieu>, hijo legítimo de
						<pere don="true">Dn. 
						<prenom>José</prenom> <prenom>Santos</prenom> 
						<nom>Inchaurregui</nom>
						</pere>
						y de 
						<mere don="true">Da. 
						<prenom>María</prenom> <prenom>Josefa</prenom>
						<nom>Ruiz</nom> de <nom de="true">Gaona</nom>
						</mere>, 
						</epoux>
					

Il faudra réaliser un analyseur syntaxique pour la structure générale et des dictionnaires pour distinguer les prénoms des noms (on dispose d'une liste des noms des époux, le corpus permet par ailleurs d'extraire une liste de prénoms).

Par ailleurs, il faudra mettre en place des procédures pour identifier les défauts de reconnaissance, et résoudre de manière spécifique les irrégularités les plus répandues.

Responsable
Pascal Amsili (co-encadrement Christophe Prieur et Anne Garcia-Fernandez)
Groupe
2 personnes
Difficulté
assez difficile (travail lié à un projet de recherche en cours)