大家谁能想出个算法来公正的排名出一个文章提交网站的作者排名。

2012-08-19 16:23:56 +08:00
zzlettle  zzlettle
我想制作一个内容共享,提交的网站。
类似reddit这样的,我在上面设置了让每个人选择like 和dislike的按钮。
这样在一个规定的周期内,比如一个星期内,提交文章质量最高的作者排名。
我找到些文章介绍文章排名的算法,比如reddit文章排名的公式我也看过介绍。http://www.ruanyifeng.com/blog/2012/03/ranking_algorithm_reddit.html
但对于提交内容的作者我也要找个好的算法来排名他们的贡献。大家有什么好的想法。因为我打算根绝作者的排名来奖励他们,这样才能鼓励更多的人来提交他们找到的内容发表在我网站上面。但要找个比较公平的算法。然后一个周期过后,我把奖品发给排名前3的作者后,然后大家重新再来。

不知道大家有没有这方面的研究。
3752 次点击
所在节点   设计  设计
37 条回复
binux
binux
2012-08-20 00:02:57 +08:00
既然你不想给发了100篇文章的人1000块钱,这表明你自身就存在取舍
是发了100篇文章的人贡献大,还是发了一篇100人赞的人贡献大

这不是一个算法问题,你不能要求算法给出答案
而是,你是怎么想的,你觉得谁贡献大。然后去设计这个算法,然后照着你的目标调整它
zzlettle
zzlettle
2012-08-20 00:07:40 +08:00
@binux 是的,是个取舍问题。因为我希望有高质量的原创文章,不希望转载大量没什么意思,搞笑的东西。原则是希望人们到这里来后,有新东西,也要有放松的东西。不偏重某一方。
zzlettle
zzlettle
2012-08-20 00:09:14 +08:00
@binux 所以我不排斥转载的东西。关键是让真正的读者能喜欢我的网站,最终目的是人们来了还想来。
013231
013231
2012-08-20 00:42:58 +08:00
@zzlettle 這個設計是爲了給優質文章更高的得分, 以解決你所說的大量低質文章湊分問題.
至於投票人的權重, 可以用類似PageRank的算法, 文章得分高的人票權更高.
zzlettle
zzlettle
2012-08-20 04:42:39 +08:00
@013231 能给个设计好的公示算法吗
cheshirecat
cheshirecat
2012-08-20 08:59:41 +08:00
@013231 这个想法不错。

举个例子解释一下:
用户A发了10个帖子,每个得5分。最终得分 = 5^2 + 5^2 + .... = 250。
用户B发了1个帖子,得了20分。最终得分 = 20^2 = 400。

可以自行调整幂次。感觉 1.7 比较适合。事实上有最优解,不过计算量比较大。
cloudream
cloudream
2012-08-20 18:51:47 +08:00
给每个作者一个adsense频道。按adsense广告收入排,如何?
zzlettle
zzlettle
2012-08-20 20:16:51 +08:00
@cloudream 你怎么知道他们有adsense账户了。收入这个东西,难度谷歌会公布出来让外人知道吗。
zzlettle
zzlettle
2012-08-20 20:27:46 +08:00
我觉得要考虑投票者的权重,等于要找出那些在某个主题上的达人。如果这个人在这个方面的文章大家都喜欢,他的听众人数可以用来当个参考。达人在他熟悉的方面的投票要高于一般人。但也不能太高,也许有的人本事高,但他们不喜欢发表文章。毕竟人民的眼光是雪亮的。
binux
binux
2012-08-20 21:05:54 +08:00
不管你用什么算法,肯定有破解办法

要么就简单来
计算一个周期内一个作者所有文章 获得的唯一用户的赞的总数,这表明了一个作者的作品对于读者的覆盖面
同时一定程度去除了一个作者发大量文章的影响: 这样的作者有更大可能获得重复用户的赞

如果你要PR,那么不应该以作者的水平当作读者的水平
可以通过读者赞过的文章最终排名,提供给读者一个"品味"的反馈,以此作为权重
zzlettle
zzlettle
2012-08-21 01:41:50 +08:00
@binux 是一个新的思路。你这个等于是在考量喜欢这个作者文章的读者人数。但很可能你会发现相差很近。如果网站初期读者规模不大,这个差距会更小,更难衡量。其实我也不反对转摘这种形式,只要有人喜欢,小众的也要满足。
013231
013231
2012-08-21 03:54:47 +08:00
@zzlettle
文章得分 = 所有like的用户票權之和 - 所有dislike的用户的票權之和
用户得分 = 该用户所有正分文章文章得分的平方和 - 该用户所有負分文章文章得分的平方和
用户票權 = 1 + log(该用户所有文章的like數 + 1)
zzlettle
zzlettle
2012-08-21 08:04:33 +08:00
@013231 能介绍下 用户票权的算法意义吗
binux
binux
2012-08-21 09:54:12 +08:00
@zzlettle 不会的,第一不是所有人每天都来,第二初次访客数量还是比较大的
013231
013231
2012-08-21 14:06:34 +08:00
@zzlettle 普通用户票權爲1. 發表過文章且獲得好評的用户具有更高票權.
票權公式可以修改一下:
用户票權 = 1 + log(该用户所有文章like數的平方和 + 1)
zzlettle
2012-08-21 14:10:25 +08:00
@binux 确实,我现在也觉得你这个思路很对。
首先就应该定个基调,什么样的作者才叫好的作者。
评价作者发布文章的质量好坏的原则我认为是越多的人认为好,这个才叫好。翻译过来就是大众认可的,才叫正真的好。

就是说,如果一定时期,某个人发布的所有文章受到越多的不同的人的肯定,那他的文章是得到大部分人的肯定。就算他只发布了少量文章,但每篇文章都能得到广泛的大比率用户的肯定,这样的文章才算是高质量的。他的贡献就大,如果哪个作者每篇文章只得到很少数量的用户肯定的作者,就算他发布的数量很大,按道理来说他的贡献很小,搞不好还是发垃圾的人。

等于我要兼顾单篇文章的投票数,如果都是写受大众喜爱的文章的作者,这样就要比他们发表的文章数量了。等于单篇文章的质量和总共的数量都要兼顾。

这个数学公式应该怎么设计比较好了。
zzlettle
2012-08-21 14:13:09 +08:00
@013231 因为我还考虑到每个人的专长不同。如果这个人在汽车方面的文章得到大家的认可,他在汽车主题上的文章投票应该权重高,但他显然不应该对美食这种类型的文章投票也权重高。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/45529

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX