【问题标题】:How to check whether an item is hot selling如何检查商品是否热销
【发布时间】:2016-12-05 08:03:34
【问题描述】:

如何知道产品是否热销。例如,我想在热销的产品图片旁边显示“热销”图标,如下图所示。 我的想法是计算该产品近7天的销售率,如果结果超过某个值,则该商品可以标记为“热销”

所以

  • 有没有更好的想法可以实现这样的要求。
  • 有什么公式可以计算...
  • 最后我们需要哪些参数来计算最佳结果,例如 访问时间、添加到收藏时间、购买时间等。

提前致谢!!

【问题讨论】:

  • “有什么公式可以计算……” - 你已经描述过了。不清楚你在这里问什么 - 你有一个想法,所以实施它。除此之外,我会说它太宽泛了。
  • @JonSkeet 我知道这太板了,我真的有几分钟要不要问这个问题,但我并没有满足我自己的想法,所以我来这里分享和朋友一起。
  • 如果您知道某个问题过于宽泛,恐怕就不要问了。
  • @JonSkeet 我知道我已经说过我正在考虑是否要问几分钟。如果有人接受问题是板,那么最好不要再说你的问题板。如果您有答案,请,如果没有,请跳过并继续。再次感谢。
  • “如果有人接受问题是板,那么最好不要再说你的问题板。”我是说下次你认为你不应该发帖时——如果你已经接受你的问题超出了可接受内容的指导方针——那就不要。说“我知道我不应该发布这个,但无论如何我都会这样做”根本没有帮助。

标签: java web shopping


【解决方案1】:

嗯,如果你愿意的话,你总是可以在兔子洞里更上一层楼。

首先,只需将最畅销的 10% 左右的商品标记为“热卖”就很容易了。硬编码阈值的一个问题是,如果您的需求发生显着变化,您将不得不不断更新它们。

另一种选择可能是查看Reddit's ranking algorithm 以获得灵感。

# Rewritten code from /r2/r2/lib/db/_sorts.pyx

from datetime import datetime, timedelta
from math import log

epoch = datetime(1970, 1, 1)

def epoch_seconds(date):
    td = date - epoch
    return td.days * 86400 + td.seconds + (float(td.microseconds) / 1000000)

def score(ups, downs):
    return ups - downs

def hot(ups, downs, date):
    s = score(ups, downs)
    order = log(max(abs(s), 1), 10)
    sign = 1 if s > 0 else -1 if s < 0 else 0
    seconds = epoch_seconds(date) - 1134028003
    return round(sign * order + seconds / 45000, 7)

在这种情况下,您没有起起落落,但可以先将score() 替换为总销售额,例如。当然,由于时间因素,这仅适用于您不断有大量新产品推出的情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-28
    • 2020-02-21
    • 2017-05-06
    • 2012-08-27
    • 2021-02-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多