1
qiayue 2012-08-19 16:48:04 +08:00
发给前三的文章的作者不就行了
|
2
binux 2012-08-19 16:58:44 +08:00 1
你把上面那个算法的对象换成作者不就完了
|
3
zzlettle OP |
4
zzlettle OP 如果大家没有什么好的想法,有谁知道国外有什么论坛,就是这样大家讨论数学算法的地方,看看别人有是好的算法。
我可以根据需要,把like dislike变成5星的评分机制也可以。 |
6
zzlettle OP 好吧,我再说的详细点。
打个比方,我需要每个星期根据作者的贡献对排名第一的人发1000块钱。 贡献当然是他的文章,大家喜欢。根据大家对他的投票,计算出来。但不能简单的只是票数的总和,因为我总觉得要考虑各方面的因素。 比如有的人只写了一篇文章,但这篇文章质量非常高。他因为这篇文章得票100. 但有的人其实就是到处share的东西,一个星期内到处找那种流行的东西,搞笑的图片什么的,一共找了100篇文章,就算每个只的一票,他也一共有100票,但显然不公平。 所以我希望能找出个比较公平的算法,考虑到单个文章的质量,也兼顾那种到处找人们喜欢的东西分享到我的网站,贡献了大量内容的人。 每个星期一次结算,得分最高的人才能给1000块钱。 |
7
zzlettle OP 算法其实很重要的,对于搜索引擎们来说那个命根,其实对于一个文章发布的网站,找准个文章还有发布者的排名的算法也很重要。如果有人能够设计个合理的算法,我愿意出钱来酬谢。
|
8
cheshirecat 2012-08-19 22:06:19 +08:00
真正要做得好,需要类似 PageRank,或者根据投票的人自身从前的得票情况决定他的投票力。
但是除非真的做到很复杂,否则都会有漏洞可以钻。最好还是加入人工管理员的因素。 |
9
zzlettle OP 人工当然也要管理,但最好有个公式,这样我人工干预的也会少。
|
10
zzlettle OP 投票的人我无法控制,因为投票的人是大量的网站注册用户,我只能保证每个人只能一篇文章投一次票
|
11
cheshirecat 2012-08-19 22:22:25 +08:00
最简单这样呗:投票的威力再按照投票者本身从前的得票数加权。
用户A:从前得过1000票。 用户B:从前得过10票。 用户C:从前得过50票。 文章1:用户A赞。实际得票:log(1000) = 3。 文章2:用户B和C赞。实际得票:log(10) + log(50) = 2.69897。 |
12
zzlettle OP @cheshirecat 投票者本身从前的得票数加权 这个怎么来的
|
13
zzlettle OP @cheshirecat 对投票者本身的权重这个要考虑,然后其实我还考虑了,网站发展的规模的因数。
比如开始可能网站只有100个人,和后期有1万人的规模时候,这个排名也会有不同。 比如同样一篇高质量的文章,规模小的时候,全部人都投票也只会有100票,但这么高比率的赞成票,说明了质量很高,但如果有人大量转载流行搞笑的东西,没篇文章得几票,他大量的发这样的文章,总数加起来也能有很多票。 |
14
cheshirecat 2012-08-19 22:52:35 +08:00
@zzlettle 没错。所以最终只能变成类似 PageRank 的问题。然后变成算法和各种邪恶用户的长期斗争。
|
15
013231 2012-08-19 22:52:50 +08:00
@zzlettle 作者得分 = 該作者的文章1票數**2 + 文章2票數**2 + 文章3票數**2 ...
**2是指平方. |
17
zzlettle OP @013231 个人感觉,要考虑投票人本身的权重,达人的投票权重跟一个的过路的投票权重要有区分,然后要考虑到单个文章的质量,不能光靠量来取胜。
|
18
zzlettle OP 大家帮忙想想,还要考虑些什么因素,来判别作者的排名。
|
19
ryon 2012-08-19 23:17:14 +08:00
除了公平和公正,你还得考虑服务器计算能力。这类的计算会涉及太多的查询导致页面加载的体验糟糕。anwsion目前按照stackoverflow的计算方式计算热门问题,发现还是需要实时计算,没有独立的服务器,在数据量大的时候往往会让访问用户崩溃。
|
20
zzlettle OP @ryon 如果真的是这样的话,要么改进服务器,要么显示排名的时候,单独一个页面,出结果的页面慢点应该能介绍,内容文章页面的现实速度要快。
|
21
binux 2012-08-20 00:02:57 +08:00
既然你不想给发了100篇文章的人1000块钱,这表明你自身就存在取舍
是发了100篇文章的人贡献大,还是发了一篇100人赞的人贡献大 这不是一个算法问题,你不能要求算法给出答案 而是,你是怎么想的,你觉得谁贡献大。然后去设计这个算法,然后照着你的目标调整它 |
22
zzlettle OP @binux 是的,是个取舍问题。因为我希望有高质量的原创文章,不希望转载大量没什么意思,搞笑的东西。原则是希望人们到这里来后,有新东西,也要有放松的东西。不偏重某一方。
|
24
013231 2012-08-20 00:42:58 +08:00
@zzlettle 這個設計是爲了給優質文章更高的得分, 以解決你所說的大量低質文章湊分問題.
至於投票人的權重, 可以用類似PageRank的算法, 文章得分高的人票權更高. |
26
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 比较适合。事实上有最优解,不过计算量比较大。 |
27
cloudream 2012-08-20 18:51:47 +08:00
给每个作者一个adsense频道。按adsense广告收入排,如何?
|
29
zzlettle OP 我觉得要考虑投票者的权重,等于要找出那些在某个主题上的达人。如果这个人在这个方面的文章大家都喜欢,他的听众人数可以用来当个参考。达人在他熟悉的方面的投票要高于一般人。但也不能太高,也许有的人本事高,但他们不喜欢发表文章。毕竟人民的眼光是雪亮的。
|
30
binux 2012-08-20 21:05:54 +08:00
不管你用什么算法,肯定有破解办法
要么就简单来 计算一个周期内一个作者所有文章 获得的唯一用户的赞的总数,这表明了一个作者的作品对于读者的覆盖面 同时一定程度去除了一个作者发大量文章的影响: 这样的作者有更大可能获得重复用户的赞 如果你要PR,那么不应该以作者的水平当作读者的水平 可以通过读者赞过的文章最终排名,提供给读者一个"品味"的反馈,以此作为权重 |
31
zzlettle OP @binux 是一个新的思路。你这个等于是在考量喜欢这个作者文章的读者人数。但很可能你会发现相差很近。如果网站初期读者规模不大,这个差距会更小,更难衡量。其实我也不反对转摘这种形式,只要有人喜欢,小众的也要满足。
|
32
013231 2012-08-21 03:54:47 +08:00 1
@zzlettle
文章得分 = 所有like的用户票權之和 - 所有dislike的用户的票權之和 用户得分 = 该用户所有正分文章文章得分的平方和 - 该用户所有負分文章文章得分的平方和 用户票權 = 1 + log(该用户所有文章的like數 + 1) |
35
013231 2012-08-21 14:06:34 +08:00
|
36
zzlettle OP @binux 确实,我现在也觉得你这个思路很对。
首先就应该定个基调,什么样的作者才叫好的作者。 评价作者发布文章的质量好坏的原则我认为是越多的人认为好,这个才叫好。翻译过来就是大众认可的,才叫正真的好。 就是说,如果一定时期,某个人发布的所有文章受到越多的不同的人的肯定,那他的文章是得到大部分人的肯定。就算他只发布了少量文章,但每篇文章都能得到广泛的大比率用户的肯定,这样的文章才算是高质量的。他的贡献就大,如果哪个作者每篇文章只得到很少数量的用户肯定的作者,就算他发布的数量很大,按道理来说他的贡献很小,搞不好还是发垃圾的人。 等于我要兼顾单篇文章的投票数,如果都是写受大众喜爱的文章的作者,这样就要比他们发表的文章数量了。等于单篇文章的质量和总共的数量都要兼顾。 这个数学公式应该怎么设计比较好了。 |
37
zzlettle OP @013231 因为我还考虑到每个人的专长不同。如果这个人在汽车方面的文章得到大家的认可,他在汽车主题上的文章投票应该权重高,但他显然不应该对美食这种类型的文章投票也权重高。
|