Correcteur orthographique
Résolu
hakim13700
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, je réalise un correcteur orthographique en java et je suis bloqué a la question :
Etant donné un mot incorrect, il suffit de générer tous les mots qui diffèrent de ce mot incorrect d'une seule lettre. Par exemple, pour le mot incorrect 'tble', on va essayer d'ajouter une lettre à chaque position, et on va essayer :
- {a,b,c,..,z}tble (donc 26 mots)
- t{a,b,c,...,z}ble (donc encore 26 mots) : dans ce paquet, on trouve 'table'
- tb{a,b,c,...,z}le (encore 26 mots)
- ....
chaque mot généré est bien sûr cherché dans le dictionnaire et on ne retient que ceux qui sont corrects. On fait la même chose avec la suppression d'une lettre, la permutation de deux lettres, etc.
La méthode semble un peu "lourde", mais c'est en fait très rapide, car on ne génère à chaque fois que de l'ordre de 26 mots, donc ça fonctionne parfaitement.
Si quelqu'un a une idée merci de me répondre
Etant donné un mot incorrect, il suffit de générer tous les mots qui diffèrent de ce mot incorrect d'une seule lettre. Par exemple, pour le mot incorrect 'tble', on va essayer d'ajouter une lettre à chaque position, et on va essayer :
- {a,b,c,..,z}tble (donc 26 mots)
- t{a,b,c,...,z}ble (donc encore 26 mots) : dans ce paquet, on trouve 'table'
- tb{a,b,c,...,z}le (encore 26 mots)
- ....
chaque mot généré est bien sûr cherché dans le dictionnaire et on ne retient que ceux qui sont corrects. On fait la même chose avec la suppression d'une lettre, la permutation de deux lettres, etc.
La méthode semble un peu "lourde", mais c'est en fait très rapide, car on ne génère à chaque fois que de l'ordre de 26 mots, donc ça fonctionne parfaitement.
Si quelqu'un a une idée merci de me répondre
A voir également:
- Correcteur orthographique
- Correcteur orthographique - Guide
- Correcteur orthographique android - Accueil - Mobile
- Correcteur orthographe open office ne fonctionne pas - Forum LibreOffice / OpenOffice
- Outil correcteur photoshop ne fonctionne pas - Forum Photoshop
- Libre office correcteur orthographique ne fonctionne pas ✓ - Forum LibreOffice / OpenOffice
1 réponse
"on ne génère à chaque fois que de l'ordre de 26 mots"
En réalité tu en génère 26*(n+1) où n est le nombre de lettres donnés.
Pour un mot de 9 lettres tu auras donc 260 mots à comparer.
Je te propose de regarder ce code : Énumérer un ensemble comme si on avait des boucles imbriquées. Voici comment s'en servir dans ton cas :
Ce qui donne :
Il ne te reste alors qu'à tester chaque mot dans le dictionnaire.
En réalité tu en génère 26*(n+1) où n est le nombre de lettres donnés.
Pour un mot de 9 lettres tu auras donc 260 mots à comparer.
Je te propose de regarder ce code : Énumérer un ensemble comme si on avait des boucles imbriquées. Voici comment s'en servir dans ton cas :
import ccm.kx.enumerator.Bounds; import ccm.kx.enumerator.Enumeration; public class Test { private static String insert(String str, int n, char c) { return str.substring(0,n)+c+str.substring(n,str.length()); } public static void main(String[] args) { String incomplete = "tble"; for (long[] tab : new Enumeration(2, Bounds.make(0,'a'), Bounds.make(incomplete.length(),'z'), Bounds.make(1), false)) System.out.println(insert(incomplete,(int) tab[0], (char) tab[1])); } }
Ce qui donne :
atble, btble, ctble, dtble, etble, ftble, gtble, htble, itble, jtble, ktble, ltble, mtble, ntble, otble, ptble, qtble, rtble, stble, ttble, utble, vtble, wtble, xtble, ytble, ztble, table, tbble, tcble, tdble, teble, tfble, tgble, thble, tible, tjble, tkble, tlble, tmble, tnble, toble, tpble, tqble, trble, tsble, ttble, tuble, tvble, twble, txble, tyble, tzble, tbale, tbble, tbcle, tbdle, tbele, tbfle, tbgle, tbhle, tbile, tbjle, tbkle, tblle, tbmle, tbnle, tbole, tbple, tbqle, tbrle, tbsle, tbtle, tbule, tbvle, tbwle, tbxle, tbyle, tbzle, tblae, tblbe, tblce, tblde, tblee, tblfe, tblge, tblhe, tblie, tblje, tblke, tblle, tblme, tblne, tbloe, tblpe, tblqe, tblre, tblse, tblte, tblue, tblve, tblwe, tblxe, tblye, tblze, tblea, tbleb, tblec, tbled, tblee, tblef, tbleg, tbleh, tblei, tblej, tblek, tblel, tblem, tblen, tbleo, tblep, tbleq, tbler, tbles, tblet, tbleu, tblev, tblew, tblex, tbley, tblez
Il ne te reste alors qu'à tester chaque mot dans le dictionnaire.