4

私たち全員がGoogleで見てきましたが、クエリを入力してタイプミスをすると、Googleはクエリのより適切なバージョンを提案します(これはほとんどの場合正しいです)。今、彼らはそれをどのように行うのですか?私が考えることができる1つの可能な方法は、指定された文字列から編集距離1にある他のすべての文字列を見つけ、それらのいずれかがより高い値の'searched`属性を持つ文字列を返す場合です(バックエンドDBからのものである可能性があります。インデックス付けされた各クエリ用語には、指定された文字列よりもその用語がクエリで出現する頻度に基づいて重みが関連付けられている場合、その文字列が提案されます。何も見つからない場合は、編集距離が2の文字列が検索され、たとえば5になるまで、SEはこの文字列ユーザーが探している文字列である可能性があると判断し、対応する検索結果を返します。

これで、特定の文字列から特定の編集距離にある文字列を見つけることができますか?それはこのプロセスにとってどれほど効率的でしょうか?これを行うためのクールなアルゴリズムはありますか?

4

2 に答える 2

2

PeterNorvigの興味深い記事「スペルコレクターの書き方」で「どういう意味ですか」がどのように機能するかについて説明しています

于 2012-10-15T14:27:29.630 に答える
1

これはもちろん推測ですが、確かに、Googleには正しい単語を推測するための膨大な統計的基盤があります。文脈は、他の言葉に依存する別の要因になる可能性があります。

したがって、私の推測では、彼らが使用するアルゴリズムは、最初にすべての単語に基づいて可能性のあるコンテキストを決定し、次に、指定されたコンテキストで正しい単語のタイプミスのバリアントを統計的に検索します。文脈(一言)がない場合、彼らはおそらく類似している可能性のあるものを検索します。

さらに、GoogleはMySQLベースのデータベースを使用しているため、ボーカルに基づいて類似しているように聞こえる単語を一覧表示するSOUNDSLIKE機能を使用することもできます。

于 2012-10-14T22:53:01.437 に答える