Как создать Маркову цепь с файлом под названием 1.txt(работаю в collab)

import os
import markovify

import markovify

with open("1.txt", encoding='utf-8') as f:
    text = f.read()
text_model = markovify.Text(text)
for i in range(4):
    print(text_model.make_short_sentence(380))

вот код, что я набросал, но результат выходит следующий:

None
None
None
None

Что делать? поправка: при внесении большого текста, как например приведённого в ответе ниже, он выдаёт следующую ошибку:

KeyError                                  Traceback (most recent call last)
<ipython-input-13-d9c4af63990a> in <module>()
      6 
      7 # Build the model.
----> 8 text_model = markovify.Text(text)
      9 
     10 # Print one randomly-generated sentence

2 frames
/usr/local/lib/python3.6/dist-packages/markovify/chain.py in precompute_begin_state(self)
     96         """
     97         begin_state = tuple([ BEGIN ] * self.state_size)
---> 98         choices, cumdist = compile_next(self.model[begin_state])
     99         self.begin_cumdist = cumdist
    100         self.begin_choices = choices

KeyError: ('___BEGIN__', '___BEGIN__')

Ответы (1 шт):

Автор решения: MarianD

Метод .make_short_sentence() возвращает None, когда он не может сгенерировать предложение.

Вероятно ваш текст очень короткий, с небольшим количеством предложений, чтобы было возможно сделать с него предложение не совпадающие очень сильно с частью оригинального текста.

Сделайте ваш текст в файле 1.txt более длинным, с большим количеством длинных предложений.

(Например более чем 1 KB с более чем 8 длинными предложениями.)


Пример вывода из вашей программы, когда в файле 1.txt сказка Волк и лиса:

Было у меня и маслице слизала да муку рассыпала?
Стала в кладовушке подлизано!
Явилась из кладовушки, волку говорит: — Я буду дрова носить, печку топить.
Первую ночь лиса на приступочке спала, на вторую забралась в кладовушку, посмотри там хорошенько.
→ Ссылка