написал простецкий код по "Марковым цепям"
import numpy as np
text = open("che-1.txt", encoding="utf8").read()
corpus = text.split()
def pair(corpus):
for i in range(len(corpus) - 1):
yield corpus[i], corpus[i+1]
pairs = pair(corpus=corpus)
print([i for i in pairs])
#___________________________________________________________
word_dict = {}
for word1, word2 in pairs:
if word1 in word_dict.keys():
word_dict[word1].append(word2)
else:
word_dict[word1] = [word2]
#___________________________________________________________
first_word = np.random.choice(corpus)
while first_word.islower():
first_word = np.random.choice(corpus)
#___________________________________________________________
chain = [first_word]
n_words = 100
for i in range(n_words):
chain.append(np.random.choice(word_dict[chain[-1]]))
print(" ".join(chain))
Так вот строка 13 - print([i for i in pairs]) - странно влияет на код, ибо если ее вырезать, то код будет работать исправно. Если же ее оставить, то будет KeyError на строке 40