IFT1025 – Programmation 2 TP2 : Mini correcteur d`orthographe

Transcription

IFT1025 – Programmation 2 TP2 : Mini correcteur d`orthographe
IFT1025 – Programmation 2
TP2 : Mini correcteur d’orthographe
Remise : avant midi le 3 mai 2006
But
Ce TP vise à intégrer les éléments présentés dans ce cours, notamment, la manipulation d’un
dictionnaire, l’interface graphique. On vous encourage d’utiliser les différents éléments du
langage Java (notamment la programmation OO) d’une façon la plus raisonnable possible.
Problème
Ce TP traite le problème de correction d’orthographe. Pour le but de ce TP, on considère une
correction très restreinte : Seuls les mots stockés dans un dictionnaire sont considérés corrects.
Dans un texte entré par un utilisateur, il peut y avoir des mots qui ne sont pas dans le dictionnaire.
Ces mots sont « inconnus ». Le rôle du correcteur est (1) d’identifier ces mots « inconnus », (2)
proposer des mots du dictionnaire les plus proches.
Pour ce correcteur, on ne tient pas compte des règles grammaticales (qu’un vrai correcteur doit
faire).
Ce correcteur doit fonctionner à la fois pour l’anglais et pour le français, selon le texte que
l’utilisateur entre. Afin de lancer la correction dans la langue appropriée, votre système doit
contenir un identificateur de langue (voir plus bas). Une fois la langue identifier, on utilise le
dictionnaire correspondant pour la correction.
Deux dictionnaires (listes de mots) en anglais et en français vous seront fournis (similaire au
dictionnaire que vous avez traité avant, mais sans les informations sur les mots).
Interface
Pour ce TP, vous devez aussi concevoir une interface graphique qui permet à l’utilisateur d’entrer
un texte, de lancer la correction automatique. Votre système doit afficher le même texte, mais
avec les mots inconnus en une couleur différente, ou en une forme différente (e.g. italique,
souligné, gras). Si l’utilisateur clique sur le mot en rouge, on doit voir apparaître les mots les plus
proches dans un menu à coté du mot. L’utilisateur peut choisir un des mots proposés pour
remplacer le mot inconnu.
Pour pouvoir identifier le mot sur lequel l’utilisateur a cliqué, vous pouvez vous inspirer de
l’exemple sur le site suivant :
http://forum.java.sun.com/thread.jspa?threadID=289579&messageID=3263220
Notamment, la méthode public void mouseClicked(MouseEvent e) détecte le mot
sur lequel l’utilisateur a cliqué.
Pour modifier un mot inconnu, vous aurez besoin de la méthode void replaceRange(String, int, int)
de la classe TextArea (Voir un tutoriel
http://java.sun.com/docs/books/tutorial/uiswing/components/textarea.html).
Identification de la langue
On utilise une façon simple pour déterminer la langue d’un texte : la langue dans laquelle on
retrouve le plus grand nombre de mots connus est considérée la langue du texte. Pour ce faire,
votre identificateur doit comparer les mots du texte avec les mots dans les 2 dictionnaires
respectivement.
Cette identification est automatique. Ainsi, l’utilisateur n’aura pas à choisir la langue, et le
système la détermine automatiquement.
Les mots les plus proches
Pour déterminer les mots du dictionnaire les plus proches à un mot inconnu, on utilise la distance
d’édition, ou la distance Levenshtein. Cette distance correspond au nombre d’insertion, de
remplacement et d’enlèvement de caractère pour unifier un mot avec un autre. Par exemple, la
distance d’édition entre « extraction » et « xtraton » est 3. Les mots les plus proches sont les mots
du dictionnaire ayant la distance minimale avec le mot inconnu.
Vous pouvez trouver sur le site suivant une description de la distance ainsi que son implantation
en Java :
http://www.merriampark.com/ld.htm
Vous pouvez utiliser cette implantation directement dans votre TP.
Conception et organisation
Vous êtes demandé à concevoir vos programmes vous-mêmes, en exploitant le plus possible les
outils existants (les classes de Java et les devoirs et le TP antérieurs).
Rapport
Vous êtes demandés à remettre non seulement vos programmes, mais aussi un rapport de 2-3
pages, décrivant votre conception et les justifications. Ce rapport doit être remis soit sur papier,
soit avec le programme remise.
Évaluation
Ce TP compte pour 10 points dans la note finale. Ils sont attribués aux éléments suivants :
- Gestion du dictionnaire : 1 point
- Identification de la langue : 1 point
- Identification des mots inconnus et les mots les plus proches : 2 points
- Interface graphique (conforme à la spécification, convivialité) : 2 points
- Conception et organisation globale, Rapport : 2 points
- Aspects de programmation OO (style, respect du paradigme OO, protection, …): 2 points
La date limite de remise est midi le 3 mai. Une pénalité de 1 point sera appliquée pour chaque
jour de retard.