Je travaille sur une application OCR où je dois sélectionner une option basée sur la saisie de texte utilisateur.
Ex:
Available Options:
["python", "ruby", "java", "clojure", "haskell"]
Input: kava
Output: java
Input: ruby
Output: ruby
Input: clujuro
Output: clojure
etc..
mon application est basée sur python, existe-t-il déjà un algorithme pour résoudre ce problème.
python
algorithms
strings
Shiv Deepak
la source
la source
Réponses:
Cela se fait par des algorithmes de la catégorie " correspondance approximative des chaînes ". Une mesure courante pour comparer deux chaînes est appelée la distance de Levenshtein . Il y a une implémentation python disponible ici .
Vous comparez essentiellement l'entrée aux sorties possibles et choisissez celle avec la plus petite distance à la sortie souhaitée.
L'article de Wikipédia mentionne également divers autres algorithmes que vous pouvez essayer au cas où vous auriez besoin de quelque chose de plus spécifique.
la source
Vous pouvez utiliser le "voulez-vous dire?" De google API ...
http://pygoogle.sourceforge.net/dist/doc/public/google-module.html#doSpellingSuggestion
la source