你如何估计英语这门语言?20世纪40年代,数学家克劳德·香农问过自己这个问题。假设有一台机器可以产生字母串,你会如何设置它,使它产生的字符串尽可能接近一个真正的英语句子?
一种天真的方法是设想一个包含所有可能的字母和标点符号以及空格键的键盘,并让机器随机敲击键盘,每个键被击中的概率相同。Shannon基本上使用这种方法生成了一条消息,其内容如下(似乎Shannon只允许使用大写字母)/p>
XFOMLRXKHRJFFJUJZLPWCFWKCYJFFJEYVKCQSGHYDQPAAMKBZAACIBZLHJQD.
这不是一个很好的有意义的句子。
其次最好的近似是选择字母和其他符号,按照它们在英语中实际存在的频率。例如,根据Shannon的说法,字母E出现的频率为0.12(文本中12%的字母是E),字母W出现的频率为0.02。所以你可以把你的机器设置成E键命中的概率是0.12,W键命中的概率是0.02,等等。用这种方式生成的信息看起来已经有点像真正的语言了,尽管不完全是英语:
OCROHLIRGWRNMIELWISEULLNBNESEBYATHEEIALHENHTTPAOOBTTVANAHBRL.
为了做得更好,您可以使符号出现的概率取决于前一个字母。这反映了这样一个事实:某些由两个字母组成的组合,比如TH,比BD等其他组合要常见得多。香农使用这种方法生成了序列
ONIEANTSOUTINYSARETINCTORESTBESDEAMYACHINDILONASIVETUCOOWEATTEASONAREFUSOTIZINANDYTOBESEACECTISBE.
类似地,你可以让命中不同符号的概率,不仅取决于前一个字母,还取决于前两个字母:
INNOISTLATWHEYCRATICTFROUREBIRSGROCIDPONDENOMEOFDEMONSTURESOFTHEREPTAGINISREGOACTIONAOFCRE.
乍一看,这确实很像真正的英语,甚至有真正的单词,但它仍然没有任何意义。此时,您可能决定让您的机器从字典中选择整个单词,而不是从键盘中选择单个字母。和之前一样,你可以让它独立地选择单词,但是用概率来反映它们在英语中的频率:
REPRESENTINGANDSPEEDILYISANGOODAPTORCOMECANDIFFERENTNATURALHEREHETHEAINCAMETHETOOFTOEXPERTGRAYCOMETOFURNISHESTHELINEMESSAGEHADBETHESE.
或者你可以让选词的概率依赖于前面的单词,以反映真实的英语:
THEHEADANDINFRONTALATTACKONANENGLISHWRITERTHATTHECHARACTEROFTHISPOINTISTHEREFOREANOTHERMETHODFORTHELETTERSTHATTHETIMEOFWHOEVERTOLDTHEPROBLEMFORANUNEXPECTED.
那并不差!Shannon似乎已经停在这里了,但是想象一下继续这样的思路,让一个单词的概率依赖于前两个,三个,四个单词。在某种程度上,你可能会写出一些读起来很不错的东西。
香农在他年的里程碑式论文《通信的数学理论》中发表了这些例子。他的目标是提高通过电报、电视和广播等媒体的通信效率。这里的例子可能看起来有点傻,但他发展的整个理论变得如此有影响力,以至于香农被称为信息论之父。
另一个与之相关但又有所不同的概念是,一只猴子在一个打字器上随机打字,每个键都有相同的命中概率——这就是我们在上面第一个例子中遇到的情况。但是,不是生成一个短字符串,而是给猴子无限的时间来打字。猴子最终会产生一些有意义的东西,比如莎士比亚的全集。
作者:Marianne
翻译:IfAny