Компьютер научили писать четверостишия «как у Шекспира»

Международная команда разработчиков обучила нейросеть сочинять катрены — отдельные четверостишия, из которых состоит английский, или шекспировский, сонет. Алгоритм был обучен на почти трех тысячах сонетов, включая 154 произведения, написанных Уильямом Шекспиром. Полученные четверостишия выдержаны в плане поэтической формы и стихотворного размера, но уступают настоящим в вопросах содержания и языка. Работа опубликована на сайте Ассоциации компьютерной лингвистики (Association for Computational Linguistics).

Современные методы машинного обучения позволяют разработчикам решать не только прикладные задачи, но и творческие. К примеру, новейшие архитектуры нейросетей можно использовать для того, чтобы создавать оригинальные произведения искусства или даже писать книги. Гораздо более сложная задача — автоматическое написание стихотворных произведений: компьютер необходимо научить не только складывать слова в грамматически правильный текст, но и держать этот текст в рамках определенной стихотворной формы.

Стихотворный размер (тип и количество стоп в строке) можно задать системе изначально, а можно — научить компьютер вычленять его самостоятельно, без учителя. Этим решили заняться разработчики под руководством Адама Хэммонда (Adam Hammond) из Университета Торонто. Архитектура их системы состоит из трех моделей. Первая модель, языковая, работает на основе рекуррентной нейросети с долгой краткосрочной памятью и отвечает за составление связного текста. Вторая модель, пентаметрическая, учится правильно определять ударный слог и делить строку на стопы. Третья модель учится рифмовать. Шекспировский сонет состоит из трех катренов и заключительного рифмованного двустишия. В катренах используется перекрестная рифмовка (рифмуются попарно четные и нечетные строки). Основная задача рифмующей системы — отличать рифмованные и нерифмованные окончания (последние слова) строк.

Все три части системы обучались на 154 сонетах Уильяма Шекспира и еще примерно 2600 сонетах, взятых из корпуса проекта «Гутенберг». Задача обученной системы — создание катрена подходящего под сонет стихотворного размера. Полученные четверостишия разработчики попросили оценить профессора английской литературы. По его словам, системе удалось выдержать форму катрена, но не смысловую составляющую: полученным произведениям не хватает «читаемости и эмоциональности»:

So gently, as the wind that flaps his wings
And shoots a monarch on the English lays
And what was that, with matters of all things
Tis well ashamed to know— of all her ways

Необходимо отметить, что, научив нейросеть сочинять отдельные катрены, авторы исследования не научили сочинять ее целые сонеты. Сонет — очень сложная поэтическая форма, разные части которой выполняют многообразные функции в рамках поэтического целого; произвольно разнимать его на отдельные катрены и двустишия нельзя. Например, ключевое значение для всех видов сонета (английского, итальянского) играет так называемый «поворот» (агл. turn, ит. volta): он наступает в стихотворении после того, как один тип поэтической инерции, заданный начальными строками, сменяется другим типом в завершающих строках. Так, в итальянском сонете «поворот» происходит между двумя начальными катренами и двумя конечными терцетами; восемь строк противопоставлены шести. В английском сонете «поворот» находится ближе к финалу стихотворения: трем катренам противопоставлены две заключительные строки (двенадцать строк против двух). Именно поэтому конечные двустишия у Шекспира часто носят характер остроумного заключения, неожиданно подтверждающего, опровергающего или переоценивающего сказанное выше.

Исходный код своего проекта разработчики выложили на GitHub: опробовать его может каждый желающий (требуется Python версии 2.7).

Недавно мы опубликовали интервью с адъюнкт-профессором Йоркского университета (Торонто) Натальей Хоменко: из него вы можете узнать о том, как пьесы Шекспира воспринимал советский театральный зритель.

Елизавета Ивтушок, Дмитрий Иванов

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.