伪造与无意义文本
伏尼契的熵:最常被误用的那个论据
“熵太低,所以这不可能是无意义的文本”是流行叙述中最常见的论证,而它是错的。我们梳理了到底测出了什么、哪些数字是真实的、由此能得出什么。

凡是写到这部手稿的人,都会写到它的熵,而且几乎总是犯同一个逻辑错误。让我们把“熵”这个词背后的 数字过一遍:其中哪些是真实的,从中又能得出什么结论。
两个不断被混淆的量
符号熵(记作h1)回答的问题是:字母本身有多丰富?如果字母表有三十个符号,而且每个符号出现的 频率大致相同,这个数值就高;如果某一个符号占去了文本的一半,它就低。
条件熵(h2)回答的是另一个问题:在已知前一个符号的情况下,猜出下一个符号有多容易?在英语里, q后面几乎总是跟着u,这就把数值拉低了。对组合的限制越紧,这个数就越低。
这是两种不同的东西,而它们之间的混淆,正是流行叙述中大部分虚假说法的来源。
真实的数字
以下是在手稿的完整转写上测得的结果:
| 量 | 伏尼契 | 自然语言 |
|---|---|---|
| 单个字符的熵(h1) | 3.86比特 | 相当 |
| 条件熵(h2) | 约2.1-2.2比特 | 2.96-3.23 |
要紧的是第二行。反常的不是字母表,而是组合。伏尼契的符号彼此相继的可预测性,远高于所有受检 的自然语言的字母。
顺带说一句:在各种综述里流传的“4.0-4.3对4.5-4.8”这组数字,既不符合我们的测量,也不符合已知的 出版物,它们恰好就是把h1和h2混在一起的结果。
低条件熵确实意味着什么
它意味着一种刚性的内部结构,仅此而已。
在我们的模型里,这样的结构由一种音节式密码造成:明文的一个单位用一组受限符号中的两三个符号写出, 于是组合反复出现,可预测性随之上升。我们用直接构造检验了这一点:一段条件熵为3.22的拉丁文本, 经过模型处理之后降到大约2.1,也就是恰好落进观测到的区间。
同一件事也解释了第二个特点,即又短又整齐的词:它们是密码规定的,不是源语言规定的。
低熵并不意味着什么
流行说法的主要错误正在这里:“熵太低,所以这段文本是有意义的,而不是一堆没有意义的符号”。
这是错的。机械生成器同样产生这么低的熵。
- 配着音节表的格栅,也就是Gordon Rugg用来复制出类似伏尼契的文本的那种装置,它自动带来可预测性,
因为其中的块是重复的。
- 把已经写下的词稍作改动再抄一遍,即Torsten Timm提出的机制,同样产生低熵,而且还额外产生Zipf
定律、相似词构成的族,以及重复的聚集。
换句话说,单凭这一个数字,无法把有意义的来源和机械的来源区分开。无意义文本的版本必须用有区分 力的特征来否定,也就是那些生成器会做得过头或者不够的特征。这一点我们是分开做的: 卡尔达诺格栅以两种方式被否定, 自我抄写则在留出数据上于六项指标中的五项被否定。
阅读任何综述时的教训
一个孤立的数字什么也定不了。真正定得了的,是它能否在互相竞争的解释之间做出区分。
我们自己也踩过旁边的耙子,并且公开承认了:我们衡量“孪生词”的指标,结果依赖于语料库的规模,于是 我们撤回了建立在它之上的关于东亚语言的结论。这件事写在这里。
由此得出的规则很简单:在把一个数字当作论据接受之前,先问它排除了哪一种替代解释。如果它一个也 排除不了,那它就不是论据,只是装饰。
伏尼契手稿的破译并不存在。巧合不等于释读,低熵也同样不是。
常见问题
伏尼契文本的熵是多少?
每个字符约3.86比特,这是个普通的数值。反常的是条件熵,也就是在已知前一个符号时下一个符号的可预测性:约2.1-2.2比特,而自然语言为2.96-3.23。
低条件熵意味着什么?
意味着文本高度可预测:知道一个符号之后,猜出下一个符号比在普通语言里更容易。它指向一种刚性的内部结构,在我们的模型中,这种结构由一种组合方式受限的音节式密码造成。
“低熵证明文本有意义”这种说法对吗?
不对。机械生成器同样产生这么低的熵:配着音节表的格栅,以及照抄已经写下的内容,两者都能做到。无意义文本的版本必须用其他特征来否定,而不是用这个数字。
为什么各种综述里会引用4.0-4.3和4.5-4.8这样的数字?
它们来自对两个不同量的混淆,即单个符号的熵与条件熵。这两组数字既不符合我们的测量,也没有出现在已知的出版物里。