Estou trabalhando em um aplicativo de OCR em que preciso selecionar uma opção com base na entrada de texto do usuário.
Ex:
Available Options:
["python", "ruby", "java", "clojure", "haskell"]
Input: kava
Output: java
Input: ruby
Output: ruby
Input: clujuro
Output: clojure
etc..
meu aplicativo é baseado em python, já existe um algoritmo para resolver esse problema.
python
algorithms
strings
Shiv Deepak
fonte
fonte
Respostas:
Isso é feito por algoritmos da categoria " correspondência aproximada de seqüência de caracteres ". Uma medida comum para comparar duas cordas é chamada de distância de Levenshtein . Há uma implementação python disponível aqui .
Basicamente, você compara a entrada com as saídas possíveis e escolhe aquela com a menor distância para a saída desejada.
O artigo da Wikipedia também menciona vários outros algoritmos que você pode tentar caso precise de algo mais específico.
fonte
Você poderia usar o Google "você quis dizer?" API ...
http://pygoogle.sourceforge.net/dist/doc/public/google-module.html#doSpellingSuggestion
fonte