Python中的数据建模、模拟与关联分析
1. 隐马尔可夫模型(HMM)在文本生成中的应用
1.1 短脚本的HMM分析
当脚本字母数少于70,000时,使用键长为10的HMM会出现部分键有多种选择的情况。生成的脚本会出现混乱,虽然每个说话者的台词完整,但顺序错乱。以士兵2的台词为例,在原剧中,士兵1在“creeper”台词后会说话,但不会说“Pull the other one!” 以下是键长为10时《圣杯》可能的转换代码:
dct['creeper !\n\n']
Out []: (['s'], [1])
dct['reeper !\n\ns']
Out []: (['o'], [1])
dct['ldier #1: ']
Out []:
(['h', 'p', 'w', 'y', 'f', 'a', 'i', 'l', 'o', 'b', 's', 'n'],
[1, 1, 5, 2, 1, 2, 1, 1, 1, 1, 1, 1])
从代码可以看出,“creeper !\n\n”之后只能转换到字母 “s”,“reeper !\n\ns”之后只能转换到字母 “o”,这逐步构建出下一个说话者“士兵1”。但“ldier #1: ”这个键没有关于前一行台词的信息,所以不同人的台词之间没有关联,士兵1的台词可以是他在剧中的任意一句。
1.2 跨剧本的HMM训练
使用HMM复制莎士比亚文本和《罗密欧与朱丽叶》剧本后,尝试用一个新的HMM在两部剧上进行训练,一部是《罗密欧与朱丽叶》,另一部是风格迥异的《巨蟒与圣杯》。当键长为10时,生成的
超级会员免费看
订阅专栏 解锁全文
1260

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



