6

私たちのより大きなサイトの 1 つには、ユーザーがウェブサイトの所有者に質問を送信できるセクションがあり、その質問は彼のスタッフによって個人的に評価されます。同じ質問が頻繁に表示される場合は、この特定の質問を FAQ に追加できます。

類似の質問が 1 日に何十件も寄せられるのを防ぐために、このサイトの「関連する質問」と同様の機能を提供したいと考えています (スタック オーバーフロー)。

この種の機能を構築するには、どのような方法がありますか? どうにかして質問を評価し、よくある質問の質問と比較する必要があることはわかっていますが、この比較はどのように機能しますか? キーワードは抽出されますか。

このサイトは LAMP スタック上に構築されているため、これらの技術が利用可能であることは言及する価値があるかもしれません.

ありがとう!

4

5 に答える 5

4

このようなものを自分でゼロから構築したい場合は、TF/IDF: Term Frequency / Inverse document frequency と呼ばれるものを使用します。つまり、非常に単純化するために、コーパス全体では珍しい単語をクエリで見つけ、それらの単語を含むドキュメントを見つけます。

つまり、誰かが「象を買いたい」という単語を含むクエリを入力した場合、クエリ内の単語のうち、「象」という単語はおそらくコーパスで最も一般的でない単語です。次はおそらく「買う」です。したがって、ドキュメント (この場合は以前のクエリ) に「elephant」という単語がどれだけ含まれているか、次に「buy」という単語がどれだけ含まれているかによってランク付けします。「I」、「to」、および「an」という単語は、おそらく停止リストに含まれているため、完全に無視します。一致する単語の数によって各ドキュメント (あなたの場合は前のクエリ) をランク付けし (逆のドキュメント頻度に応じて重み付けします。つまり、一般的でない単語の重みを高くします)、上位のいくつかを表示します。

私は単純化しすぎており、正しく理解するにはこれを読む必要がありますが、単純な方法で実装するのはそれほど複雑ではありません。ウィキペディアのページは、開始するのに適した場所かもしれません。

http://en.wikipedia.org/wiki/Tf%E2%80%93idf

于 2010-02-02T08:48:02.540 に答える
3

Stack Overflow の仕組みはわかりませんが、タグを使用して関連する質問を見つけていると思います。たとえば、この質問では、上位のいくつかの関連する質問すべてにタグが付いていrecommendation-engineます。レアなタグでの一致は、一般的なタグでの一致よりも多くカウントされると思います。

また、用語の頻度 - 逆ドキュメントの頻度を確認することもできます。

于 2010-02-02T08:26:51.620 に答える
1

LAMP スタックで作業しているとすれば、MySQL の全文検索機能を十分に活用できるはずです。これは TF-IDF プリンシパルで機能すると信じており、必要な「関連する質問」を作成するのが非常に簡単になるはずです。

于 2010-02-02T10:29:59.187 に答える
1

O'Reilly の優れた本、Programming Collective Intelligenceがあります。この本では、グループの発見、推奨事項、およびその他の同様のトピックが取り上げられています。記憶によれば、例は Perl で書かれていますが、PHP のバックグラウンドがあるため理解しやすく、数時間以内にあなたが求めているものに似たものを構築することができました。

Yahoo には、 http: //developer.yahoo.com/search/content/V1/termExtraction.html にキーワード抽出 Web サービスがあります。

于 2010-02-02T10:49:00.487 に答える
0

コーパスが既存の FAQ エントリのタイトル/テキストであるスペル チェックを使用できます。

「もしかして」をどのように実装しますか?

于 2010-02-02T08:29:56.920 に答える