Вопрос

У меня есть список названий аэропортов, и у моих пользователей есть возможность ввести одно название аэропорта, чтобы выбрать его для дальнейшей обработки.

Как бы вы поступили с именами, написанными с ошибками, и представили список предложений?

Это было полезно?

Решение

Посмотри вверх Расстояния Левенштейна чтобы сопоставить правильное имя с заданным пользовательским вводом.

Другие советы

http://norvig.com/spell-correct.html
делает что-то вроде левенштейна, но, поскольку он не проходит весь путь до конца, это более эффективно

Используйте проверку орфографии в своем коде.Список слов должен содержать только правильные варианты написания аэропортов.

Это не самый лучший способ сделать это.Вам следует либо выбрать элемент управления, предоставляющий опцию автозаполнения, либо выпадающий список, как предложил кто-то другой.

Используйте AJAX, если ваша технология поддерживает.

Я знаю, что это не то, о чем вы спрашивали, но если это приложение, в котором важно выбрать правильный аэропорт (напримербронирование билетов) затем вы, возможно, захотите пройти этап подтверждения, чтобы убедиться, что у вас правильный выбор.Были случаи, когда люди получали билеты на неправильный Сидни, например.

Возможно, было бы лучше позволить пользователю выбирать из списка названий аэропортов вместо того, чтобы позволять им вводить свои собственные.Таким образом, никаких ошибок быть не может.

Хотя это не поможет сразу, вы могли бы отслеживать опечатки и видеть, какое имя они в конечном итоге вводят, когда вводится правильное имя.Таким образом, вы сможете отслеживать наиболее распространенные опечатки и предлагать наилучшие варианты.

В дополнение к предложению Кевина, возможно, будет лучшим из обоих миров, если вы будете использовать поле ввода с автозаполнением javascript.такие , как автозаполнение jquery

Редактировать:датчанин победил меня :(

Возможно, вы можете использовать существующую библиотеку проверки орфографии.Код, позволяющий хорошо выполнять подобные действия, нетривиален.Если вы действительно хотите написать это сами, возможно, вам захочется взглянуть на словарь trie's.

Один из методов, который может сработать, - это просто сгенерировать огромный список возможных слов с ошибками и их исправлений (вот реализация на Python), который вы могли бы кэшировать для повышения производительности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top