gpt4 book ai didi

php - 项目排名,使用 Reddit 排名算法按置信度排序

转载 作者:可可西里 更新时间:2023-11-01 12:37:39 25 4
gpt4 key购买 nike

我有兴趣使用这个 ranking class ,基于 Evan Miller 的一篇文章对我拥有的表进行排名,该表有赞成票和反对票。我有一个系统非常类似于 Stack Overflow 的上/下投票系统,用于我正在处理的事件网站,并且通过使用这个排名类别,我觉得结果会更准确。我的问题是如何按“热度”功能排序?

private function _hotness($upvotes = 0, $downvotes = 0, $posted = 0) {
$s = $this->_score($upvotes, $downvotes);
$order = log(max(abs($s), 1), 10);

if($s > 0) {
$sign = 1;
} elseif($s < 0) {
$sign = -1;
} else {
$sign = 0;
}

$seconds = $posted - 1134028003;

return round($order + (($sign * $seconds)/45000), 7);
}

我想每次用户投票时,我的表中都会有一个列,其中包含为新投票重新计算的热度数据,并在主页上按该列排序。但我有兴趣结合上述功能更即时地执行此操作,但我不确定这是否可能。

来自 Evan Miller,他使用:

SELECT widget_id, ((positive + 1.9208) / (positive + negative) - 
1.96 * SQRT((positive * negative) / (positive + negative) + 0.9604) /
(positive + negative)) / (1 + 3.8416 / (positive + negative))
AS ci_lower_bound FROM widgets WHERE positive + negative > 0
ORDER BY ci_lower_bound DESC;

但我宁愿不在 sql 中进行此计算,因为我觉得如果我在多个页面上使用此代码等,这很困惑且难以更改。

最佳答案

访问相应的“帖子”表进行任何操作(读、写、排序、比较等)都非常快,因此依赖数据库是非临时性“最即时”的替代方案数据存储(内存/ session 仍然更快,但逻辑上不能用于存储此信息)。

您应该更加担心构建一个良好的排名算法来提供您想要的结果(您正在提议两个不同的系统,提供不同的结果)并努力使整个代码和代码数据库通信尽可能高效。

原则上,具有迭代简单顺序的小代码为此类情况提供了最快和最可靠的解决方案。示例:

  1. 排名功能(如您提出的第一个或任何另一个建立在你想要的排名规则上)每次调用给出了投票。它写入相应的列“帖子”表(查询越简单越好:您可以创建一个排名系统尽可能复杂,但尽量依赖 PHP而不是查询)。

  2. 每次需要比较帖子时,都会使用简单的 SELECT 读取“帖子”表,按排名对记录进行排序(你可以有各种“评估栏”(例如,赞成票,否决票,进一步考虑);但最好有一个最终排名)。

关于php - 项目排名,使用 Reddit 排名算法按置信度排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15317686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com