6

Stackoverflow の驚くべき機能を紹介されたとき、今日は質問をするつもりでした。質問のタイトルを書いたとき、stackoverflow はいくつかの関連する質問を提案してくれましたが、すでに 2 つの同様の質問があることがわかりました。それは見事でした!

それから、そのような機能をどのように実装するかを考え始めました。関連性によって質問を並べ替える方法:

  1. 新しい質問と一致する単語数が多い質問
  2. 一致数が同じ場合、単語の順序が考慮されます
  3. タイトルに含まれる言葉ほど関連性が高い

それは単純なワークフローですか、それとも複雑なスコア アルゴリズムですか? おそらく、リコールを増やすためのいくつかのステミングですか?この機能を実装するライブラリはありますか? 他にどのような点を考慮しますか?たぶん、ジェフは自分で答えることができます!これをどのように Stackoverflow に実装しましたか? :)

4

4 に答える 4

3

このようなアルゴリズムを実装する方法の 1 つは、次の手順を使用して「関連性」の重み係数を割り当てるヒューリスティック関数に従って質問をランク付けすることです。

  1. 「新規」質問にノイズ フィルターを適用して、「the」、「and」、「or」など、多数のオブジェクトに共通する単語を削除します。
  2. Web サイトに既に投稿されている質問セットの単語と一致する「新しい」質問に含まれる単語の数を取得します。[あ]
  3. 「新規」質問と利用可能な単語の間のタグ一致の数を取得します。[B]
  4. [A] と [B] に基づいて「関連性の重み」を「x[A] + y[B]」として計算します。ここで、x と y は重みの乗数です (タグ付けの関連性が高いため、[B] により大きな重みの乗数を割り当てます)。単純な単語検索よりも)
  5. 「関連性の重み」が最も高い上位 5 つの質問を取得します。

最適な結果を得るにはヒューリスティックを微調整する必要があるかもしれませんが、うまくいくはずです。

于 2008-09-03T20:39:45.160 に答える
1

あなたの質問は、いくつかの追加の回答があるthis oneに似ているようです。

于 2008-09-04T13:41:54.733 に答える
0

@marcio

申し訳ありませんが、ここで提案できる直接のAPIリファレンスを認識しておらず、Luceneを使用したことはありません。

ただし、GoogleデスクトップはクエリAPIを使用して、関連する検索結果をランク付けして提案していることを認識しています。APIの詳細については、こちらをご覧ください

おそらく他の人がチャイムを鳴らしてあなたを案内するかもしれません。

于 2008-09-03T21:08:20.787 に答える
-1

StackOverflow はいずれオープン ソース化される予定はありませんか? もしそうなら、彼らがそこでどのようにそれをしたかをいつでも知ることができます.

更新:オープン ソース化する可能性があると彼らは言っているようです。彼らがそうしてくれることを願っています。

于 2008-09-03T20:23:58.363 に答える