Нейронная оборона: запись альбома-посвящения Егору Летову при помощи нейросетей

Структурные эксперименты

За неделю поиск обрабатывает пару миллиардов запросов. Среди них можно найти строки в каком угодно размере: хорее, ямбе и так далее. Самые первые «стихи», которые сгенерировал Автопоэт, были белыми — я поставил фильтрацию с учётом стихотворного размера, но не требовал наличия рифмы:

Затем «Автопоэт» научился рифмовать строки. Я придумал простейший алгоритм — решил сравнивать концовки фонетических транскрипций запросов, начиная от последнего ударного слога. Если концовки совпадают, можно считать, что строки рифмуются. Надо лишь убедиться, что мы не срифмовали слово само с собой. На удивление, такая простая эвристика оказалась вполне рабочей (хотя и может быть ослаблена). Вот пример простейшей рифмовки:

На этом этапе я выложил «Автопоэта» во внутреннюю соцсеть «Яндекса». Посыпались идеи: давайте научим его генерировать хокку, порошки, пирожки, депрессяшки. Результаты этих наших экспериментов можно найти на yandex.ru/autopoet.

Эксперименты с материалом

Внезапный интерес к «Автопоэту» со стороны публики побудил нас продолжить эксперименты с разными подходами и массивами текстов. Коллеги из различных сервисов «Яндекса» приносили нам свои текстовые данные, чтобы мы их зарифмовали. Так, например, появилась рифмовка названий остановок из базы приложения «Яндекс.Транспорт»:

Мы воспроизвели и классическую шутку с рифмовкой числительных:

В этом году на 1 апреля мы опубликовали стихи из заголовков российских новостей. Были и внутренние эксперименты — например, стихи на базе англоязычных поисковых запросов, а также перерифмовка строк известных поэтов (лимерики из Бродского и прочее). Так или иначе, со структурной составляющей практически все вопросы уже закрыты.

Структура

Разберёмся со структурой — эту часть поэзии достаточно просто формализовать. Во-первых, мы ожидаем, что стих состоит из последовательности строк, сгруппированных в строфы. Во-вторых, для этих строк должны выполняться некоторые ритмические условия. В силлабическом, тоническом, силлабо-тоническом и других стихах эти условия формулируются по-разному, но так или иначе всё сводится к оценке ударности и длительности каждого слога. В-третьих, может потребоваться некоторая фонетическая согласованность между разными строками — это, например, может быть рифма или аллитерация.

Таким образом, если мы умеем (а мы умеем) строить фонетическую транскрипцию произвольной строчки текста, то остаётся чисто техническая задача — написать алгоритм, который определяет, подходят ли две строки друг другу. Нам нужно построить фонетическую транскрипцию, посчитать слоги и определить длительность каждого из них, установить соответствие строки желаемому стихотворному размеру и проверить две строки на наличие взаимной рифмы. Если у нас есть очень много текстовых строк, мы можем их автоматически отфильтровать и составить случайные наборы, согласованные с точки зрения поэтической структуры.

Стиль

Структурные характеристики формализовать достаточно просто. Куда сложней определить стиль текста и управлять им. Достаточно начитанный человек, скорее всего, сможет отличить стихотворение Пушкина от стихотворения Бродского, даже если он никогда не читал конкретно эти произведения. Но как формализовать принципы, по которым происходит такая идентификация?

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

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

Как это работает? Крайне упрощая, можно сказать, что некоторая математическая модель (нейросеть) была обучена воспроизводить стиль некоторого художника. Здесь очень важно, что она не сделана для подражания конкретному художнику, а именно обучена.

Мы берём эту модель и показываем ей много картин Мондриана — и она сама начинает копировать его стиль. Если мы возьмём ту же сеть и будем показывать ей Мунка, то она научится подражать Мунку. Нам не требуется объяснять, в чём состоит специфика стиля того или иного художника, чем Мунк отличается от Мондриана. Мы просто показываем нейросети разные картины, пока она сама не ухватит суть.

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

* * *

* * *

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

Поисковые запросы

В силу специфики своей работы я довольно много изучал поток поисковых запросов к «Яндексу» — естественно, обезличенный, без привязки к конкретным пользователям. В день люди задают «Яндексу» примерно триста миллионов запросов, и около половины из них — уникальные, то есть не повторяющие друг друга.

Из поисковых запросов можно почерпнуть много занимательного: они отражают интересы и чаяния людей, а кроме того, это бездонная кладезь текстового материала. В своё время лингвисты Яндекса сделали несколько докладов о языке, который люди используют в поисковых запросах. Этот язык упрощён, а его неписаные правила не всегда соответствуют русской грамматике.

Часто правила обусловлены обратной связью: если поиск долгое время не находит нужного по тому или иному запросу, люди перестают его задавать и начинают спрашивать по-другому. Постепенно вырабатываются определённые коллективные привычки, своего рода пиджин. Появляются монструозные конструкции наподобие «смотреть онлайн бесплатно в хорошем качестве без регистрации без SMS». Но в редких, низкочастотных запросах по-прежнему видна настоящая человеческая жизнь:

  • [что повесить в квартире чтобы выйти замуж],
  • [тададададам хоккей мелодия],
  • [порно для нокии 320х240],
  • [красные трусы на люстре к любви отзывы],
  • [я так и думала что это ЧМ мы не выиграем].

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий