我建立了一个网站,让您可以自由添加与Rails相关的宝石,并标记这些宝石。我要添加的下一个功能是宝石排名。我已经考虑了一些常见的系统,比如星星和投票,但已经确定一个简单的系统不能很好地工作。
以下是一些情节,我希望排名算法适用于:
我们可以获得宝石的一些信息:
此信息可能是算法的一部分(连同投票或星标或我们需要从用户收集的任何内容)。
所以我的问题是,你能想到一个能够处理这些场景的好算法(当然不完全是描述它),或者至少能够提供一些好的建议,或者指出我正确的方向。
答案 0 :(得分:3)
在我看来,下载次数不是一个非常有用的仪表。可能的代码片段多年来一直没有工作,但每个月仍有数千人尝试(即下载)。
答案 1 :(得分:2)
http://ruby-toolbox.com/categories.html是一个很棒的网站,可以做类似的事情。他们只是对下载量进行排名,但下载次数最多的IMO并不总是如此。应该显示github等上的活动,因为我不太可能尝试一些没有积极开发的新东西。
我认为下载应该计入某些东西,并且可能在对数范围内衰减。发展活动也应该算在内。此外,您还可以添加用户评论并将其合并。我认为这些指标可以通过一定的权重进行调整,以查看最合适的排名。也许你也可以邀请作者写出他们的宝石提供的东西,而其他人不在同一个班级。
我认为处理突然无法处理新框架等的宝石就是有一个downvote按钮,用户可以通过downvote按钮从您提供的预设清单中提供理由。如果宝石突然开始投票,没有最近的活动,并且下载量正在减少,那么它将会下降。然后,您可以使用向下箭头指示它正在向下趋势。可以列出最受欢迎的原因。