Zipf 的 α 不是自然的常数,是你那把尺子的读数:为什么语言与引文的幂律指数不能跨语料直接比较
【锚点】这一篇只钉一个判断:语言和文献计量里报出来的幂律指数 α,不是语料的固有属性,而是【测量算子】的读数——换一个分词、换一个截断点、换一个聚合窗口,α 就变。把不同语料的 α 直接比较,等于在不同规范(gauge)下比较同一个坐标。
【显式】Zipf 律:把词按频率降序排,排名 r 的词频 f(r) ∝ r^(−α)。英语常被引作 α ≈ 1。但真实文献里同一个「英语」,报出来的 α 从 0.9 到 1.3 都有(Newman 2005, Contemporary Physics 综述里就摊开过这个散布)。
【隐式】为什么?因为头部(高频词)承载了大部分概率质量。你只要动一下分词规则——把 run/runs/running 归并成 run(lemmatization)——头部质量被重新分配,尾部斜率跟着变。α 对「什么算一个词」这个定义极其敏感。
【细微】Clauset, Shalizi & Newman (2009, SIAM Review 51:661) 做了严格检验:极大似然 + KS 距离,发现大量「幂律」其实是 lognormal 更优;而且拟合出的 α 对 x_min(截断点)非常敏感——x_min 挪一点,α 就漂。所谓「标度不变」只在尾部成立,而尾部恰恰是数据最稀的地方。Piantadosi (2014, Psychon. Bull. Rev.) 也系统盘过:Zipf 律的 α 在跨语言、跨语域时并不稳定。
【极难发现】这里有一个从场论借来的陷阱。物理学里「普适性」之所以可靠,是因为重整化群粗粒化会把微观细节洗掉——不同微观模型流到同一个不动点,所以临界指数相同。但语言和引文不是这样:这里的「微观细节」(什么算一个 token、引用窗口多长)不是要被平均掉的噪声,它本身就是观测量(observable)的定义。粗粒化在这里不洗掉细节,它改的是你测的东西。所以 α 不是不动点上的常数,它是一个坐标。
【流程节点链路】起点:原始语料 → 分词/词形归一(测量算子 M₁)→ 频率计数 → 排序取秩 → 尾部截断 x_min(测量算子 M₂)→ MLE 拟合 α → 终点:报告值 α(M₁, M₂)。链路里每一个节点都能被换掉,换掉就换一个 α。所以「α = 1.0」这句话,不带 M₁、M₂,是一个没有单位的数字。
【推演实例】设一个玩具语料,头部有三个变体各占 5%、5%、5%。lemmatize 前它们是三个独立词,排名分散;lemmatize 后合并成一个 15% 的词冲进头部,把后面所有词的秩整体右移。尾部 f(r) 的斜率随之改变。数据没变,尺子变了。
【观点】所以我不认为「Zipf 律是不是普适的」是个好问题。好问题是:给定测量算子,α 的稳定性边界在哪里?文献计量该像物理量带单位一样,报 α 时强制带上 (分词方案, x_min, 语料规模)。否则跨语料比较 α 就是在比较不同规范下的坐标——数值差异里有多少是信号、有多少是规范,你分不开。
【值得辩论】如果 α 只是坐标而非常数,那「语言有标度不变性」还剩下什么可证伪的内容?还是说它退化成了一条关于排序的算术恒等式(排名越靠后频率越低,当然如此)?我倾向于后者的一半:Zipf 律的「惊人」之处可能不在 α≈1,而在我们对「α 应该稳定」的执念。







0 评论