Мне нравится концепция, согласно которой речь – это, в первую очередь, не способ коммуникации, а отражение сознания. В таком случае стихи - это отражение красоты сознания. Но сможет ли нейросеть сгенерировать стихотворения, похожие на рукотворные? Давайте попробуем сделать такой алгоритм.
Шаг 1 – выбираем архитектуру
Тренд последних лет в обработке естественных языков (NLP) - использование нейронных сетей. А если смотреть более узко, то - нейронных сетей архитектуры «трансформер», включающих блок внимания «attention». Суть подхода в том, чтобы использовать при кодировке как в энкодере эмбединга (вектор признаков на выходе слоя нейронной сети), так и в декодере, механизм «attention», позволяющий учитывать взаимосвязь между словами и «фокусировать внимание» нейронной сети только на контексте, имеющем значение для слова.
Одной из архитектур на основе трансформеров является ruBERT, его и возьмем. Но для чистоты эксперимента попробуем также использовать и более старый подход, а именно LSTM нейронную сеть.
Шаг 2 – собираем обучающую выборку
Для обучения, а вернее дообучения алгоритма используем:
«Евгений Онегин» А.С. Пушкина. Произведение хорошо тем, что содержит большой объем «однотипного» в плане ритма и структуры текста.
Сборник произведений М.Ю. Лермонтова.
И немного других стихов других авторов.
Шаг 3 – пробуем использовать обычную LSTM на всех трех наборах данных
Получаем следующий результат:
онегин тучки страстей вот, нет, и людей, я тени
не деревне начинает брызги вас,
его им дамских обесславить
виясь, искуситель приведёт
вражду, воскресить ведает полевой
охотно своенравной нетерпеливо
и правда ли, придает
улыбкой конце бы провождая,
всё забрезжит нас евгений
везде звучные изнывать,
с клонит смиренной природа
Отдельные слова похожи на оригинал – смысла нет! Сделаем еще попытку.
Шаг 4 – Оставим только «Евгения Онегина» для обучения
Применим параметр temperature = 0,3
«мой дядя самых честных правил,
когда не в шутку занемог,
он уважать себя заставил и лучше выдумать не мог.
а нынче бы в обществе принесть что ольга резвая твоя?»
бывало, льстивый ты, ни карт, ни зарею плод. и,
сохраненная судьбой, и холод гордости спокойной,
и, флер и кинжал, парисокружных городков, подходит
в таинственной гондоле;
с ней обретут и мнения супруга и вслед и захотел.
, кипящим в действии пустом.
когда б в сраженьях изувечен, гляди…
как грустно, с закон несчастной вменяя
и неотвязчивый лорнет
привычкой герою. , и теплотой
и начинает понемногу родной
и прыгать не хотела качая после, на земле
взять притворным в поле вертится около молчанье,
и в легковерным ослепленьем чего,
сплин в сениюделе скончался
бабушкам и дедам не потому ль,
что в высшем свете теперь являться за цели,
как будто громом поражен.
и, умиленными очами неверный зацепляя лед,
людская молвь и конский топ
но я бороться вручаю эпиграмм.
Стало лучше – появилось что-то похожее на рифму, хотя смысла по прежнему нет.
Используем temperature = 1.2
«мой дядя самых честных правил ,
когда не в шутку занемог ,
он уважать себя заставил
и лучше выдумать не мог.
а нынче бы в обществе принесть
еще соблазнительную честь?
а счастье , которым и может
не потому ль , что такое:
в субботу. неба безмятежных ,
ничтожный призрак , живой ,
скользя , ползет –и как-нибудь ,
и в шуме и любой многих ,
как сади себя пиит.
и , зарыдав , княжну алину,
неумолимых , неподкупных ,
непостижимых условною красой
с нем , по таинственному древу;
запретный плод сиживал один.
Смысла тут по прежнему нет. Хотя, если сильно постараться и представить, что это «очень современное искусство», возможно, даже получится его найти!
А если добавить рока?
Попробуем AC/DC с обучением на их песнях, а не на «Евгении Онегине», разумеется.
Неплохо, неплохо, но без музыки непонятно.
Шаг 5 – применим тяжелую артиллерию ruBERT
Используем Temperature = 0,3
•И шагом едет в чистом поле,
•В мечтанья погрузясь;
•Душа его полна сожалений: "Что-то с
•Ольгой стало? –
•В ней сердце долго ли страдало и как будто бы похорошело.
•Но вот уж луна обходит кругом небесный свод...
•И всё ей кажется темным да мрачным!..
•Она глядит не на дорогу –видит лишь верхушки лип…
•Да полно!
•Всякое может быть!"
•Тут он вспомнил про
•Ленского своего соседа по имени
•Владимир
•Петушков.
•Тот недавно овдовел совсем (жена умерла вскоре после родов), а детей нет у него вовсе."
Ого-го, рифма белая, конечно, но уже похоже на творчество человека!
Добавим температуры. Temperature = 0,6
И шагом едет в чистом поле,
•В мечтанья погрузясь;
•Душа его полна сожалений: "Где же ты?
•Уж эти мне поэты!"
•И вот он подъехал к селению.
•Открылись ему двери... и входит туда грустный
•Евгений… нет ее!
•Он проникает через другие покои (замечу мимоходом)
And find shimself in a room full of women sitting alone aga inst fire tablets by whichroast beef is spread ingon the irthroat’es while still dancing men a round them a replay ingcards at the door way opposite him. •He looked for help but found noone else than his own assistant swhow •So he went back into town hope lessly hungry that night without saying any thing except what happenste thow was wrong so far".
Так, началось за здравие, а закончилось за «London is the capital of Great Britain».
Хорошо, добавим еще немного температуры.
Temperature = 2.1
•«Мой дядя самых честных правил,
•Когда не в шутку занемогнув(Что случалось с ним довольно часто),он уважать себя заставил;
Но если бы даже очень захотел...», —сказал е я отец. «Не может быть! -воскликнул
•Евгений.-
•Я это видал».
•И вот проказник вырос гордый и надменный: он уверен уж порядком отомстить обидчику*.
•Но выслушав печальный рассказ отца о том самом случае(Как узнал потом наш герой-сыщик)сжалился родитель молодой и пожалел его:-
•Мой бедный мальчик!-промолвил наконец Пророк слезным голосом амнистии невинной полный освободить тебя обещал. Ах как боялся я утраты за друга жизни драгоценной!..Вдруг мысль яснеет мне моя:"еслиб только мог оказать услугу я этому простому человеку!"
•Тут мой
•Онегин вспомнил про обещание своё Остаться наедине со мной Дабы рассеять горе напрасное опять задумчивой души его младое воображенье Раскаялось.
Тут без комментариев – делайте выводы сами.
Попробуем начать с фразы «Татьяна вы больны …»
Татьяна вы больны,
•Вы слишком чувствительны для других; Досугам посвятитесь беспечным:
•Сочтете страстной жизнь чужую –
•И вас тоска кольнет.
•Когда ж и где?
•Ужели в ссылке глухой?..
•Нет-с!
•Право же (совесть во мне говорит), я счастлив… хоть не без греха».
•Тут он зевнул сладко такою складкою губок своих длинных and went to the table where
•Annette lay alone against a window closed by fire.
•Там на столе горела свеча...И рядом с ней лежал листок бумаги сложенный тобой.
•Together they wrote something together in such simple language that
•I could easily under stand without muchef for to f mind what was written there in «Вот это да!» –сказал Евгений усмехаясь
Действительно – вот это да, London is the capital of Great Britain!
Хорошо, попробуем начать с «Когда я на почте служил ямщиком …»
Я три раза был ранен, но не дрогнул.
•Я тридцать лет холостой: ни женушки ласки нетолерантной, ни подруг нежных зимних вечеров.
Пора мне сделаться умней и тверже -жениться пора!
•Но полно.-
•Мне скоро сорок девять годков.—сказал как-то •Евгений*.
•И добавил с какой то непонятной улыбкой
•(Что за ерунда?)И точно также замолчав запрягнул свою лошадку...Опять задумался он над своей судьбой."Нучто ж?
•Судьбу мою поправлю непременно!-решил наконец
•Владимир
•Ленской****** "Но где же взять денег?" —снова обратился к нему поэт со слезным вопросом". «Найдешь»,—отвечал ему приятельски осклабя взор ".Слушай!" –воскликнул
•Онегин протягивая руку юноше "Даты садись поскорей да разгружайся",–торопил его сосед по саням ""Как здоровье твое?", −спросил
А если начать с «я свободен словно …»
Я свободен словно ветер,
•Я могу ль тебя любить?
•Мой милый! что ты подумал?.. Ты спросил меня однажды: «Кого?»
•Я сказал ему.
•Он отвечал мне также».*****«Кто же он?», –снова раздался немой вопрос.-"Никто; но кто ж его мать?».
•И вот я здесь сам не знаю…-начал было
•Онегин рассуждать вслух своим замечательным слогом о разных материях и наконец кончил:-
•Мой бедный
•Ленский!.. ужели для того лишь создал бог наш райские кущи, чтобы над ними властвовать нам?-
•Нет (совесть в том порукой), однако мысль благая у него иногда шевелится).–•Ну так сделай одолженье твое,-обратился
•Евгений к другу с нежданной просьбой своей души. И друг тотчас согласился...
И напоследок, начинаем с «у меня во дворе ходит девочка с каре …»
А у меня во дворе ходит девочка с каретом,
Ей тринадцать лет; она грустна и молчалива.
Когда ж настанет время ей стать девицей?
Когда падучая звезда упадет к ней в окно,-ей будет грустно!
Но не беда: вскоре отрада придет другая:-улыбнись ты сам себе!-и тоска по деве молодой пройдет.
Тогда запиши ее при луне под березой...
И скоро твой печальный глас раздается опять -звучно так же ясно как день!..
Но эта песня любви тебе чуждою кажется."-Какая глупая песенка!" подумал Евгений*.
Итого
Что-то похожее на смысл у нас получилось с использованием ruBERT при аккуратном подборе параметра “temperature”.
Выводы делать вам и только вам. Но давайте будем честны: нейросеть, конечно, не Пушкин, но в отличие от стихов некоторых людей, в нейростихах можно даже найти смысл, если очень долго искать;)
Статья написана на основе работы Максима Макарова @maxcoolmakarov.
Ознакомиться с кодом, примерами, ML моделями и т.д. вы можете по ссылке.
А если вы хотите где-то развернуть это (или собственное) решение, то вы можете сделать это бесплатно в нашем облаке – Amvera. Мы проводим бета-тест, и будем рады бесплатно предоставить вам вычислительный ресурс в обмен на обратную связь.
Комментарии (11)
Jury_78
14.11.2022 12:01+2Осталось попробовать Луку Мудищева :)
static_cast
14.11.2022 13:45+1Барков это как-то плосковато и слишком архаично, конечно.
А вот что-нибудь в стиле Леонида Филатова сгенерировать было бы интересно.
Jury_78
14.11.2022 15:36Ну уж... Онегин не архаично? Может плоское проще для н.сети :)
Да и неизвестно, может это и не Барков?
xsevenbeta
14.11.2022 14:06+1Читаю вот, что нейросеть сгенерила и думаю что мой мозг похоже в любых бреднях смысл найти может :))
vak0
14.11.2022 21:55+2And find shimself in a room... я аж секунд на 5 залип, соображая, что же тут не так. Shimself... - по-моему, это шедевр! :)
Zorgovskiy
15.11.2022 16:03Напомнило Internet Exploder с настраиваемой "глокостью" куздры. Генерация текста "before it was cool".
agentprog
Пример с AC/DC понравился. Правда у меня сложилось ощущение, что нейросетка так и не смогла в ритмику. А то можно было бы так генерировать тексты песен :)
kirillkosolapov Автор
Если прочитать тексты песен группы "Мельница", лично у меня складывается чувство, что без нейросети там не обошлось!
dyadyaSerezha
А ритмики и не может быть, потому что слова даются сети без инфы про ударения.