Сегодня я хочу рассказать про свой опыт генерации текста песен с помощью python и библиотеки Markovify


Дисклеймер: автор хотел повеселить себя вечером и не придумал ничего лучше, как:


В качестве корпуса для "обучения" цепи я буду использовать текст песен группы Кис Кис.


image


Пикча выше иллюстрирует то как работает цепь Маркова. А вот неплохая статья.


Начало


Я предполагаю что читатель уже сколько знаком с питоном и имеет предустановленную IDE и Python версии >3.5.


Установим необходимую библиотеку :


pip install markovify

Теперь накопируем себе текстов песен и немного их обработаем, для этого напишем простенький обработчик текста. Удалим "мусорные" слова типа припев, куплет а так же цифры, для этого напишем простенький обработчик текста.


IND = "Припев"
Find2 = "Переход:"
INFILE = "corpus.txt"
OUTFILE = "output.txt"
ENC = "utf-8"
with open(INFILE, encoding="UTF-") as infile, open(OUTFILE, "w", encoding="UTF-8") as outfile:
    for line in infile:
        if FIND or Find2 not in line:
            outfile.write(line)

os.remove(INFILE)
os.rename(OUTFILE, INFILE)

текст который я уже обработал


А теперь давайте воспользуемся этой замечательной библиотекой и наконец генерить наши тексты .


with open("C:/Users/alexd/PycharmProjects/untitled/corpus.txt",encoding='utf-8') as f:
    text = f.read()
text_model = markovify.Text(text)
for i in range(10):
    print(text_model.make_short_sentence(380))

Результат:


Но на тебе я ставлю точку, это точно, Вот мое тебе «пока». Я говорю тебе в ответ: Что еще тут непонятно?

Итог


Я постарался максимально коротко рассказать как за всего несколько минут сгенерировать текст практически чего угодно. Зачем? -Ну, это весело. Бесполезно, но чертовски весело.


Генератор школьных эссе


Использованные материалы