Sorting 酒店评论排序的贝叶斯算法
我试图找到一个公式或算法来为一组酒店评论排序最有用的评级 问题是,我在一个确定的地方有三家不同的酒店,它们有以下信息: A酒店:124条评论,平均评级8.6。 B酒店:10条评论,平均8.8级。 酒店C:1000条评论,平均8级 我尝试了这里使用的算法: WR=(v*R+m*C)/(v+m) 但我无法反映出C酒店的“得分”应该更高,因为评论的数量是最大的 如果我能解决这个问题,我想这类问题应该接近:1)C酒店;2) 酒店A和3)酒店B 谢谢大家! 迭戈。-这似乎是一个复制品。似乎要获得正确的顺序,您必须指定一个预定义的否决票数,该否决票数等于一个项目的最大评论数,而不是像我之前所想的那样,将所有项目的总投票数相加,然后除以项目数。在python中:Sorting 酒店评论排序的贝叶斯算法,sorting,bayesian,rating-system,review,Sorting,Bayesian,Rating System,Review,我试图找到一个公式或算法来为一组酒店评论排序最有用的评级 问题是,我在一个确定的地方有三家不同的酒店,它们有以下信息: A酒店:124条评论,平均评级8.6。 B酒店:10条评论,平均8.8级。 酒店C:1000条评论,平均8级 我尝试了这里使用的算法: WR=(v*R+m*C)/(v+m) 但我无法反映出C酒店的“得分”应该更高,因为评论的数量是最大的 如果我能解决这个问题,我想这类问题应该接近:1)C酒店;2) 酒店A和3)酒店B 谢谢大家! 迭戈。-这似乎是一个复制品。似乎要获得正确的顺序
pretend_votes = [1000, 0, 0, 0, 0, 0, 0, 0, 0, 0]
rating = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def score(item_votes):
votes = [iv+pv for (iv,pv) in zip(item_votes,pretend_votes)]
return sum(v*u for (v,u) in zip(votes,rating))/float(sum(votes))