В школе мой урок английского делится на два семестра, первый из которых - введение в поэзию. Я никогда не был большим поклонником поэзии, так как никогда не чувствовал, что могу ее понять. После семестра занятий, на которых мы извлекаем смысл из каждого прочитанного стихотворения, я не думаю, что когда-либо извлекал смысл из любого из них. Это не значит, что поэзия вообще бессмысленна, я думаю, что это прекрасная форма искусства, которую следует ценить и сохранять, но я не отдаю должного ей. Тем не менее, я начал думать: эти стихи настолько бессмысленны для меня, что они кажутся последовательностью слов, которые должны казаться глубокими до такой степени, что компьютер можно запрограммировать на написание таких стихов на основе стихов, которые в него вложены. Так почему бы мне не сделать?

Так я и сделал.

Как в сущности работает программа

Цепи Маркова в том смысле, в каком я их использую, - это способ генерирования языка путем выбора следующего слова на основе предыдущего и вероятностей того, какие слова с наибольшей вероятностью последуют за ним.

Я нахожу эти вероятности, помещая текстовый файл стихов и преобразовывая их в массив всех его слов. Затем я запускаю цикл, который создает словарь Python, в котором каждый ключ представляет собой слово, а его соответствующее значение представляет собой массив каждого слова, которое непосредственно за ним следует.

Стихотворение Маркова создается путем выбора случайного первого слова и выбора каждого последующего слова из словарных значений предыдущего.

Некоторые второстепенные подробности истории

В попытке немного утомить себя я выбрал Рабиндраната Тагора, поэта, которым могу искренне восхищаться. Он был первым азиатским лауреатом Нобелевской премии и героем бенгальской литературы. Мой отец - большой поклонник его работ (особенно потому, что он ценит поэзию намного больше, чем я), поэтому я подумал, что его работа будет хорошей отправной точкой.

Я узнал о книге коротких стихов Тагора под названием Stray Birds и решил использовать ее, поэтому я скачал текст книги из Project Gutenberg. Немного обрабатываю файл .txt, чтобы остались только стихи, назову его stray_birds.txt и скармливаю в программу.

И на этом я оставляю вам исходный код