「词汇丰富度」不是文本的属性,是长度的影子:齐普夫与 Heaps 是同一枚硬币
【锚点】这一篇只钉一个判断:数字人文里最常用的「词汇丰富度 / 类符-形符比(TTR)」不是一个可比的量——它同时是文本长度的函数和词频分布斜率的函数。跨语料比较 TTR,你多半只是在比较长度,而你自己不知道。
【显式】TTR = V/N(类型数 / 形符数)。任何自然语言文本,N 增大时 V 增长得比 N 慢——这就是 Heaps 定律:V ∝ Nβ,β 经验值通常落在 0.4–0.6。代入得 TTR ∝ N(β−1),因为 β−1 < 0,所以 TTR 随 N 单调递减。这不是经验倾向,是恒等式。
【隐式】于是「这首诗比那本小说词汇更丰富」这句话,在 TTR 的意义下通常只是「这首诗更短」。同一作者的两千词短篇 TTR 常在 0.35–0.45,二十万词的长篇常在 0.05–0.08——七倍差距全部来自篇幅。要救这个指标,必须固定 N:滑动窗口(MATTR)、或直接用 β 本身。最便宜的检验是:把两部作品都切成等长块再算,如果差异消失,你的「风格」结论就是长度伪影。
【细微】更麻烦的是,Zipf 和 Heaps 其实是同一枚硬币的两面。若词频服从 f(r) ∝ r(−α),把 N 个 token 视为从该分布独立抽样,则稀有词的秩上限约在 r_max ~ N(1/α),于是 V ~ N^(1/α),即 β = 1/α(Lü, Zhang & Zhou 2010 给出推导与数值验证)。所以「丰富度曲线」不是独立参数,它被 α 锁死。报告 β 而不报告 α 是冗余;把两者当成两条独立证据,则是把一个自由度算了两遍。注意边界:真实语料对纯 Zipf 有偏离(尤其尾部),所以 β=1/α 是量级关系,不是能拿来反解 α 的公式。
【极难发现】α 本身也不是自由读数。DH 论文里最常见的做法是对 log r ~ log f 做最小二乘,而 Clauset, Shalizi & Newman (2009, SIAM Review) 证明:log-log OLS 在幂律数据上系统性有偏,偏差随样本规模与截断点变化。于是跨语料比较 α 时你被两重污染同时击中:拟合方法的偏差(随 N 变)+ 抽样规模的偏差(随 N 变)。两个偏差可能相消,也可能叠加——而你从结果里分辨不出是哪一个。中文语料还多一层:分词粒度直接改变 V,所以 TTR 在中文里连「同一个量」都算不上。
【流程节点链路】起点=原始文本语料 → 分词/规范化(中文多一步切词,粒度即刻改变 V)→ 类型-形符计数 (V, N) → 频率-秩排序 → 拟合(OLS 或 MLE+KS)得 α → 由 β=1/α 推 Heaps 指数 → 终点=「作者 A 词汇更丰富 / 文体指纹是 X」的结论。这条链每一步都有多种实现,每一种换法都会改动终点那个数字,而论文里通常只报告终点。
【观点】测量模型才是理论所在。当你说 TTR 代表「风格」时,你实际在宣称「篇幅分布是风格的一部分」。这句话可能是真的——作者确实有稳定的篇幅偏好——但它是一个关于篇幅的理论,不是关于词汇的理论。想清楚你在测哪一个,比换一个更花哨的指标重要得多。
【值得辩论】反过来问:如果 TTR 基本是长度的函数,那么文本长度本身是不是比词频分布更强的作者指纹?一个可证伪的预测:等长切块后仍能区分作者的,应该主要是功能词分布(Burrows’s Delta 那一支),而不是任何形式的类符比。你手上的语料能证伪它吗?







0 Comments