algorithm - 对我网站排名算法选项的反馈

标签 algorithm math ranking

我目前正在为我计划很快推出的新网站编写算法。索引页面将显示当前“ 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/

相关文章:

algorithm - 我需要设计一个算法来返回二叉树中有两个 child 的节点数

java - 在不应该使用整数和 double 时会给出不同的答案

javascript - 如何在Javascript中确定鼠标从A点移动到B点的效率?

algorithm - 秩相关算法

algorithm - 列表排序算法

java - 搜索字符串中的字母并有效地在字母前放置一个 ' 的最佳算法?

java - 如何用特定字符替换 2 个特定字符

c - 如何确定同一条线上的最大点数?

python - Project Euler #4 算法的可能优化

Python Trueskill (ELO) 分数下降