gpt4 book ai didi

php - 人气算法

转载 作者:可可西里 更新时间:2023-11-01 07:29:32 26 4
gpt4 key购买 nike

我想用上传的“ HitTest 门”插图填充我的用户提交插图网站的主页。

以下是我可用的措施:

  • 有多少人喜欢该插图
    • votes 表格包括投票日期
  • 上传插图时
    • 插图 表有创建日期
  • 评论数(目前最多评论总数约为 10 条)
    • comments 表有评论日期

我四处搜索,但不希望用户权限发挥作用,但大多数算法都包含这一点。

我还需要确定在获取数据的 MySQL 中进行计算是否更好,或者是否应该每隔一小时左右有一个 PHP/cron 方法。

我只需要 20 个插图来填充主页。我不需要为此数据进行任何类型的分页。

我如何根据选票权衡年龄?一个提交较少的网站肯定需要较少的添加日期权重吗?

最佳答案

许多使用某种类型的人气排名的网站通过使用标准算法来确定分数,然后随着时间的推移永远衰减。我发现对于流量较少的网站来说效果更好的是一个乘数,它可以为新内容/事件提供奖励 - 它本质上是相同的,但分数在您选择的一段时间后停止变化。

例如,这是您可能想尝试的伪示例。当然,您需要根据自己对网站的体验调整分配给每个类别的权重。评论很少见,但与收藏/投票相比,用户需要付出更多努力,因此他们可能应该获得更多权重。

score = (votes / 10) + comments  
age = UNIX_TIMESTAMP() - UNIX_TIMESTAMP(date_created)

if(age < 86400) score = score * 1.5

这种方法会为过去一天上传的新内容提供奖励。如果您只想以类似的方式处理最近收藏或评论过的内容,您可以在查询中添加一些 WHERE 约束,从数据库中获取分数。

实际上有两个重要原因不即时计算此排名。

  1. 要求您的数据库获取所有这些数据并对每个页面加载进行计算只是为了重新排序项目会导致昂贵的查询。
  2. 可能是一个较小的陷阱,但如果您在网站上的事件量相对较小,则排名的微小变化可能会导致内容发生相当大的变化。

这让您要么定期缓存结果,要么设置一个 cron 作业来更新一个新的数据库列,其中包含您排名所依据的分数。

关于php - 人气算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/497116/

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