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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top