Как работает генератор стихов
Введите две строки на русском языке. Длина строки не должна превышать 150 знаков. Сохраняйте разбиение на строки.
Если вы не хотите/не можете сочинить даже 2 строки, доверьте это стихороботу! Нажмите вкладку «сочини за меня» и следуйте подсказкам (черный прямоугольник слева). Или посмотрите видеоролик.
Если результат вам понравился и получился интересный робостих, поделитесь с нами. Отправьте его нам через форму обратной связи на странице контактов. Или разместите стих, написанный в соавторстве с роботом на форуме в специальном разделе.

Новости форума
стихотворения, не вошедшие в рубрики Разгильдяи
а лошадь? как с ней быть?(с) А на конях, а на конях – другое дело: всё, что тревожило на днях, всё, что болело, – за пять восторженных минут.
стихи о жизни Ностальгия
Пронзая небо, я несусь один В лазоревом невыносимом свете. Пылающими глотками турбин, С ревущим свистом, втягиваю ветер. Погода миллион на.
лирические стихи По заказу стихи не пишутся
По заказу стихи не пишутся, Разве было когда иначе? Ведь за деньги смыслы не ищутся И душа не поёт и не плачет. Так зачем же ты смотришь.
иронические стихотворения Свет учения поэзии
Свет учения поэзии? – да нет – не увижу, ох, не увижу голубого Нила, жёлтого солнца и песка золотого, ой, не увижу жеребую ослицу, грозную львицу.
AI на минималках 2: Генератор стихов на Prolog
На картинке — четверостишье, сгенерированное моей программой.
Оказывается «стихи» писать легко, нужно только знать несколько необходимых ингредиентов: размер, ритм, рифма. «Стихи» в кавычках, потому что в настоящем стихосложении, как и в любом другом искусстве, незыблемых законов нет. Однако в классике (русской силлабо-тонике) очень много правил, при соблюдении которых получается писать неплохие стихи, даже если вы никогда раньше этого не делали. Причём эти правила довольно просто программируются: «в строке должно быть равно N слогов», «нечётные строки должны рифмоваться», «ударные и безударные слоги в строке должны идти в определённом порядке» и т.д. Перечислив все правила, я свёл задачу генерации стихов к простому комбинаторному поиску. Язык Prolog как раз и предназначен для таких задач — описании правил и генерации объектов, выполняющих эти правила.
Кто хочет научится писать стихи и познакомиться с Prolog, прошу под кат.
Как научиться писать стихи за 10 минут
Проще всего учиться на примерах великих поэтов. Возьмём классическое стихотворение Тютчева с расставленными ударениями:
Люблю грозу в начале мая, 9
Когда весенний, первый гром, 8
Как бы резвяся и играя, 9
Грохочет в небе голубом. 8
Гремят раскаты молодые, 9
Вот дождик брызнул, пыль летит, 8
Повисли перлы дождевые, 9
И солнце нити золотит. 8
С горы бежит поток проворный, 9
В лесу не молкнет птичий гам, 8
И гам лесной, и шум нагорный — 9
Всё вторит весело громам. 8
Ты скажешь: ветреная Геба, 9
Кормя Зевесова орла, 8
Громокипящий кубок с неба, 9
Смеясь, на землю пролила 8
Сразу видно, что стихотворение состоит из нескольких четверостиший (стихов), в каждом из которых рифмуются строки одинаковой четности. Заметим, что ударные и безударные слоги первой строчки чередуются в определённом порядке: _’_’_’_’_ (нижнее подчёркивание означает безударный, а кавычка — ударный слог). Такой ритмический рисунок называется размером стиха. Размер состоит из стоп, в каждой стопе ровно один ударный слог. У Тютчева размер двухсложный, с первым безударным, вторым ударным слогом. Такой размер называется ямбом. Есть и другие размеры, например хорей с ударением на первом слоге. Повторение одного размера в четверостишье задаёт стиху ритм, без которого даже с рифмой четверостишье будет звучать как проза.
Системы рифмовки тоже могут быть разные. У Тютчева рифмовка перекрёстная, ещё бывают кольцевая (рифмуются первая с последней и вторая с третьей строки) и смежная (первая со второй, третья с четвёртой).
Рифмовать слова тоже можно по-разному. Различают мужские и женские рифмы. В мужской ударение падает на последний слог, в женской на предпоследний. Есть ещё дактилическая рифма, где ударение падает на второй с конца слог, но к таким словам довольно сложно подобрать пару:
Дело было вечером,
Делать было нечего.
Получается примерно следующий алгоритм написания стихов:
С практикой вам станет проще рифмовать слова и соблюдать ритм:
Шёл поэт по улице, 7
Кутался в пальто. 5
Всё пройдёт, забудется, 7
Время — решето. 5
Обратите внимание, ритмический рисунок совпадает у рифмующихся строчек. У второй и четвёртой хорей получается как бы «рваным», но ритм от этого не страдает.
Введение в Prolog
Теперь сформулируем правила, которым должны удовлетворять четыре строки в четверостишье:
Мы специально не стали брать «осмысленность» стиха, т.к. это требование в стихосложении довольно субъективное, его сложно объяснить машине, да и вообще, в любой грамматически верной строке можно найти смысл (глокая куздра глокочет бокра и кудрячет бокрёнка).
Получается настоящая комбинаторная задача: в пространстве всех возможных строк найти четыре, выполняющие данные правила. Остаётся только как-то их запрограммировать. В принципе, для этого подходит любой императивный язык, но Prolog подходит лучше всего, т.к. создавался специально для таких задач.
Prolog это логический язык программирования. Он очень сильно отличается от императивных языков тем, что все конструкции — декларативные, т.е. программы на Prolog описывают что надо сделать, а не как это сделать. Этим он похож на функциональные языки типа LISP. Prolog моделирует логику предикатов первого порядка.
Prolog можно рассматривать как некую СУБД или экспертную систему, в которой есть знания, и из этих знаний можно делать логические выводы с помощью правил. Знания выражают в виде фактов (предикатов) о внешнем мире. Например, вот так можно записать факт того, что Сократ смертен:
Слова в Prolog бывают либо атомами (сократ), либо предикатами (человек), либо переменными (Х). Атомы это некоторые объекты, предикаты это свойства объектов или отношения между ними. Переменные должны начинаться с заглавной буквы, атомы и предикаты с прописной. Предложения должны оканчиваться точкой. В Prolog нет ограничений на латиницу, поэтому слова можно писать и на русском. Первая строчка выражает факт того, что Сократ — человек. Вторая моделирует условие «каждый человек смертен». Части импликации разделяются знаком :- и меняются местами.
Система логически вывела нам факт смертности Сократа. Но это ещё далеко не всё, попробуйте вместо Сократа подставить переменную:
Prolog сам подобрал единственно возможное значение переменной «Неизвестно». Пролог следует т.н. гипотезе закрытого мира (closed-world assumption) — всё, чего нет в базе считается неверным:
Хотя Аристотель был таким же человеком, но в нашей программе это не отражено, поэтому Prolog выводит false.
Восклицательный знак здесь играет важную роль. Это т.н. «cut operator», который обрезает дерево поиска интерпретатору. Он говорит «если интерпретатор дошел до меня, то не нужно пробовать удовлетворить другой вариант freq». Из-за этого у Х будет только одно возможное значение.
Комбинаторный поиск в Prolog
Prolog идеально подходит для комбинаторного перебора. Нужно только закодировать правила, которым подчиняются перебираемые объекты, и запустить интерпретатор. Рассмотрим классическую задачу генерации всех магических квадратов 3 на 3. Магическим называется квадрат, в котором все числа положительны и различны, а суммы в каждом столбце, строке и диагонали совпадают. Пример:
Каким правилам подчиняются числа в квадрате?
С помощью библиотеки CLPFD можно очень легко закодировать эти правила в Прологе:
Вернёмся к нашей оригинальной задаче: генерации стихотворений. Стихотворение состоит из четверостиший. Четверостишие определяется следующими правилами:
Всё, что нужно сделать — это корректно закодировать это правила на Прологе. Самое сложное здесь это первое правило. Грамматическая корректность это довольно непростое требование, грамматика русского языка очень богата, у нас есть спряжения, морфология, и проч. Поэтому я решил взять конкретные шаблоны, которые наверняка будут грамматически корректны. Все слова в настоящем времени и мужского рода:
Нужно только добавить достаточно слов каждой части речи, чтобы стихи получались богатыми.
Как это кодировать? Очень просто — вначале составляется словарь наподобие такого:
Второй аргумент указывает на порядковый номер ударного слога. В слове «кроткий», ударение падает на первый слог, а в слове «укротитель» на третий. Эта информация пригодится когда мы будет строить ритмический рисунок строчки.
Затем определяется предикат предложение :
Теперь ко второму правилу рифмовки. Как определить что два слова рифмуются? Рифмуются слова, у которых ударение падает на тот же слог и у которых окончания похожи (зрелый — спелый, бедный — каретный, новый — здоровый). Есть такое понятие — парные буквы, наверняка вы ещё их в школе проходили. Вот несколько таких пар:
Назовём все такие пары омофонными. Окончания рифмующихся слов могут отличаться, но только если разные буквы будут принадлежать одной паре. Например, пара «бедный — каретный», окончания «едный — етный» отличаются, но пара (д, т) — омофонная, поэтому рифма не нарушается. То есть, рифму можно описать следующим правилом:
Чтобы закодировать такое правило надо сначала определить все омофонные пары:
Затем определить предикат «похожие_по_звучанию(Слово1, Слово2)», который выполняется когда слова 1 и 2 отличаются не более чем на омофонные пары:
Здесь слово разбивается на список своих букв и рассматриваются два случая: когда буквы равны и когда они принадлежат одной омофонной паре.
Зная всё это, написать предикат «рифмуется(Слово1, Слово2)» не составляет труда:
Остаётся последнее правило: совпадение ритмического рисунка у строчек. Давайте договоримся, что ритмический рисунок строки будем записывать с помощью букв «б» и «у», где «б» означает безударный слог, а «у» ударный. Сам такой рисунок будем называть «шаблоном».
Например, у строки «Люблю грозу в начале мая» шаблон будет «бубубубуб», т.е. чистый ямб. Хорей будет выглядеть наоборот «убубубуб».
По каждой строчке в стихе можно строить такие шаблоны. Совпадением ритмического рисунка будет совпадение шаблонов. Как строить такие шаблоны? Нужно каждое слово в строке разбить на слоги, ударный слог записать как «у», остальные как «б» и повторить для всех слов.
Я не буду здесь приводить полный код этой процедуры, при желании вы можете ознакомиться с кодом всего проекта в открытом репозитории
Приведу только конечный вид предиката «стих», по которому можно генерировать четверостишия:
Здесь включены все три правила стихосложения (грамматическая корректность, рифма, ритм) и ещё добавлены условия на различность X \= Y чтобы слова не повторялись.
Что дальше?
Понятно, что всё описанное это только proof of concept, можно и дальше развивать эту тему. Например, добавить ещё слов в словарь, расширить грамматику, чтобы она включала разные времена и роды слов. Можно также определить новые шаблоны стихотворений, отличных от классики, да и вообще поле для экспериментов тут очень богатое.
Надеюсь вам понравилась статья и вы узнали что-то новое. Ссылка на репозиторий проекта: prolog-poetry. Там же есть полная инструкция по запуску.
Рифма
Размер стихотворения
Мой дорогой друг, я понимаю как тебе надоело рисовать схемы ударений, определяя все эти ямбы и хореи, и даже не побоюсь сказать, анапесты и амфибрахии. Поэтому я, твой помощник, сделаю за тебя эту скучную работу. Составлю схему стихотворения, определю размер и даже подчеркну ошибки и сбои, если они есть. Ну и наконец, перейдем к творчеству!
Стихогенератор
Новости форума
стихотворения, не вошедшие в рубрики Разгильдяи
а лошадь? как с ней быть?(с) А на конях, а на конях – другое дело: всё, что тревожило на днях, всё, что болело, – за пять восторженных минут.
стихи о жизни Ностальгия
Пронзая небо, я несусь один В лазоревом невыносимом свете. Пылающими глотками турбин, С ревущим свистом, втягиваю ветер. Погода миллион на.
лирические стихи По заказу стихи не пишутся
По заказу стихи не пишутся, Разве было когда иначе? Ведь за деньги смыслы не ищутся И душа не поёт и не плачет. Так зачем же ты смотришь.
иронические стихотворения Свет учения поэзии
Свет учения поэзии? – да нет – не увижу, ох, не увижу голубого Нила, жёлтого солнца и песка золотого, ой, не увижу жеребую ослицу, грозную львицу.
Лучший робостих
В окошко на снежинки посмотрю,
Чуть-чуть правее отодвину мышку.
К кингстонам насмерть сваркой приварю
Смешную симпатичную мартышку!
Какую, блин, мартышку? Да вы что?
Зачем мне эти рифмы про животных?
Сказал негромко Человек потом:
«Ты укрывал их от дождей кислотных.»
Кого я укрывал? Ну что за бред!
И что за Человек? откуда взялся?
Я вижу твой, пусть даже мутный, след,
Как бы ты очень сильно не старался.
Откель Фома? Я с ним тебя ловлю?
Какой плохой напарник мне достался.
Но все же я люблю его! Люблю!
Мрак наших душ он осветить пытался!
Моя ж душа не в силах превозмочь.
Теперь мной правят хаос и сомненья.
—
Вот так с тупым помощником всю ночь
Писал я про любовь стихотворенья.
Анна Туренкова (2006г)
Я часто нахожу на стихи.ру хорошие, искренние стихи. В которых автор показывает поразительную глубину мыслей и уникальную способность развивать самые тонкие и серьёзные темы. Но у многих из этих стихотворений есть существенный недостаток это погрешности «техники» того, под чем художники, музыканты и другие творческие практики разумеют правильность формального выражения.
Если вы пишите для себя, возможно это и не важно. Но если для читателя, то тут надо будет немного потренироваться изо дня в день. Предложите себе забавную игру в стихосочинялки. Кушая булочку во время обеда или отдыхая вечером на любимом диване. Это развлечёт вас и принесёт существенную пользу развитию вашего таланта.
-=-=-Стихотворение-Упражнение 1. «Лёгкий стих»-=-=-
Напишете первую бессмысленную строчку. А потом продолжаете стихотворение, добавляя к ней всё, что приходит в голову.
«В саду цветёт пушистый пень»
Цветёт сегодня целый день
Ему цвести никак не лень
Его постигла дребедень
И все лягушки набекрень. »
и т.д.
-=-=-Стихотворение-Упражнение 2. «Рифмуем всеххх»-=-=-
А теперь можно отдельно потренировать рифму. Тоже пишем первое пришедшее в голову слово. А к нему все рифмы (слова и словосочетания), которые сможете придумать. Старайтесь быть как можно изобретательнее.
«Сосредоточится
Двоеточие
Раскурочили
Непорочные
Снова кочки
Очная
Сочные
Точно. »
и т.д.
-=-=-Стихотворение-Упражнение 3. «Польза классики»-=-=-
Теперь, если привлечь к труду корку мозга, можно неплохо развлечься, тренируясь выдерживать размер. Берете любое «правильное» стихотворение другого поэта и каждую строчку переписываете под его строчкой новыми словами.
___Онегин добрый мой приятель
Егоркин вечный умножатель
___Родился на брегах Невы
Не поднимая головы
___Где может быть родились вы,
Среди зелёненькой листвы
___Или гуляли, мой читатель.
Очистил от бедлама шпатель.
и т.д.
Часто возникают ситуации, когда стихи приходят не сами собой, а хочется написать о чём-то конкретном впечатлившим вас в данный момент. В уме возникают меткие сравнения, чёткие образы. Но попытка представить всё это богатство в стихах с треском проваливается. Не разочаровывайтесь. Чтобы быстро и правильно укладывать в стихотворную форму всё, что приходит вам в голову, тоже нужен определённый опыт. И как раз сейчас можно его приобрести, выполнив упражнение, которое чем-то напомнит вам задание из школьного учебника.
-=-=-Стихотворение-Упражнение 4. «Хочу написать то, что думаю»-=-=-
Например, стих про осень:
В уме (или лучше в блокноте): «осень, листья, кружиться, золото, увядание. » и т.д.
Из этого стихоплётим:
«Осень кружит листьями, кружелистным золотом,
И увял на клумбе маленький цветок. «
Возьмите какую-нибудь собственную, уникальную тему, набросайте побольше исходного материалла. А может наоборот заезженная всеми тема развернёт для вас нечто особенное. Чем больше тем вы обкатываете тренеруясь, тем лаконичнее и ярче будет ваша стихотворная речь.
Анна Туренкова 2006/01/27 02:12 •
-=—=-
И ещё НА ЗАМЕТКУ (из личного опыта и моих наблюдений за творчеством авторов стихи.ры). Если вы хотите, чтобы ваши стихи _нравились_читателям_, то
4. Если вы пишете в классическом ключе, оцените всё ли в вашем стихотворении удобоваримо и читаемо. Возможно вам захочется убрать или заменить какие-либо слишком резкие, протеворечивые или нелогичные элементы.
5. Помните, что у вас качестве «изюминки» стихотворения. Сохраняйте и не искажайте её. Старайтесь чтобы остальной текст был на службе у вашей идеи.
6. Главное вовремя остановится. Избегайте «словестного поноса». Вовремя говорите себе «стоп!» Вы должны помнить об этом, даже когда тема широка или вовсе абстрактна. Чем длиннее стихотворение, тем меньше читателей соизволят его прочесть.
8. Когда вы пишете длинное стихотворение, старайтесь правильно обрабатывать КАЖДУЮ ИДЕЮ, которую вы высказываете.
а) Если вы употребите больше слов, чем требуется для её раскрытия рискуете оказаться в глазах читателей пустомелей-графоманом, даже если в вашем произведении содержиться серьёзная смысловая начинка. Они её просто не заметят в таком размытом состоянии. Это допустимо для прозы, но стихи губит на корню.
в) Не перенасыщайте свои стихи. Во-первых не забывайте про п.5. А во-вторых большим количеством материала трудно управлять и ещё сложнее сложить его в единое целое так, чтобы другие люди это поняли, и гораздо сложнее сделать так, чтобы читая и воспринимая, получали удовольствие.
-=—=-
А это ПОЛЕЗНЫЕ ССЫЛКИ, которые несомненно пригодятся на пути к творческой вершине:
http://www.stihi.ru/2003/10/26-1103
«От дилетанта-дилетантам (методы ведения войны со стихами)»
Никому Не Говори
http://www.stihi.ru/2003/08/28-61
«Как выжить на сайте стихи.ру. Не-FAQ, практические навыки»
Docking The Mad Dog
Генератор
Встал с утра я, спозаранку,
Испытать для рыб приманку.
Аппетитный стимулятор,
Ультра низкий генератор.
Прожужжала мозг реклама,
Рыболовная программа.
И не надо лишних слов,
Будет бешеный улов.
Во общем все,как пояснили,
С генератором удили.
И способствовал успех,-
Я смеялся больше всех.
С пол часа прошло иль больше,
Берег речки стал дороже.
Рыбаков, что пруд пруди,
Негде стало мне удить.
Перепуталась вся леска,
Все ругаются,что тесно.
Все вокруг в штаны аж мочят,
А.
Свечи в зале овальном оркестром горят,
Тихой музыкой свет излучая в пространство.
В этом трансе астральные вещи творят,
Призывая в молитвах добро и коварство.
В гробовой тишине каждый шорох кричит,
В тишине гробовой мысли прячутся сами.
Пламя яркой свечи как то странно рычит,
Все вокруг укрывая волшебными снами.
Блеск туманных зеркал ворожит томный взгляд,
Недвусмысленный толк тайных слов и наречий.
Заклинатель теней начинает обряд,
И как пастырь склонил над молитвою плечи.
Неприкасаемой и строгой
Хотела быть всегда с тобой,
Но не давал быть недотрогой
Твоей энергии прибой…
От твоего прикосновенья
По телу пробегает ток,
Ты – генератор напряженья.
Несешь любви своей поток.
И снова задрожали руки,
Едва приблизился ко мне..
О! Кто придумал эти муки..
С тобою рядом, как в огне.
Где взял энергию ты эту,
Которая как током бьет,
И вечной мудрости советы
Безжалостно на клочья рвет.
Горю от страсти принародно,
Мне приложить бы к сердцу лед…
Я как в.
Всё написано! Ни строчки.
О заботе Тишины,
Поглощает время точки,
Рук не видишь со спины.
Спиновый момент не нужен
В раздробленьях множеств форм,
Категорий лучший ужин –
Для свиней последний корм
Ум конечно доставала,
Человек ведь наркоман
С детства песней укачала
Безобмановый обман.
Форма, вот ведь форма человека –
Упаковка без греха,
Иеговая потеха
Разговеться до греха.
Дождь, как слёзы,
очищения,
запах розы,
вдохновение,
сердца звуки,
генератор,
проза муки,
вечный статор,
дождь прощения,
прощанья,
в умилении,
в ожидании,
дождь, молю,
не надо капать,
не хочу
я больше плакать.
Младший сотрудник
Сияет лицом:
« Душу ущучим,
И дело с концом!»
Планетарное Сознание, услышь,
Вздох свободный «храброго безумца»,
Распахни Всезнающую Тишь
Для «все-невиновности презумпций»!
Надобность, ты только позови
К проявленью чувственных абстракций,-
Я ж живая форменность Любви,
Ключ к объединенью разных фракций!
Генератор творчества зовёт
Делать шаг смелей и достоверней
В свой альтернативности полёт
К тем Порталам, где витал Коперник!
В богатейшее Спокойствие вольюсь,
Закружусь любя, в потоках нежных,
Непонятной слыть уж не боюсь.






