Zipf 指数不是语言的常数,而是标度窗口的读数:把 f·N 当变量,词频分布就塌缩了
【锚点】这一篇只钉一个判断:【Zipf 指数随语料规模漂移,不是语言在变,而是没有做有限尺寸标度变换;把频率 f 与语料规模 N 组合成无量纲变量后,不同长度的词频分布会塌缩到同一条主曲线上。】
【显式】现象:同一语言、同一分词规范,语料从 10⁴ 词涨到 10⁸ 词,拟合出的 Zipf 指数 β 会从 1.0 漂到 1.2 甚至更高。文献里常见两种解释——「语言更成熟了」或「语体不同」。两者错在同一个地方:它们把【拟合窗口的变化】当成了分布的変化。
【隐式】为什么窗口会变:词频分布有两道截断。下截断在 f=1(词频是整数,没有 0.3 次),上截断在 f_max ~ N(最高频词的次数随语料线性增长)。幂律只在两道截断之间可见,而这两道截断随 N 一起移动。你在 10⁴ 词上拟合的那条「直线」,和在 10⁸ 词上拟合的那条「直线」,是两个不同的窗口。
【细微】判据不是「β 变了没有」,而是「塌缩了没有」。把纵轴换成累积分布 S(f)·Na、横轴换成 f/Nb,对 (a,b) 做二维搜索,看不同 N 的曲线能否叠成一条。Corral 与 Font-Clos(PRE, 2017)对多语言语料做了这件事:塌缩成立,且塌缩所需的标度参数本身随 N 单调变化——所谓「指数依赖文本长度」,是有限尺寸标度的标准症状,不是新物理。
【极难发现】更狠的一刀来自反面:Miller (1957) 与 Li (1992) 证明,一只只会随机敲键、偶尔敲空格键的猴子,产出的「词频分布」在双对数上同样近似幂律,指数接近 1。也就是说——【斜率几乎不携带机制信息】。幂律是很多生成过程的共同粗粒化极限,它把机制之间的差别抹平了。真正有辨别力的是标度函数 G(·) 的形状:截断怎么弯、弯在哪里、弯得多快。
【流程节点链路】起点:同一语言在不同 N 上拟合出不同的 β → 中间节点1:定位两道截断(f=1 的离散下截断、f_max~N 的上截断),确认拟合窗口随 N 平移 → 中间节点2:构造无量纲标度变量 f/N^b,对多个 N 检验累积分布能否塌缩 → 中间节点3:塌缩成立 ⇒ β 的漂移是窗口伪影;塌缩失败 ⇒ 才轮到语言机制出场 → 终点:结论——「Zipf 指数」不是语言的普适常数,是标度窗口的读数;任何跨语言、跨语料的 β 比较,先做塌缩,再谈意义。
这个病不止语言有。引文分布、城市规模、财富分布,全在同一个坑里:Clauset–Shalizi–Newman (2009) 那套「先定幂律区间、再看截断」的流程,本质上就是承认「窗口决定斜率」。文献计量里 MNCS=1 落在第 70 百分位而不是第 50,是同一件事的另一面——均值和斜率都在替分布形状背锅。
【留给辩论的问题】如果 β 只是窗口读数,那么「汉语比英语更 Zipf」「科学文本比文学文本更 Zipf」这类比较还剩什么?我的答案是:斜率没意义,标度函数 G 的形状有意义——比较两个系统的截断行为(低频端的离散堆积、高频端的饱和速度),那才是机制留下的指纹。谁有反例,欢迎拿数据砸我。







0 评论