Php 良好的评级/声誉系统?

Php 良好的评级/声誉系统?,php,mysql,algorithm,rating-system,Php,Mysql,Algorithm,Rating System,我在一个网站上工作,这是非常类似于雅虎!答案:用户可以发布问题,等待其他人的答案,然后选择更好的答案。为了确定最佳用户,有一个声誉系统,该系统具有以下功能: 可以向上或向下投票给用户 一个人可以投赞成票,也可以投反对票 每个主题都有一个“经验”分数,每回答一个问题,这个分数都会增加 现在,如果可能的话,我想找到一个算法来综合所有这些因素,并为每个答案给出一个“可信任性”分数 到目前为止,我试着自己用系数*(upvoces/totalvoces)的乘积这样做,但它太线性了。我也尝试了其他方法,

我在一个网站上工作,这是非常类似于雅虎!答案:用户可以发布问题,等待其他人的答案,然后选择更好的答案。为了确定最佳用户,有一个声誉系统,该系统具有以下功能:

  • 可以向上或向下投票给用户
  • 一个人可以投赞成票,也可以投反对票
  • 每个主题都有一个“经验”分数,每回答一个问题,这个分数都会增加
现在,如果可能的话,我想找到一个算法来综合所有这些因素,并为每个答案给出一个“可信任性”分数

到目前为止,我试着自己用
系数*(upvoces/totalvoces)
的乘积这样做,但它太线性了。我也尝试了其他方法,但都不起作用(贝叶斯算法)。目前,在Alpha版本中,我使用的是
Trustability=sqrt(GoodAnswers)


注意:如果可能,算法必须是独立的(无需扫描整个数据库以获得平均值、总和等数据)和快速的。我将在PHP MySQL中实现这一点。

您可以使用与google页面排名相同的想法:当用户投票给您或将您的问题\答案添加为收藏夹时,您的可信任性的提高取决于此用户的可信任性


使用类似ELO/Glicko的系统。每一个用户都从标准值开始,然后考虑一个一对的匹配结果的投票或投票。使用时间维度、上升/下降投票数、上升和下降投票人的评级、点击率以及几乎任何你能想象到的东西

有一篇关于排名系统的好文章


我想到的最简单的解决方案是计算每个用户的upvote权重。这意味着更受信任的用户比其他用户更有影响力。例如,评分为100的用户向上投票肯定比评分为-100的两个用户向下投票要好。但我们不能说这比-100名用户的100张反对票要好。试着尝试一下。

有趣的是,你说与雅虎相似,所以问:)你可能还想考虑一下用户上下投票的可信任性。不受信任的用户应该比受信任的用户对其他人的信任程度低。你可以在每次投票中给每个用户打分,就像这样。这是一个很好的解释,也是一个很好的争论点,但它确实是一个争论,而不是一个有明确答案的问题。因此,SO并不是它的最佳位置,因此,投票以NC结束,因为
这个问题可能会引发辩论、争论、投票或扩展讨论
这是一个很好的开始,但它仍然需要一个算法:我们需要知道在“匹配”中加/减多少分。这肯定是一个很好的答案。我不考虑时间维度,主要是效率问题:使用的内存太多。我会选择第二个想法:它不需要内存或计算,那么我想我会使用这个。(顺便说一句,这或多或少是其他用户的想法,只是更好地解释了一下。)注意斯坦福大学的观点。注意,几乎没有人知道PageRank的确切工作原理。