【发布时间】:2011-02-17 00:32:57
【问题描述】:
我有一个应用程序,用户可以:
- 撰写有关产品的评论
- 将 cmets 添加到产品中
- 赞成/反对投票评论
- 上/下投票 cmets
每个赞成/反对票都记录在数据库表中。
我现在要做的是创建过去 4 周内最活跃用户的排名。 当然,好的评论应该比好的 cmets 更重要。但也例如10 个优秀的 cmets 的权重应该超过一篇好评。
例子:
// reviews created in recent 4 weeks
//format: [ upVoteCount, downVoteCount ]
var reviews = [ [120,23], [32,12], [12,0], [23,45] ];
// comments created in recent 4 weeks
// format: [ upVoteCount, downVoteCount ]
var comments = [ [1,2], [322,1], [0,0], [0,45] ];
// create weight vector
// format: [ reviewWeight, commentsWeight ]
var weight = [0.60, 0.40];
// signature: activties..., activityWeight
var userActivityScore = score(reviews, comments, weight);
... update user table ...
List<Users> users = "from users u order by u.userActivityScore desc";
一个公平的评分函数应该是什么样子的?
score() 函数的实现会是什么样子?如何为函数添加权重g,以便评论权重更重?例如,如果添加图片投票,这样的功能会是什么样子?
【问题讨论】:
标签: algorithm function social-networking scoring