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.