我正在开发一个与Yahoo!非常相似的网站。答案:用户可以发布问题,等待其他人的答案并选择更好的答案。为了识别最佳用户,有一个信誉系统,它具有以下功能:
现在,如果可能的话,我想找到一种算法来结合所有这些因素,并为每个答案给出“可信度”分数。
到目前为止,我尝试使用像Coefficient * (UpVotes / TotalVotes)
的产品这样的东西,但它过于线性。我也尝试了其他方法,但它们没有用(贝叶斯算法)。目前,在Alpha版本中,我正在使用Trustability = sqrt(GoodAnswers)
。
注意:算法必须是个体的(无需扫描整个数据库以获取平均值,总和等数据)并且如果可能的话快速。我将在PHP-MySQL中实现它。
答案 0 :(得分:6)
有很多方法可以对系统进行排名。使用时间维度,上/下投票数,评级人员和评级人员,点击率和几乎任何你能想象到的。
有一篇关于在Reddit中对系统进行排名的好文章。
我脑海中最直接的解决方案是为个人用户计算一些upvote的权重。这意味着更受信任的用户比另一个更有影响力。例如。评级为100 upvote的用户肯定比评分为-100的两个用户的downvote更好。但我们不能说这比100个用户的100个downvotes要好。试着用这个来试验。
答案 1 :(得分:1)
您可以使用谷歌网页排名的相同理念:当用户向您投票或将您的问题\答案添加为收藏时,您的可信度的提高取决于此用户的可信度。
答案 2 :(得分:0)
使用类似ELO / Glicko的系统。每个用户都以标准值开头,然后考虑低估或提升一对一的匹配结果。