使用Python进行内容/商品热度分析

5 sec read

在日常的网站或者APP的开发中,经常会遇到需要提供最近热门的功能,比如博客上最近热门的文章、 比如电商网站上最近热门的商品。想要实现最近热门最简单的方法是,取最近一段时间(比如一周),查看最近一段时间内的浏览量或订单数,按照数量进行排序。

今天要分享的相比单纯统计数量稍微复杂一些的方法。首先我们假设,热度是按指数递减的,即热度会随着时间递减。我们的热度计算公式就可以抽象为:

hot_score = ∑((count_visit * α ^ i)

其中:

  • α为衰减系数
  • i为距离当前的时间(通常使用距离天数,也可以使用周或月,看具体场景)
  • count_visit为某一时间间隔内的浏览次数(也可以是count_order,即某一时间间隔内的订单量)

当α=1时,即为最为简单的仅统计浏览量或者订单量的数据,整个公式中最不好确定的是α的取值。我通常使用假设的方式,最后通过不同假设计算出来的结果进行人工的选择。

  • 1周后的权重降为5,则α^7=0.5,α≈0.905724
  • 2周后的权重降为5,则α^14=0.5,α≈0.951695
  • 3周后的权重降为5,则α^21=0.5,α≈0.967532
  • 4周后的权重降为5,则α^28=0.5,α≈0.975549

相关代码:

一些说明:

  • 通常在计算时可以取30天的数据,原因是某个<1数字的30次方已经非常小了,计算的意义不大
  • 以上的计算针对的是有热度的内容或产品,如果部分内容不随时间衰减,使用上诉公式不影响

拓展学习:

以上只是从一个纬度进行的数据热度排序的方法,实际操作中往往会涉及到多个不同的纬度的结合。具体案例可以参考:

Update:2018-08-06

使用SQL改写为:

打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

PySpider框架简介及安装

PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI。采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器,任务监视器,项目管理器以及结果查看器。
1 min read

Windows安装Docker记录

Docker是一种容器技术,可以将应用和环境等进行打包,形成一个独立的、类似于iOS的APP形式的应用。这个应用可以直接分发到任意一个支持Docker的环境中,通过简单的命令即可启动运行。Docker是一种最流行的容器化实现方案,和虚拟化技术类似,它极大的方便 ...
22 sec read

Windows下安装Tesserocr

在爬虫过程中,经常会遇到各种验证码,大多数验证码是图形验证码,先前的文章中有介绍到破解图形验证码的原理。最简单的破击验证码的方式是使用OCR。
1 min read

Leave a Reply

Your email address will not be published. Required fields are marked *