我正在写一个具有声誉组件的电子商务引擎。我希望用户能够查看和评价项目,并能评价评价。排名/声誉算法
根据“最佳”评论对物品进行分类的最佳算法是什么?它必须根据获得最佳评论的人的质量评论数量进行排名。我不知道如何将其转换为算法。
例如,我需要能够将具有低声誉的多个人的5星级的物品与具有高信誉的几个人中的3星级的物品进行比较。
为了增加复杂性,一些用户可能写了很多评论,其他人评价高/低,其他用户可能撰写了很少评论,但被其他用户评为非常高。哪种用户在这种情况下更有信誉?
我正在写一个具有声誉组件的电子商务引擎。我希望用户能够查看和评价项目,并能评价评价。排名/声誉算法
根据“最佳”评论对物品进行分类的最佳算法是什么?它必须根据获得最佳评论的人的质量评论数量进行排名。我不知道如何将其转换为算法。
例如,我需要能够将具有低声誉的多个人的5星级的物品与具有高信誉的几个人中的3星级的物品进行比较。
为了增加复杂性,一些用户可能写了很多评论,其他人评价高/低,其他用户可能撰写了很少评论,但被其他用户评为非常高。哪种用户在这种情况下更有信誉?
如果您知道用户的声誉,那么你可能会使用为每个用户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和所有其他常数/权重。
我会尽量回答你的问题:
我认为,关键是要加权出不同信誉的人,比如:
一个人以名誉2的投票是3倍的因为另一个声誉较低的人的投票权很重。不同声望的人之间的关系真的取决于您,您希望总体评级取决于信誉低的人的评分。与声誉较低的人投票相比,声誉较高的人的投票权重越高,则由于低声誉投票而导致整体声誉变化越小。
因此,每个人都会有一个权重,让我们说w_i,w_j等....然后在所有的评价将全部的加权平均值:从两个不同的人总评投票的
例如我并且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
大多数网站都认为单一乐谱本质上太不健全,不透明,这让我感到困惑。相反,你会看到所有的地方,这些项目有'平均评分'和'票数'。然后由用户决定是否想要在5票“完美”的项目上赌博,或者是'1000'票选'相当好'的项目。 –
谢谢,托马斯。显示两个值是肯定有用的。但是,我仍然需要对搜索结果的单个列表中的项目进行排序。我是否应该从这两个值中得出分数并将其用于排序(但不用于显示)? –