2012-09-07 10 views
14

私はYahoo!に非常に似たウェブサイトで働いています回答:ユーザーは質問を投稿し、他の人からの回答を待ってより良い回答を選ぶことができます。最高のユーザーを特定するために、これらの機能を備えた評判システムがあります。評価/評判の良いシステムですか?

  • ユーザーは、アップフォワードまたはダウンボートできます。
  • 回答をアップまたはダウンボートできます。
  • トピックごとに「経験」スコアがあり、回答したすべての質問で増加します。

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

これまではCoefficient * (UpVotes/TotalVotes)のようなものを使って自分でやってみましたが、線形すぎました。私は他の方法も試しましたが、動作しませんでした(ベイジアンアルゴリズム)。現時点では、アルファ版では、Trustability = sqrt(GoodAnswers)を使用しています。

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

+8

興味深いことに、あなたはYahooと類似していると言っていますので、頼んでください:) – mishadoff

+2

あなたはupvoting/downvotingというユーザーの信頼性について考えてみたいです。信頼できないユーザーは、信頼できるユーザーよりも他のユーザーの信頼性が低くなる必要があります –

+1

SOの場合と同様に、各ユーザーにupvoteごとのポイントを与えることができます。評判が数値であるように作業してください。 –

答えて

6

ランキングシステムには膨大な数のアプローチがあります。タイムディメンション、アップ/ダウン投票数、upvotersとdownvotersの評価、ヒット、あなたが想像することができるほとんどすべてを使用しています。

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

私の頭に浮かんだ最も単純な解決策は、個々のユーザーのアップヴォートの重量を計算することです。つまり、より信頼できるユーザーが別のユーザーよりも影響力があります。例えば。評価100のupvoteを持つユーザーは、評価-100の2人のユーザーのdownvoteよりもはるかに優れています。しかし、これは-100人のユーザーからの100以上の下降音よりも優れているとは言えません。それを試してみてください。

+0

それは間違いなく良い答えです。私は時間の次元を考慮しません、主に効率の問題のために:あまりにも多くのメモリが使用されています。 私は2番目のアイディアを選んでいます。それは記憶や計算を必要とせず、次にこれを使用すると思います。 (ちょっと考えてみると、他のユーザーの考え方が分かりやすくなっています。) –

1

Googleのページランクと同じアイデアを使用することができます。ユーザーがあなたをアップアップしたり、質問/回答をお気に入りとして追加すると、信頼性の向上はこのユーザーの信頼性によって決まります。

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

+0

[PageRankが特許されている] www.google.com/patents/US6285999)を参照してください。 – amit

+0

PageRankの正確な作業はほとんど誰も知らないことに注意してください。 –

0

システムのようなELO/Glickoを使用してください。すべてのユーザーは標準値で始まり、1対1の結果のようにダウンボートまたはアップ投票を検討します。

+0

これは素晴らしいスタートですが、それでもアルゴリズムが必要です。「マッチ」に加算/減算するポイント数を知る必要があります。 –