14

私は Yahoo! によく似た Web サイトに取り組んでいます。回答: ユーザーは質問を投稿し、他の人からの回答を待って、より良い回答を選ぶことができます。最適なユーザーを識別するために、次の機能を持つ評価システムがあります。

  • ユーザーに賛成票または反対票を投じることができます。
  • 回答に賛成票または反対票を投じることができます。
  • 各トピックには「経験」スコアがあり、質問に回答するたびに増加します。

可能であれば、これらすべての要素を組み合わせて、各回答の「信頼性」スコアを与えるアルゴリズムを見つけたいと思います。

これまで、 の製品などを使って自分でやってみましたがCoefficient * (UpVotes / TotalVotes)、直線的すぎました。他の方法も試しましたが、うまくいきませんでした (ベイジアン アルゴリズム)。現在、アルファ版では、 を使用してTrustability = sqrt(GoodAnswers)います。

注: アルゴリズムは個別である必要があり (平均や合計などのデータを取得するためにデータベース全体をスキャンする必要はありません)、可能であれば高速である必要があります。これを PHP-MySQL に実装します。

4

3 に答える 3

6

ランキングシステムには膨大な数のアプローチがあります。時間次元、賛成/反対投票数、賛成票と反対票の評価、ヒット数、および想像できるほとんどすべてを使用します。

Redditにランキング システムに関する良い記事があります。

私の頭に浮かんだ最も簡単な解決策は、個々のユーザーの賛成票の重みを計算することです。これは、より信頼できるユーザーが他のユーザーよりも影響力があることを意味します。たとえば、評価 100 のユーザーは、評価 -100 の 2 人のユーザーからの反対票よりも確実に優れています。しかし、これが -100 人のユーザーからの 100 の反対票よりも優れているとは言えません。それを実験してみてください。

于 2012-09-07T15:11:12.463 に答える
1

Google ページ ランクと同じ考え方を使用できます。ユーザーがあなたに賛成票を投じるか、質問\回答をお気に入りとして追加すると、信頼性の向上はこのユーザーの信頼性に依存します。

http://en.wikipedia.org/wiki/PageRank

于 2012-09-07T15:06:08.083 に答える
0

ELO/Glicko のようなシステムを使用します。すべてのユーザーは標準値から始めて、1 対 1 の試合の結果と同様に反対票または賛成票を検討します。

于 2012-09-07T15:09:03.727 に答える