2

「最後に訪れたサイトは?」などの質問をするプログラムを考えてみましょう。答えは「stackoverflow」です。ユーザーはこの質問をされ、「stakovervlow」または「overflowstack」と答えます。それを正解としてカウントするには、プログラムが必要です。

通常の文字列を比較するには StringCompare クラスを使用しますが、この場合は機能しません。インターネットを検索したところ、SOUNDEX に関するいくつかの記事と、文字列内のすべての文字を比較して類似度を計算するアルゴリズム (ダメラウ レーベンシュタイン距離など) を見つけましたが、何が最適かはよくわかりません。

これを達成するためのクラスが.netにあるかどうか、またはユーザーの回答を正しい回答と比較するための最良の方法は何ですか?

4

2 に答える 2

1

ドキュメントからSpellCheck クラスがあります。辞書にない「StackOverflow」などの単語についても、カスタマイズされた辞書を追加できます。

于 2012-06-25T16:21:14.343 に答える
0

あなたがやろうとしていることはかなり難しいです。簡単ですが退屈な方法は、よくあるスペルミスをリストする辞書または表をデータベースに作成することです。

難しいのは、自然言語処理を行うコードを作成しようとすることです。これに対する最も成功した 2 つの取り組みは、Google と IBM の Watson スーパーコンピューターによるセマンティック検索です。彼らの方法論をすぐに真似することはないと思います。

于 2012-06-25T17:21:46.603 に答える