1. 随机文本生成
如何生成随机文本?要解决这个问题,首先必须知道什么是随机文本。这里说的”随机文本“是一种有”意义“的”随机文本“。有“意义”是指所生成的随机文本在一定程度上是符合自然语言规则的。具体对于英语来说,作者提到的随机文本有两个层次,一个是letter-level(字母级别),一个是word-level(单词级别)。所谓letter-level就是”随机“字母拼成的字母序列,word-level就是”随机“英语单词拼成的文本。上面提到的“符合自然语言规则”可以这样理解:对于字母级别,是指由随机字母序列拼成的单词应在一定程度上符合英语的单词拼写规则;对于单词级别,是指由随机单词拼成的单词序列应在一定程度上符合英语的语法规则。
如何生成随机文本?最笨的方法是:对于letter-level,就是随机输出字母表中的字母和空格;对于word-level,就是随机输出字典中的单词。 这样做的确非常随机和简单,但这样生成的文本很可能没有任何”意义“。实际上,对于英文单词来说,某一个字母后面会出现什么字母的概率是不相等的。例如:如果当前字母是Q,那么下一个字母是U的可能行很大,而出现字母X的概率却很小。我们可以先读取一个样本(如《编程珠玑》的内容),统计A以后每个字母出现的次数、B之后每个字母出现的概率,等等。因此,在生成随机