隐藏的莎士比亚模型:文本生成的探索与挑战
莎士比亚的作品与现代文本有着显著的差异,读者很容易察觉到几个世纪前的沉思与当今散文之间的不同。而经过适当训练的隐马尔可夫模型(HMM)也能够捕捉到这两种风格的差异。本文将详细介绍如何在莎士比亚的文本上训练HMM,并利用它生成新的文本。
1. 构建隐马尔可夫模型(HMM)
HMM是基于连续字母的概率构建的。以文本 “So long lives this and this gives life to thee.” 为例,字母 ‘l’ 出现了三次,其中两次后面跟着字母 ‘i’,一次后面跟着字母 ‘o’。因此,在这个小数据集中,字母 ‘l’ 后面跟着字母 ‘o’ 的概率是33%。
在DNA的例子中,HMM是由一系列4×4的矩阵构建的,矩阵的所有16个元素都有显著的值(除了ATG区域)。而在莎士比亚的文本中,有26个小写字母、26个大写字母和标点符号,这样的矩阵大约是55×55,但矩阵会很稀疏。为了降低复杂度,将文本转换为小写,这样仍有39个唯一字符。
与DNA的HMM不同,这里只需要一个矩阵。为了处理稀疏矩阵,将使用Python字典来存储数据。例如,对于字母 ‘l’,信息将存储为 l: [[‘o’,’i’], [1,2]],其中键是字母,数据是两个列表,第一个列表是后续字母,第二个列表是这些后续字母的计数。
构建这个网络的步骤如下:
1. 加载和清理数据 :莎士比亚的十四行诗存储在名为 sonnets.txt 的文件中,包含超过96,000个字符。使用以下函数加载数据并将所有字符转换为小写:
超级会员免费看
订阅专栏 解锁全文
31

被折叠的 条评论
为什么被折叠?



