我正在编写一个电子商务引擎,有一个声誉的组成部分。我希望用户能够审查和评级的项目,并能够评级的审查。
根据“最佳”评论对条目进行排序的最佳算法是什么?它必须根据给出最好评论的人所获得的质量评论的数量进行排名。我不确定如何将其转换为算法。
例如,我需要能够比较一个来自许多低声誉的人的5星的项目与另一个来自一些高声誉的人的3星的项目。
更复杂的是,一些用户可能写了许多评论,其他人的评分很高/很低,而其他用户可能写了很少的评论,但其他用户的评分非常高。在这种情况下,哪个用户的声誉更好?
发布于 2011-12-02 02:34:23
如果您知道用户的声誉,那么可以为每个用户使用一个UserScore,比如the one that Stackexchange uses。
UserScore = Reputation >= 200 ? 0.233 * ln(Reputation-101) - 0.75 : 0 + 1.5然后,通过将用户得分与星号作为权重进行求和,得出项目的值:
ItemScore = \sum_i UserScore_i * Weight[Star_i]其中i是投票的索引,Weight是涉及明星权重的数组。例如,对于5星的投票系统,它可以是[-2 -1 0 1 2]。需要注意的一点是,如果您希望仅有3颗星的条目位于未评估的条目之前,则可以将3颗星的权重更改为+eps。
您可以根据需要更改200和所有其他常量/权重。
发布于 2011-12-02 02:27:02
我会试着回答你的问题:
我认为诀窍是衡量不同声誉的人,例如:
一个名誉度为2的人的票数是另一个名誉度为1的人的票数的3倍。不同名誉度的人之间的关系真的取决于你,以及你有多想让总体评分依赖于名誉度较低的人的评分。与低声誉的人的投票相比,高声誉的人的投票权重越高,由于低声誉的投票,整体声誉的变化就越小。
所以每个人都有一个权重,比如说w_i,w_j等等。然后,综合评分将是所有评分的加权平均值:
两个不同人的总评分示例i和j= (w_i*r_i)+(w_j*r_j)/(w_i + w_j)
其中r_i、r_j分别是人物i和人物j的评分。
为了得到每个人的权重值,例如,你可以取这个人的星数。
一个好的资源应该是下面的页面:http://en.wikipedia.org/wiki/Weighted_mean
https://stackoverflow.com/questions/8346249
复制相似问题