3

asp.net/c#を使用して、Googleの「Didyoumean」のような機能を実装したいと思います。ユーザーが「RedSheos」と入力し、検索を押すと、「出力は「赤い靴」を意味しましたか」と表示されます。

これどうやってするの?

4

4 に答える 4

3

ここでの私の答えは(多少異なる主題ですが)、完全に一致しないものについてのアイデアを与えるはずです。言葉がどのように「聞こえる」かを扱うために利用できるいくつかの良いオプション。レーベンシュタインから始めます。

別のアプローチを取ると、SQL Serverフルテキストインデックスは、最小限のコードで不正確なマッチングを提供することもできます。それ自体は必ずしも修正を目的としたものではありませんが、ユーザーの意図を判断することは、必ずしも音声の類似性だけを目的としているわけではありません。

リアルタイムのパフォーマンス(入力時の検索など)を実現するには、ここで説明するデータ構造(トライ、またはそのハイブリッド)を検討してください。

于 2013-02-28T08:28:11.923 に答える
3

スペルチェッカーと辞書が必要です。NHunspellから始めることをお勧めします。

于 2013-02-28T08:18:52.337 に答える
3

Trieデータ構造を確認します。ここを参照してくださいTrie

スペルチェッカーのほとんどは、オートコンプリート機能を実装する必要がある場合にも、ある種のTrieを実装します。また、Trieについて考えることもできます。

以下のコードレビューstackexchangeの質問を参照してください

コードレビュートライ

于 2013-02-28T08:36:50.697 に答える
1

オートコレクト機能からインスピレーションを得てみてください。基本的には、入力したテキストに対してオートコレクトを呼び出し、「解決策」が見つかった場合は、それをdid you mean提案として示します。

これらは役立つかもしれません:

PHPやC#でオートコレクトアルゴリズムはどのように機能しますか?

オートコレクトテキストC#Word

于 2013-02-28T08:18:29.537 に答える