2010-12-19 8 views
0

可能性の重複:
How do you implement a “Did you mean”?Googleのスタイルを実装するにはどういう意味ですか?

あなたのアプリが有名な人の名前で明らかにスペルミスをチェックするためにできるようになるWebサービスや公共のAPIがあります:

Mikul Jaxon 
Prinz Charlz 
Britnie Speers 

これはあなた自身のデータベースを構築する必要がありますか?

Googleの「Did you mean ... ?」のような機能があります。スペルミスを訂正したときに修正が提案されます。私の場合、私は有名人のために必要なだけです。

+0

有名人のスペルチェッカーは非常に特殊な要件です。 Peter Norvigのアルゴリズムを見てみましょう:http://norvig.com/spell-correct.html – McDowell

+0

Mikul Jaxonは、Googleによって選ばれることはありません。少数の文字で異なる単語のみを検索します。 – Skilldrick

答えて

0

あなたはapache solr/luceneの奇妙な検索をチェックしてください。 ファジー検索やオートコンプリートはより速くなるので、より適切なapporachです。

しかし、私が見た中で最も簡単で実用的な実装は、関連性によって重み付けされたトークンdocumenstのインデックスを構築することでした。

この場合、そのテーブルに対して "or-conjunction"でクエリを実行し、文字列が構成するトークンの数を取得できます。

Levenshtein_distanceを計算することで、クエリ内の単語に対応する単語を簡単に判断できます。

関連する問題