7

私は空港名のリストを持っていますが、ユーザーは1つの空港名を入力して処理することができます。スペルミスのある単語を検出する

スペルミスのある名前を処理し、提案のリストを提示しますか?

+0

http://en.wikipedia.org/wiki/Fuzzy_string_searching –

答えて

7

Levenshtein distancesを参照して、特定のユーザー入力に対して正しい名前を一致させてください。

+3

Levenshtein距離は計算にはかなりかかりますが、O(n^2)、辞書内のすべての単語のLevenshtein距離を計算するのは非スターターです。 – Wedge

+3

この場合の辞書は、空港の一覧にすぎません。世界中には数百の有名な空港しかありません。 – SingleNegationElimination

+0

@Wedge辞書をハッシュしても必ずしも時間の複雑さが軽減されるわけではありませんが、かなり助けになります。 – Ryan

0

ユーザーが自分でタイプするのではなく、空港名のリストから選択する方が良い場合があります。そのようなミスは許されません。

0

これはすぐには役に立ちませんが、正しい名前を入力したときにタイプミスを追跡して最終的に入力する名前を確認できます。あなたは最も一般的なタイプミスを追跡し、最良のオプションを提供することができます。

1

コードにスペルチェックを使用します。単語のリストには、空港の正しいスペルのみが含まれている必要があります。

これはこれを行うには適していません。オートコンプリートオプションを提供するコントロールか、他の誰かが提案したようにドロップダウンする必要があります。

技術がサポートしている場合は、AJAXを使用してください。

0

JavaScriptのオートコンプリートで入力ボックスを使用すると、Kevinの提案に加えて、両方の世界の中で最も良いかもしれません。このようjquery autocomplete

編集など:デンマークの私を打つ:(

+0

downvoteの理由は? – Jayrox

+0

私はdownvoteを削除しようとしましたが、これを禁止しています。主な理由は:神のために、誰もjquery/JavaScript/HTMLで書いているわけではありません。言語にとらわれない人々、言語にとらわれない者.. –

+0

単純な解決策を求める人もいます。簡単な作業のためのシンプルなソリューションを提供しました。あらゆる問題には、それを解決するための複数のルートが用意されています。 – Jayrox

0

あなたが使用することができ、既存のスペルチェックライブラリがあるかもしれませんもこの種のものを行うには、コードが非自明であるあなたがしたいならば。これを自分で書き、あなたはdictionary trie'sで見たいと思うかもしれません。仕事も

一つの方法は、あなたがより高いパフォーマンスのためにキャッシュする可能性が考えられるエラーの単語とその修正の膨大なリストを(ここでimplementation in Pythonだ)、生成することである。

1

私はそれがあなたの質問ではないことを知っていますが、これは正しい空港を得ることが重要なチケットを予約する)、あなたが正しいものを持っていることを確認するための確認段階が必要な場合があります。たとえば、wrong Sydneyのチケットを購入した場合があります。

関連する問題