我目前正在为我计划很快推出的新网站编写算法。索引页面将显示当前“ HitTest 门”的帖子。 要考虑的变量是:
- 票数
- 帖子的争议程度(# 在 0-1 之间)
- 发布时间
我提出了两种可能的算法,第一种也是最简单的是:
controversial * (numVotesThisHour / (numVotesTotal - numVotesThisHour)
Denom = numVotesTuisHour if numVotesTotal - numVotesThisHour == 0
最高的数字是 HitTest 的
我的另一个选择是使用类似于 Reddit 的算法(除了分数会随着时间的推移而降低):
[controversial * log(x)] - (TimePassed / interval)
x = { numVotesTotal if numVotesTotal >= 10, 10 if numVotesTotal < 10
最高的数字是 HitTest 的
第一个算法将允许较旧的帖子在未来再次变得“热门”,而第二个则不会。
那么我的问题是,您认为这两种算法中哪一种更有效?你认为哪一个会展示当下真正“热门”的话题?你能想出使用其中一个的优势或劣势吗?我只是想确保我没有忽略任何内容,以便我可以确保内容尽可能相关。任何反馈都会很棒!谢谢!
最佳答案
我是不是漏掉了什么。在第一个公式中,分母中有 numVotesTotal。所以一直以来更高的票数意味着它永远不会那么热,即使它不是那么旧。
例如,如果我有两个帖子 - P1 和 P2(同样有争议)。假设 P1 的 numVotesTotal = 20,P2 的 numVotesTotal = 1000。现在在过去的一个小时内,P1 获得 numVotesThisHour = 10,P2 获得 numVotesThisHour = 200。
根据算法,P1 比 P2 更有名。这对我来说没有意义。
关于algorithm - 对我网站排名算法选项的反馈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13365539/