Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Trouver sur des mots "se ressemblent"

3 réponses
Avatar
Laurent Claessens
Bonjour


est-ce qu'il y a un moyen de retrouver dans une liste de strings les
éléments qui ressemblent à un mot donné.

Le but étant de trouver des fautes de frappes (les correcteurs
d'orthographe font ça tout le temps).

Exemple :

J'ai "pore" (manque un "i") et je voudrais retrouver dans la liste
["pomme","poire","prune"]

Je voudrais donc un truc qui donne pour "égal" deux chaînes qui
diffèrent d'une lettre manquante, deux lettres inversée, une ou deux
lettres mal tapées ...


Est-ce que ça existe tout cuit ?


Bonne journée
Laurent

3 réponses

Avatar
Alain Ketterlin
Laurent Claessens writes:

Je voudrais donc un truc qui donne pour "égal" deux chaînes qui
diffèrent d'une lettre manquante, deux lettres inversée, une ou deux
lettres mal tapées ...



http://en.wikipedia.org/wiki/Levenshtein_distance

-- Alain.
Avatar
Alain Ketterlin
Laurent Claessens writes:

Je voudrais donc un truc qui donne pour "égal" deux chaînes qui
diffèrent d'une lettre manquante, deux lettres inversée, une o u deux
lettres mal tapées ...



http://en.wikipedia.org/wiki/Levenshtein_distance



Pardon, mon message est parti un peu vite. Il existe un une version
python à

http://code.activestate.com/recipes/576874-levenshtein-distance/

Et sûrement d'autres.

-- Alain.
Avatar
alain31
Regarde la bibliothèque difflib, très efficace pour ce genre de
choses.