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.
On 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 :
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 :
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 les entités de type "personne", organisation et "lieu". Le texte pourra avoir été préalablement taggé. L'enjeu du projet est :
La version de base comprend un moteur de reconnaissance des entités, et son évaluation (qui utilise un corpus où les entités nommées ont été manuellement annotées). Une version plus sophistiquée permettra d'augmenter les performances en couvrant plus que les cas simples, et en utilisant des ressources externes.
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 :
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.
Dans ce projet, on vous propose de créer un moteur de recherche fondé sur l'approche vectorielle.
Pour permettre de traiter une base documentaire avec un nombre important de documents, l'aspect crucial est d'utiliser la notion d'index, ce qui permet au moment de la recherche de documents pertinents pour une requête de ne pas reparcourir tous les documents.
Le projet est structuré en 2 parties :
On propose de réaliser une suite d'outils pour l'exploration de corpus annotés en morphosyntaxe. Celle-ci se composera de deux sous-composantes :
Le tagger de Brill (1992) permet d'étiqueter un texte en partie-du-discours à l'aide de règles apprises automatiquement sur un corpus. L'apprentissage fonctionne en 2 étapes:
Pour tagger un nouveau texte, on commence par tagger chaque mot-forme avec sa catégorie la plus fréquente puis on applique les règles de correction dans l'ordre où on les a apprises.
Dans un premier temps, le projet consiste à implémenter un tagger de Brill et à l'évaluer sur corpus. Dans un second temps, on vous propose d'analyser les erreurs produites par ce tagger (i.e. pourquoi s'est-il trompé sur tel mot ? quels sont les types d'erreurs les plus fréquentes ?) et à suggérer des améliorations. Éventuellement, il pourrait être intéressant de comparer les erreurs faites par le tagger de Brill à celles faites par un tagger statistique (dont la sortie vous sera fournie).
Références