05 — Le Correcteur Orthographique
Algorithmes : Tri par insertion + Recherche dichotomique Difficulté : Moyen Durée estimée : 1h — 1h15
Contexte
Vous construisez un mini correcteur orthographique. Il dispose d'un dictionnaire de mots déjà triés par ordre alphabétique. Il peut vérifier si un mot existe, proposer des mots voisins en cas d'erreur, et permettre d'ajouter de nouveaux mots en maintenant l'ordre.
Ce projet utilise la dichotomie différemment des autres : au lieu de renvoyer seulement True ou False, elle doit aussi indiquer où le mot aurait dû se trouver, pour proposer des suggestions.
Étapes
Étape 1 — Vérifier un mot
Implémentez verifier(dictionnaire, mot) qui retourne True si le mot est dans le dictionnaire, False sinon.
C'est une recherche dichotomique classique sur des chaînes de caractères.
Rappel : en Python, les chaînes se comparent alphabétiquement :
"chat" < "chien"→True.
Étape 2 — Proposer des voisins
Modifiez votre fonction pour qu'elle retourne aussi les mots voisins quand le mot est absent : le mot qui se trouverait juste avant et juste après dans le dictionnaire.
Indication : à la fin de la dichotomie, si le mot n'est pas trouvé, les bornes
aetbindiquent l'endroit où il aurait dû être inséré. Les mots endictionnaire[b]etdictionnaire[a]sont ses voisins alphabétiques.
Retournez un tuple (trouve, voisin_avant, voisin_apres).
Étape 3 — Ajouter un mot
Implémentez ajouter_mot(dictionnaire, mot) qui insère le mot à la bonne place pour maintenir l'ordre alphabétique.
Indication : c'est le même principe que le tri par insertion, appliqué à un seul élément. Ajoutez le mot à la fin avec
append(), puis décalez vers la gauche tant que le mot précédent est alphabétiquement après lui.
Étape 4 — Interface de correction
Complétez la boucle principale : l'utilisateur saisit un mot, le programme répond :
- "chat" : correct
- "chzt" : mot inconnu. Vouliez-vous dire "chute" ou "chat" ?
Étape 5 — Extension (si vous avez le temps)
Ajoutez une fonction charger_mots(fichier) qui lit un fichier texte (un mot par ligne) et retourne la liste triée. Testez avec un vrai fichier de mots français.
Ce que vous devez rendre
- Le programme fonctionnel avec la suggestion de voisins
- Réponse : pourquoi les bornes
aetbà la fin de la dichotomie indiquent-elles le point d'insertion ?
Dernière mise à jour : 07/07/2026