Как мы уже рассказывали, нейросети сейчас используются в бизнесе и медицине, новые технологии помогают инженерам и ученым. Однако используются они не только с сугубо практическими целями. Например, специалисты «тренируют» нейросети на написание музыки и стихов. Неужели однажды искусственный интеллект научится писать стихи лучше, чем настоящие поэты?
Первые попытки
Программы для автоматизированного (а затем — и автоматического) написания стихотворений пытались создать уже более полувека назад. Первые попытки создания программ, генерирующих поэтические тексты, относятся еще к началу 1960-х годов. Одним из первопроходцев в области компьютерной поэзии стал настоящий писатель, знаменитый южноафриканский прозаик Джон Максвелл Кутзее (Букеровские премии 1983 и 1999 г., Нобелевская премия 2003 г.). До того как стать профессиональным писателем, Кутзее изучал математику и работал программистом в компании IBM. С 1962 г. он работал с наиболее производительными компьютерами того времени и, разумеется, заинтересовался применением технологий в литературе.
Кутзее в те годы по ночам на суперкомпьютере Atlas подбирал и распечатывал комбинации слов, найденных компьютером по специально составленным словарям. Слова подбирались случайно, программу для поиска слов и отдельных фраз Кутзее написал на Atlas Autocode — специальном языке программирования, созданном для суперкомпьютера Atlas. В итоге у будущего знаменитого прозаика появлялись наборы из сотен странноватых фраз, например, «дремлющий меч» (drowsy sword), «география предостережения» (the geography of caution) и т.п. Комбинируя в цикле автоматически подобранные фразы, Кутзее получал абсурдные нерифмованные произведения. Программа выдавала до 75 стихотворений в минуту. Некоторые из них были опубликованы в литературных альманахах.
Подобный подход использовался довольно долго, в 1970-е годы также появились более производительные программы, создающие поэтические тексты из случайных слов и выражений, перебираемых по заданному словарю. Отметим, что практически все подобные программы создавали тексты на английском языке. Кроме очевидных причин (для подавляющего большинства разработчиков английский был родным языком) можно отметить два важных фактора:
- Современный английский язык — аналитический, и в нем осталось лишь три падежа (общий и притяжательный у существительных, объектный — у местоимений), что несколько упрощает построение грамматически приемлемых конструкций. Для сравнения: в русском языке 6 падежей, в польском — 7, в венгерском — 18 основных и еще 7 могут употребляться не со всеми словами.
- Рифмованная поэзия у англоязычных авторов отошла на второй план уже в начале двадцатого века. Соответственно, и англоязычные программисты разрабатывали компьютерных «поэтов», пишущих нерифмованные произведения, алгоритмы подбора рифм сначала вообще не создавались.
Однако первые программы, генерирующие поэтические тексты, имели один существенный недостаток.
Ранние программы, генерировавшие поэтические тексты, уже выдавали грамматически правильные конструкции. Но, увы, фразы и предложения получались абсолютно бессмысленными.
В поисках рифмы
Следующим шагом в создании программ-поэтов стала разработка алгоритмов подбора рифм. Первые подобные программы появились еще в начале 1980-х годов. Хорошим подспорьем для программистов стало значительное количество выходящих словарей рифм английского языка. Специалисты уже к середине двадцатого века составили объемные словари рифм современного английского языка, а также рифм викторианской эпохи, рифм средневековой поэзии и т.д.
Здесь мы вновь возвращаемся к англо-американской поэтической традиции: рифмованная поэзия отошла здесь на второй план во многом потому, что рифмы стали слишком предсказуемыми, как для автора, так и для читателя. Но для разработчиков ПО предсказуемость английской рифмы стала подарком: начали создаваться базы данных рифм. Разработанные алгоритмы «достраивали» строку, подбирая ее под выбранную рифму и заданный размер.
Программы, работающие по таким алгоритмам, существуют и в наше время. Приведем небольшой отрывок сонета, созданного подобной программой:
The dirty rusty wooden dresser drawer. // Грязный ржавый деревянный ящик комода.
A couple million people wearing drawers, // Пара миллионов людей, одетых в ящики,
Or looking through a lonely oven door, // Или глядящие через одинокую дверцу духовки
Flowers covered under marble floors. // Цветы, скрытые под мраморным полом.
Как видим, структура стихотворения довольно правильная, но в целом текст, конечно, лишен смысла.
А что у нас?
Программы, пишущие стихи на русском языке, появились в начале 1990-х годов (возможно, были и более ранние несохранившиеся разработки). Первые русские компьютерные «поэты» умели немного: несколько ранних программ умели подбирать и рифмовать слова строго по заданному словарю, из-за чего получаемые тексты были однотипными.
Пожалуй, первой по-настоящему интересной разработкой стал дипломный проект писателя Леонида Каганова (1996 год). Разработанная им программа создавала рифмованные стихотворения на основе специально подготовленных текстовых файлов. Для получения приемлемого результата от человека требовалось расставить ударения в каждом слове текстового файла. Как известно, ударение в русском языке подвижное. Склонение, образование множественного числа, спряжение сопровождаются сдвигом ударных слогов (нога — ногу, окно — окна и т.п.), поэтому точно предугадать ударение в каждом слове практически невозможно, а значит, ударения надо расставлять вручную. Вот какие тексты получались:
Здесь единица-то — опрос!
Здесь единица-то — вопрос!
Листок. И Ольга. А другая…
Оно все объяснял вчера,
И будет через полтора,
А вместо третьего трамвая…
Ритм и рифма на месте, но текст опять-таки сложно назвать осмысленным.
Нейросети пишут стихи
Ситуация значительно изменилась только в начале 2010-х, когда тексты начали генерироваться нейросетями. Разработчики смогли натренировать нейросетевые алгоритмы на огромном массиве текстов на естественных языках (таких, как русский, английский и т.д.), что позволило получить стихотворения, написанные в стилистике знаменитых поэтов прошлого.
В России компьютерной поэзией сейчас занимается Яндекс. Конечно, основная задача компании — улучшение качества поиска в интернете, но использование нейросетевых алгоритмов позволяет заниматься и созданием рифмованных текстов. Вот фрагмент стихотворения, созданного нейросетью Яндекса:
так будет завтра длиться
в темном сумраке сада
там где пляшет колесница
от радости бога награда
В данном случае нейросеть пыталась воспроизвести манеру Анны Ахматовой. Насколько это удалось — судить вам. Для обучения сети потребовалось 130 мегабайт чистого текста (это в 26 раз больше собрания сочинений Шекспира).
Как видно из приведенного фрагмента, применение нейросетей позволило решить некоторые стилистические задачи. Например, нейросеть, многократно «перечитавшая» стихотворения Есенина, начнет пытаться копировать оригинальную манеру написания текстов. Весьма вероятно и копирование каких-то узнаваемых черт поэтического текста (например, в случае с Есениным — бессуфиксное словообразование, «стынь», «водь» и т.п.). Однако поэтический текст по-прежнему останется бессмысленным.
Таким образом, познакомившись с историей и современным состоянием компьютерной поэзии, мы можем ответить на главный вопрос — когда компьютер научится писать стихотворения лучше, чем человек?
Судя по современным стихотворениям, сгенерированным нейронными сетями, искусственный интеллект начнет генерировать осмысленные рифмованные тексты лишь в отдаленном будущем (скорее всего, не ранее, чем через несколько десятков лет). При этом формальная грамматическая правильность подобных стихотворений вполне достижима.
К тому же возникает закономерный вопрос: даже если нейронная сеть сможет однажды сгенерировать осмысленный текст, будет ли результат восприниматься человеком, как поэзия? Будет ли в этом тексте очевидна субъективная новизна текста? Однозначного ответа на этот вопрос пока нет. Как часто говорят в подобных случаях, поживем — увидим.