作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在编写一个具有信誉组件的电子商务引擎。我希望用户能够对项目进行评论和评分,并能够对评论进行评分。
用于根据“最佳”评论对项目进行排序的最佳算法是什么?它必须根据给出最佳评论的人获得的质量评论数量进行排名。我不确定如何将其转化为算法。
例如,我需要能够比较许多人评价低的 5 星项目与少数人评价高的 3 星项目。
为了增加复杂性,一些用户可能写了很多其他人评价高/低的评论,而其他用户可能写了很少的评论,但其他用户的评价很高。在这种情况下,哪个用户更有信誉?
最佳答案
如果您知道用户的声誉,那么您可以为每个用户使用 UserScore
,例如 the one that Stackexchange uses .
UserScore = Reputation >= 200 ? 0.233 * ln(Reputation-101) - 0.75 : 0 + 1.5
然后您可以通过将用户评分与星星作为权重相加来找到商品的值(value):
ItemScore = \sum_i UserScore_i * Weight[Star_i]
其中 i
是投票的索引,Weight
是包含星星权重的数组。例如,对于 5 星的投票系统,它可以是 [-2 -1 0 1 2]
。需要注意的是,如果您希望只有 3 星的项目排在未评估的项目之前,您可以将 3 星的权重更改为 +eps
。
您可以根据需要更改 200 和所有其他常量/权重。
关于algorithm - 排名/信誉算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8346249/
如何使用命令提示符脚本查看我的声誉? (回复StackOverflow reputation using PowerShell,因为我无聊死了。) 最佳答案 @echo off & setlocal:
我是一名优秀的程序员,十分优秀!