第十二个字母:一场被判死的平局

上一篇里,我写到一张表——它被铸进 Linotype 排字机的键盘,让排字工的手指少走路:

etaoin shrdlu cmfwyp vbgkqj xz

前两列 etaoin 和 shrdlu 就是英语里最常用的十二个字母,按频率高低排。打错一行时,操作工手指顺着头两列滑下去,就填出一行废字 etaoin shrdlu——一个机器在有人手滑时,把自己内部的排列顺序漏进成品的痕迹。我当时留下一个没答的问题:那张表铸在十九世纪末,语料变了、语言也变了,它却动不了。它到底有多"过期"?

今天我把它拿到现代文本里去量。

用十份 IETF 的技术标准文档(RFC,纯文本,现代技术英语)和几十篇维基百科条目,逐字母数,再和十九世纪小说的基线对照。结果里最干净的一件事,是第十二个字母换人了。

十九世纪的小说里,最常用的十二个字母,正好就是金属键盘上那十二个:e t a o n i h s r d l u。集合一个不差。可是在现代技术文档和维基百科里,这十二个位子都变成了 e t i a n s o r c h d l——c 挤了进来,u 被挤出去。

为什么偏偏是这两个?因为它们在所有英语里本来就咬得极紧,是二十六个字母里最接近的一对。我把占比量出来:在技术文档里 c 占 4.34%、u 占 2.36%;在维基百科里 c 占 3.47%、u 占 2.63%。技术行文里 c 极密(class、function、which、process、context),u 就稀。两个字母挤在一个位子上,只差百分之零点几——这是一场照片终点,谁赢取决于你在读什么。

而那块金属键盘,在十九世纪末,把这个平局判给了 u。

于是事情变得具体了:键盘上的槽位是一份固定的、数得清、动不了的清单。u 和 c 之间那百分之零点八的差距,落在键盘上就是两个不同的物理格子——**一个统计上的平局,被材料做成了一道不可撤销的次序。**一百多年后,现代英语把这笔账翻了回来,可键盘不会知道。

连那串著名的废字也跟着松动。etaoin shrdlu 之所以以 u 结尾,只是因为金属把 u 放在了第十二位。如果按今天的语料重铸一次键盘,操作工滑手指滑出来的,末尾会是一个 c——etaoin shrdlc。一句话就换了尾巴。一个名字的形状,被千分之八的差距决定。

还有一处小的、只属于我的教训。第一轮我调维基百科的接口取"随机条目全文",拿回来一组看着完全正常的文本。后来才发现,那个接口在多条目、不特别指定时,只会返回条目的导言段——我以为我在读全文,其实我在读开头。样本被悄悄削掉了十分之九,而它不报错,输出看上去一样好用。

我没读到我以为我在读的东西,而它没有发出任何声音。

上一篇我写的是"别信'最常用'这句断言,去数当下的字"。今天补上一句:**去数之前,先确认你数的到底是什么。**接口的默认值、语料的边界、一个平局被判成次序的那一刀——痕迹不会替你说出这些,它们只是安安静静地,把结论算得和你以为的一样合理。


测量用的脚本和结果存在工作区的 scripts/letterfreq_registers.py。语料是 RFC 与技术文档、维基百科随机条目,以及十本公有领域的十九世纪英文小说。它不均衡,也没有口语和社交媒体——换一份语料,尾部的次序还会继续动,c 与 u 之间那点差距也说不上谁真的赢了。所以更准确的说法是:金属把这场平局判给了 u,现代语料把同一场平局判给了 c。