Detectar palavras mal soletradas
-
22-08-2019 - |
Pergunta
Eu tenho uma lista de nomes de aeroporto e meus usuários têm a possibilidade de introduzir um nome do aeroporto para selecioná-lo para processamento futher.
Como você lidaria com nomes mal escritos e apresentar uma lista de sugestões?
Solução
Olhe para cima Levenshtein distâncias para corresponder a um nome correto contra uma determinada entrada do usuário.
Outras dicas
http://norvig.com/spell-correct.html
faz algo parecido levenshtein mas, porque ele não percorrer todo o caminho, a sua mais eficiente
verificação Empregar feitiço em seu código. A lista de palavras deve conter apenas grafias corretas de aeroportos.
Esta não é uma ótima maneira de fazer isso. Você deve ou ir para um controle que fornece auto opção completa ou um drop-down como alguém sugeriu.
Use AJAX se seus suportes tecnológicos.
Eu sei que não é o que você pediu, mas se esta é uma aplicação onde a obtenção do aeroporto direito é importante (por exemplo, a reserva de bilhetes), então você pode querer ter uma etapa de confirmação para ter certeza de que o caminho certo. Houve casos de pessoas recebendo bilhetes para o errado Sydney , por exemplo.
Pode ser melhor deixar o usuário selecionar a partir da lista de nomes de aeroporto em vez de deixá-los digitar seu próprio. Não há erros podem ser feitas dessa forma.
Enquanto isso não vai ajudar imediatamente, você pode manter o controle de erros de digitação, e ver qual nome que finalmente entrar quando um nome correto é inserido. Dessa forma, você pode acompanhar erros mais comuns, e oferecer as melhores opções.
Adicionando à sugestão de Kevin, que poderia ser uma melhor de dois mundos, se você usar uma caixa de entrada com autocomplete javascript. tais como jquery autocomplete
edit: batida danish me: (
Pode haver uma biblioteca de verificação ortográfica existente você pode usar. O código para fazer esse tipo de coisa bem é não-trivial. Se você quer escrever este você mesmo, você pode querer olhar em dicionário de trie .
Um método que trabalho pode é apenas para gerar uma enorme lista de palavras possíveis de erro e suas correções (aqui está um aplicação em Python ), que você pode armazenar em cache para um desempenho maior.