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

Міжнародна команда розробників навчила нейромережу складати катрени - окремі чотириростиші, з яких складається англійська, або шекспірівська, сонет. Алгоритм був навчений на майже трьох тисячах сонетів, включаючи 154 твори, написаних Вільямом Шекспіром. Отримані чотириростиші витримані в плані поетичної форми і віршованого розміру, але поступаються справжнім у питаннях змісту і мови. Робота опублікована на сайті Асоціації комп'ютерної лінгвістики (Association for Computational Linguistics).


Сучасні методи машинного навчання дозволяють розробникам вирішувати не тільки прикладні завдання, а й творчі. Наприклад, новітні архітектури нейромереж можна використовувати для того, щоб створювати оригінальні твори мистецтва або навіть писати книги. Набагато складніше завдання - автоматичне написання віршованих творів: комп'ютер необхідно навчити не тільки складати слова в граматично правильний текст, але і тримати цей текст в рамках певної віршованої форми.


Віршований розмір (тип і кількість стоп у рядку) можна задати системі спочатку, а можна - навчити комп'ютер вичленувати його самостійно, без учителя. Цим вирішили зайнятися розробники під керівництвом Адама Хеммонда (Adam Hammond) з Університету Торонто. Архітектура їхньої системи складається з трьох моделей. Перша модель, мовна, працює на основі рекуррентної нейромережі з довгою короткостроковою пам'яттю і відповідає за складання зв'язкового тексту. Друга модель, пентаметрична, вчиться правильно визначати ударний слог і ділити рядок на стопи. Третя модель вчиться римувати. Шекспірівський сонет складається з трьох катренів і заключного римованого двустишя. У катренах використовується перехресна римівка (римуються попарно парні і непарні рядки). Основне завдання рифмуючої системи - відрізняти римовані і нерифмовані закінчення (останні слова) рядків.

Всі три частини системи навчалися на 154 сонетах Вільяма Шекспіра і ще приблизно 2600 сонетах, узятих з корпусу проекту «Гутенберг». Завдання навченої системи - створення катрена відповідного під сонет віршованого розміру. Отримані чотириростишчя розробники попросили оцінити професора англійської літератури. За його словами, системі вдалося витримати форму катрена, але не смислову складову: отриманим творам не вистачає «читаності та емоційності»:

So gently, as the wind that flaps his wingsAnd shoots a monarch on the English laysAnd what was that, with matters of all thingsTis well ashamed to know— of all her ways

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

Вихідний код свого проекту розробники виклали на GitHub: випробувати його може кожен бажаючий (потрібно Python версії 2.7).

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


COM_SPPAGEBUILDER_NO_ITEMS_FOUND