KeyError в генераторе текста
Я пытаюсь написать код, который будет собирать статистику о последовательности символов в тексте и генерировать на ее основе новый текст. Это работает при сборе статистики с одним символом, но как только я пытаюсь увеличить количество символов, получаю KeyError:
import zipfile
from random import randint
from pprint import pprint
origin = 'voyna-i-mir.txt'
statistic = {}
chain = ' '
with open(origin, 'r', encoding='cp1251') as file:
for sting in file:
#print(sting)
for symbol in sting:
if chain in statistic:
if symbol in statistic[chain]:
statistic[chain][symbol] += 1
else:
statistic[chain][symbol] = 1
else:
statistic[chain] = {symbol: 1}
chain = chain[1:] + symbol
dictionary = {}
stat_generator = {}
for chain, symbol_stat in statistic.items():
dictionary[chain] = 0
stat_generator[chain] = []
for symbol, count in symbol_stat.items():
dictionary[chain] += count
stat_generator[chain].append([count, symbol])
stat_generator[chain].sort(reverse=True)
gen = 1000
was_print = 0
chain = ' '
while was_print < gen:
symbol_stat = stat_generator[chain]
total = dictionary[chain]
random = randint(1, total)
position = 0
for count, symbol in symbol_stat:
position += count
if random <= position:
break
print(symbol, end='')
was_print += 1
chain = chain[1:] + symbol
Текст ошибки, которую я получаю:
Traceback (most recent call last):
File "C:\Users\O.K\Desktop\\test.py", line 46, in <module>
symbol_stat = stat_generator[chain]
~~~~~~~~~~~~~~^^^^^^^
KeyError: ' -–'