关于karma的机制探究

原始文章 by JochoiJochoi
翻译搬运 by pokmpokm

引言

对于绝大多数(甚至是全部)Wikidot 用户来说,网站的 karma 系统仍是未知的。有传言称达到 4k(也就是“非常高”活跃度)和 5k(也就是“上师”活跃度)分别需要 2000 次页面编辑和 8000 次页面编辑。

为了探究这个机制的运作原理,我进行了一系列的数据搜集。


概览

对于 karma 系统,有如下的猜测:

5k 成员的数量是“比例恒定”的,在新的成员加入 wikidot 时,由于用户基数增大导致 5k 出现空缺位置;或当一个 4k 用户活动指标超过对应 “恒定比例” 的相对阈值,此时 4k 用户便可以晋升为 5k 用户。

Wikidot 源码

Wikidot 用于计算 karma 值的源码可以在此找到,具体规则可以在此找到。

第一手数据

一个用于提升并且监控 karma 实时数据的脚本。

第二手数据

提取目前已知的 5k 用户的编辑数和发帖数。


方式方法

灌水升 k

灌水升 k 脚本基于 NodeJS 环境进行开发,由 Karma PoCKarma PoC 执行。

该代码不会对外公开以防被滥用,但是其设计理念如下:

  1. 脚本登入账户。
  2. 对一个可以随时删除的、无用的废弃页面,每 3s 进行一次编辑和保存。
  3. 对这个页面的讨论版,每 60s 发送一个帖子。
  4. 每 60s 检查一遍该账户的 karma 等级,达到 5k 后终止操作。

对 5k(上师)账户进行编辑数和发帖数检索

对编辑数和发帖数进行检索的脚本基于 NodeJS 环境开发。

代码如下:

我在个人服务器 https://zh.xjo.ch/wduserinfo 上为这串代码提供检索所需的服务。能够用 query string 的参数提供用戶数字id userIduser_id 或用户名 username 来进行这里的统计。

如果编辑数超过 20000 或者发帖数超过 10000,请尝试使用用户id,不要用用户名,因为把用户名转化成id还需要大概 10s 的时间

如果编辑数和发帖数量过多,该脚本可能会因为服务器网关超时而出错。

感谢UnihedronUnihedron在使用指数搜索算法上提出的建议。


结果

Wikidot 源码

由于可供阅读 wikidot 源码已有 10 年年龄,可能不能真切反映目前 karma 计算模式,因此此部分只供参考。

阅读 wikidot 源码可以得知,对于各 karma 等级皆存在最低活动标准线,但对各 karma 等级用户是按照wikidkot 总用户量的特定比例来划分的。因此,对于 10 年前的 wikidot,于概览中所提出的猜测是正确的。

karma 数值

Karma PoCKarma PoC 在编辑约 2000 次、发帖 0 时达到了4karma 。
11631 次编辑、101 发帖时达到了 5karma。

可能存在的问题:由于 wikidot 更新 karma 的速度很慢,所以可能在超出 karma 阈值之后脚本没有及时停止操作、从而导致数据偏大。

对于当前的 5k(上师)用户的统计

按照字母顺序排序
检索数据时间均为 北京时间(UTC+8) 2020 年 5 月 10 日 03:30。
由于被删除的页面的编辑数和发帖的数量不包含在内,所以检索的数据可能有所偏差。

用户 编辑数量 发帖数量
7happy77happy7 29917 653
djkaktusdjkaktus 6871 2463
feitagfeitag 9346 3244
Helmut_pdorfHelmut_pdorf 19940 8590
Ihp does not match any existing user name 8472 2716
Karma PoCKarma PoC 11631 101
Lt FlopsLt Flops 10702 700
M ElementM Element 15108 2699
NatVoltaicNatVoltaic 11197 1404
notgullnotgull 5629 1752
pokmpokm 5685 2285
RounderhouseRounderhouse 11272 713
Sekai_sSekai_s 5489 629
WoedenazWoedenaz 8355 353
ZynZyn 8410 48175

结论

首先,关于“编辑页面 8000 次升 5k”的谣言是错误的,因为他没有考虑到 karma 计算的其他因素。 实例包括pokmpokmSekai_sSekai_s 没有达到6000次编辑。作为第一手实例的Karma PoCKarma PoC 却需要大约 11000+ 编辑和 100次 发帖。

其次,对于 karma 机制的具体运作方式,“比例恒定” 之猜测在 10 年以前的 wikidot 是正确的。然而对现时来讲,该计算方式存在诸多可能偏差,因此无法得出一个准确无误的结论,仅供参考。

除非特别注明,本页内容采用以下授权方式: Creative Commons Attribution-ShareAlike 3.0 License