Dans cette mission nous allons développer un simple assistant qui fonctionne sur la console Python. L'utilisateur doit être capable de donner des commandes simples, pour lesquelles l'outil doit répondre avec une réponse pertinente. L'objective dans cette mission est de montrer que l'outil continue à fonctionner même si l'utilisateur donne des commandes incomplètes ou incorrectes.
Les commandes qui doivent être supportées sont:
En outre, il vous est demandé d'ajouter une commande de votre choix à l'outil.
Par exemple, l'outil doit supporter cette séquence de commandes :
Bienvenue dans votre outil personnalisé! > file all-words.dat Loaded all-words.dat > info 11304 lines 1330218 caracters > dictionary Read file as dictionary > search presbytaerial Closest word is presbyterial > search prebyteriaal Closest word is presbyterial > exit
Si l'utilisateur spécifie un fichier autre qu'un dictionnaire, ou si l'utilisateur cherche un mot sans avoir spécifié un dictionnaire, l'outil doit produire un message d'erreur et continuer à fonctionner.
Le format des dictionnaires est spécifié dans les exercices préparatoires. Pour éviter tout problème avec l'encodage des caractères accentués, votre dictionnaire vérifiera des mots en anglais (sans accents). Si l'utilisateur spécifie un mot qui n'est pas présent dans le dictionnaire, l'outil doit retourner le mot le plus similaire.
La phase de réalisation de cette mission est moins guidée que les précédentes. Par conséquent :
Néanmoins, on vous suggère de procéder comme suit:
Pour vous aider, vous avez à disposition le fichier all-words.dat qui contient une centaine de milliers de mots de la langue anglaise ainsi que le nombre d'occurrences de ce mot. Ce dictionnaire a été construit en se basant sur deux sources d'information : le dictionnaire utilisé par ispell (http://wordlist.sourceforge.net/) et la Global Service List (http://jbauman.com/gsl.html), c'est-à-dire les 2000 mots les plus fréquemment utilisés par un personne qui apprend l'anglais. Ce fichier contient les mots en minuscules et n'est pas trié dans l'ordre alphabétique. La première ligne contient le nombre de mots présents dans le fichier.
La mission de cette semaine n'aura pas de correction automatique donc soyez bien attentifs pendant la séance de feedback.
Vous devrez aussi écrire des tests de vos fonctions. Si assistant.py est le fichier qui contient votre code, nous attendons que vous écrivez un deuxième fichier test.py dans lequel vous faites des appels aux fonctions que vous avez fournies. Il est décrit dans le syllabus théorique comment faire des tests quand on a plusieurs fichiers (Section Tests).
Vous devez soumettre un fichier assistant.py avec le code de votre outil et un fichier test.py avec vos tests. N'oubliez pas d'ajouter dans ce fichier des spécifications (docstrings) et aussi d'écrire un fichier README.