我正在编程类的介绍中,我们的最后一个项目是创建一个句子生成器。要求是我们必须采样输入,将其剥离为小写字母,使用马尔可夫模型确定转移概率(a到e,e到t等),并将它们存储到字典中。例如,e的字典看起来像这样:
e_trans = {' em':0.0769,' e':0.2307,' ea':0.3077,' es':0.1538 ,':':0.0769,' ee':0.1538}
然后我们必须创建一个使用这些概率创建随机句子的生成器。
我还没有走得太远,因为我甚至不知道从哪里开始获取概率。我们不能使用任何Markov Model包用于python。任何帮助将不胜感激。
我到目前为止的代码是:
import random
inputFile = open("input.txt", 'r')
rawdata = inputFile.read()
rawdata = rawdata.lower()
rawdata = rawdata.replace('-',' ')
data = (' ')
for character in rawdata:
if ord(character) == 32:
data += character
elif ord(character) > 96 and ord(character) < 123:
data += character
data += ' '
print(data)
S = {}
for letter in data:
if letter not in S:
S += letter
print(S)
inputFile.close()
答案 0 :(得分:0)
计算每种过渡的数量,并将它们除以过渡总数。