重点描述上面两个公式:
Ts = A – B
相当于
A的发布时间 – 设定时间(默认时间为1970-01-01就可以)
X = U – D
相当于
支持率 – 反对率
来个JAVA实现方式。
private double U = 100;
private double D = 2;
获取默认时间(1970-01-01)
private double getDefaultTime() {
java.text.DateFormat format2 = new java.text.SimpleDateFormat(
"yyyyMMddhhmmss");
String s = format2.format(new Date(0L));
return Double.parseDouble(s);
}
获取某篇文章的发布时间
private double getPostPublish(Date date) {
java.text.DateFormat format2 = new java.text.SimpleDateFormat(
"yyyyMMddhhmmss");
String s = format2.format(date);
return Double.parseDouble(s);
}
获取秒时间差
private double getSecondsDifference(Date date) {
return getPostPublish(date) - getDefaultTime();
}
获取X
public double getX() {
return U - D;
}
获取Y
public double getY(double x) {
if(x > 0)
return 1;
if(x == 0)
return 0;
return -1;
}
获取Z
public double getZ(double x) {
if(Math.abs(x) >=1) {
return Math.abs(x);
}
return 1;
}
获取作热排名
public double hotRanking() {
double x = getX();
return Math.log10(getZ(x)) + getY(x) * getSecondsDifference(new Date())/45000;
}
到这里,算法算是实现啦。
发表时间的影响
发表时间和话题排名的影响可以被概括如下:
发表时间对排名有很大影响,该算法使得新的话题比旧的话题排名靠前
话题的得分不会因为时间的流失而减少,但是新的话题会比旧的话题得分高。这与 Hacker New 的算法不同 (随着时间的发展降低话题的得分)
下图展示了话题得分在好评和差评的数量不变时,随着时间而变化的情况:
对数关系
Reddit 的热排序算法使用了对数函数来衡量前面的投票与其他投票的差距:
前十个好评和之后的100个,1000个投票有相同的权重。
参见下面的图:
去掉对数函数之后(译注:采用线性函数)的效果
反对票的影响
Reddit 是为数不多的几个可以投反对票的网站。正如上边代码所述,一个话题的得分被定义成:好评数 - 差评数
下边的图可以帮助我们理解:
这一点对那些同时有大量赞成和反对票的话题(比如说一些有争议的话题)有显著影响。这种话题的排名会比只有赞成票的话题低一些,这也就解释了为什么 kittens 和其他一些没有争议的话题排名如此靠前。
话题排名算法的结论
发表时间是一个非常重要的参数,通常,新的话题要比旧的话题排名靠前
前10个好评跟接下来的100个有着同样的权重。比如一个有着10个好评的话题,跟有50个好评的话题有着相似的排名
有争议的话题(支持票和反对票的数量相近)要比支持票占大多数的话题排名靠后
参考资料:
http://www.iteye.com/news/28228
http://pycoders-weekly-chinese.readthedocs.org/en/latest/issue6/how-reddit-ranking-algorithms-work.html
- 大小: 19 KB
- 大小: 11 KB
- 大小: 10.1 KB
- 大小: 10.1 KB
- 大小: 6.9 KB
分享到:
相关推荐
李白高力士脱靴李白贺知章告别课本剧.pptx
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
C语言项目之超级万年历系统源码,可以做课程设计参考 文章参考:https://www.qqmu.com/4373.html
Jupyter-Notebook
51单片机加减乘除计算器系统设计(proteus8.17,keil5),复制粘贴就可以运行
《中国房地产统计年鉴》面板数据资源-精心整理.zip
Jupyter-Notebook
Jupyter-Notebook
毕业论文答辩ppt,答辩ppt模板,共18套
Jupyter-Notebook
《中国城市统计年鉴》面板数据集(2004-2020年,最新).zip
Python基础 本节课知识点: • set的定义 • Set的解析 • set的操作 • set的函数
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
兵制与官制研究资料最新版.zip
Jupyter-Notebook
七普人口数据+微观数据+可视化+GIS矢量资源-精心整理.zip
Support package for Hovl Studio assets.unitypackage
土壤数据库最新集.zip
Jupyter-Notebook
1991-2020年中国能源统计年鉴-能源消费量(分省)面板数据-已更至最新.zip