2

特定のスレッドがフォーラムでどの程度「ホット」であるかを判断する方法を考え出そうとしています。どのような基準を使用しますか?その理由は何ですか? これらをどのように組み合わせて、辛さのスコアを出すのでしょうか?

私が考えている基準は次のとおりです。

  • 何回返信
  • 最後の返信からどれくらい経ったか
  • 返信間の平均時間

このアルゴリズムが解決しなければならない問題:

  • 500 件の返信があるスレッドは、最後の返信が 1 年以上前でない限り、明らかにホットです。
  • 1 秒前に返信された 500 件の返信があるスレッドは、500 件の返信に達するまでに 4 年かからない限り、明らかにホットです。
  • 過去 4 分間で 15 件の返信があるスレッドは非常にホットです!

アイデア、考え、または完全な解決策はありますか?

4

7 に答える 7

2

Jeff Atwood は、他の「ホットな」アルゴリズムに関する大量の情報とともに、これについて良い質問をしています。それらのいずれかを使用して、好みに合わせて調整することをお勧めします。

于 2008-12-19T14:51:10.787 に答える
1

最も単純なアルゴリズム: Y から X を超える返信があった場合、それはホットです。

スケールするものを好む場合は、時間 y 以降の返信数を数えてください。より多くの返信は、より多くの熱意を意味します。

于 2008-12-19T14:49:11.603 に答える
0

注意が必要なことの1つは、スレッドを「ホット」にする/維持するために、アルゴリズムを「ゲーム」したいかどうかです。実際、あなたは彼らがそうするだろうとほとんど仮定することができます。

これを思いとどまらせるためにあなたがしなければならない最低限のことは、異なる人々からの返事だけを考慮することです。

于 2010-04-16T05:44:40.897 に答える
0

ここでは、振幅(または二乗平均平方根)を使用して熱さを測定することで、おそらく波が減少するモデルを作成できると考えていました。時間が経つにつれて、波は小さくなっていくので、返事が遅くなっても少し騒がしいだけです。

実際には、これには多くの計算が必要だと思います。キャッシングをうまく利用して計算を高速化できます。

ちょうど私の2セント。

于 2008-12-19T14:48:58.357 に答える
0

要するに、「熱さ」の対数減衰が最も自然であることがわかりました。

于 2008-12-19T14:50:35.577 に答える
0

他の質問/回答へのリンクを投稿してくれた人に感謝します。残念ながら、これらの方程式は、私のセットアップで可能なことよりも多くのことを考慮に入れています (例: 投票、著者の評判など)。

それをいじった後、当分の間使用するこの方程式を思いつきました:

log10($numOfReplies * 20000 / pow($timeSinceLastPost, 1.3))

それはまだいくらかの仕事を使うことができます。たとえば、非常に人気があるが古いスレッドがある場合、そのスレッドのホットさは低くなりますが、1 人のユーザーがそれに返信すると、そのスレッドは数日または数週間トップに戻ります。

于 2008-12-19T16:16:08.853 に答える
0

一種の指数関数的減衰モデルを使用しないのはなぜですか。すべての投稿のスレッドのホット度 = sum( k^(投稿からの時間) )。これには、更新と計算が非常に簡単であるという利点があります。k と時間測定の単位をいじる必要があります (k は < 1 である必要がありますが、それにかなり近い)。

現在のホット度 = 前回の投稿時のホット度 * k^(前回の投稿からの時間)。
新規投稿後の辛さ = 現在の辛さ + 1

于 2008-12-19T16:33:02.143 に答える