В век программирования всего и вся, когда даже трехмерные изображения и ландшафты задаются программно, давно назрел вопрос, а почему еще нет публичных программируемых средств для литературного творчества?

Ну а если такие инструменты уже есть либо рано или поздно появятся, то спрашивается, какой там будет первая «программа», по типу «Здравствуй, Мир!» в «обычных» языках программирования?

Действительно, специфика литературного творчества требует, как минимум, выполнения трех условий:

1. Литературный текст должен соответствовать неким канонам или, шаблонам, проще говоря.
2. Этот текст должен быть достаточно оригинальным.
3. Он должен, как минимум, нравиться автору, в какой-то мере отражать его «Я».

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

Собственно любой фиксированный текст, вроде: «Здравствуйте, мистер Твистер, бывший Министер!» для этой цели совершенно не годится, поскольку абсолютно не соответствует пункту 2. Следовательно, выводить нужно не явный текст, а реализовывать некий его шаблон. Например:

[Слова приветствия] [Титул] [Должность или Имя или их Эквивалент]

Это уже немного веселее. Соответственно, программа должна иметь доступ к элементам множеств обозначенных в квадратных скобках. Допустим, мы имеем десяток слов приветствия, пару десятков ходовых титулов и такое же количество должностей. Полагаем также, что как минимум одно слово приветствия всегда должно быть.

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

Лучше обстоят дела с именем либо его эквивалентом. Здесь вариантов на порядки больше. Все, что требуется для литературной «программы», это указать фильтры, ограничения и способ выборки элементов заданных множеств, например, случайный. В простейшем случае можно просто сгенерировать фразу: «[Приветственное слово], [Имя]!», где имя, допустим, имеет достаточно оригинальную реализацию шаблона СГСГС, здесь С – согласная буква, а Г – гласная. Полученное слово можно прогонять через Google, на предмет низкой частоты встречаемости. Вот программная генерация подобных слов: «Зушор», «Гелюж», «Чоцер», «Фосюр», «Цитыж», «Ранюр» и др. Практически все благозвучные имена такого типа встречаются в Google значительно чаще. Запускаем случайный генератор, получаем:

– Привет, Зушор!
– Здорово, Гелюж!
– Салют, Ранюр!
– Хелоу, Цитыж!
– Хай, Фосюр!
– Приветствую, Ропец!

Естественно, что для большей благозвучности нужно использовать чаще употребляемые слова и как следствие – понижаем оригинальность.

Уверен, что следующий вопрос будет, а как насчет программной генерации литературных сюжетов?

Когда встают вопросы типа: «Каким должен быть сюжет?» и мы не можем по предмету X сказать ничего путного, то следует идти следующим путем:

1. Разбиваем X на его противоположности либо логические составляющие. Абстрактно, X = Y + Z, где Y может быть, например, причиной или событием, а Z следствием, процессом либо результатом.

2. Для ограничения множеств Y и Z, вводим их фильтрующие модификаторы. Абстрактно, X = aY + bZ, где a, например, «особый», а b, скажем, «необычный».

В итоге выходим на нашу формулу (X = aY + bZ) основного шаблона литературного сюжета:

Особое событие порождает необычный результат

либо

Особое событие порождает необычный процесс с непредсказуемым результатом

В последнем случае имеет место формула X = aY + bZ + cW. Хотя, может быть вместо знака «+» более логичен знак следования «–>», т.е.:

X = aY –> bZ –> cW

Вот уже вместо неопределенного понятия «X» («сюжет» для нашего литературного произведения) мы имеем шесть понятий: «a» («особое»), «Y» («событие»), «b» («необычный»), «Z» («процесс»), «c» («непредсказуемый»), «W» («результат»). А это уже несколько меньшая неопределенность, но, понятно, что, это только первый уровень устранения неопределенности, которых должно быть, как минимум, несколько.

Особых событий может быть два и более в произведении, так что, одно стимулирует (катализирует) появление второго и т.д. Другими словами, эти формулы могут быть рекурсивными, например:

Особое событие 1 порождает необычный процесс 1
Процесс 1: Особое событие 2 порождает необычный процесс 2


и т.д., до последнего вложения

Процесс N: Особое событие N+1 порождает необычный процесс N+1 с непредсказуемым результатом

В принципе, с точки зрения литературы, описание обычных и необычных событий не имеет принципиальной разницы. И те и другие должны быть описаны «красиво» и занимательно. В данном случае, «необычность», это уже эффект восприятия читателем получаемой информации. Для тех, кто читает много, необычность может вполне стать обыденностью. Поэтому, для начинающего автора, пишущего небольшими порциями (на уровне отдельных эпизодов), нет особой разницы, что именно описывать? Главным для него будет вопрос, как именно это описывать? Например, как описать первое знакомство героя с героиней? Понятно, что должны быть указаны обстоятельства, намерения, ситуативная обстановка, процесс общения, действия героев и их диалоги. Сделать это можно многими разными способами. Но как конкретно, это может вызвать затруднения у неопытных авторов.

С другой стороны, многие и многие тысячи молодых людей, так или иначе, знакомятся. Иногда анекдотично, комично и бестолково. Иногда, вполне естественным образом. А иногда и очень даже красиво, хоть на соответствующую премию выдвигай. Поэтому резонно задаться вопросом, а есть ли шаблоны описания первых контактов молодых (и не только) людей? Наверняка должны быть или могут быть, почему бы и нет? Просто шаблон и его реализация это как бы небо и земля. Реализация подразумевает конкретную «фактуру» для некоторой заданной структуры шаблона. Хотя кто мешает менять и саму структуру шаблона? Всем известна «технология» любви, но сама эта тема является вечной. И таких «вечных» тем множество.

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

В принципе один из вариантов такого шаблона уже известен из истории. Кто-то когда-то из полководцев заявил: «Пришел, увидел, победил». Если перефразировать это утверждение, в более подходящий для нас вид, то получим формулу:

Пришел (вошел) – Оценил обстановку – Действовал по обстоятельствам

Результатом чего может быть «победа» либо просто удовольствие / неудовольствие от процесса своих действий.

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

Комментарии (16)


  1. lair
    16.11.2017 11:19

    Действительно, специфика литературного творчества требует, как минимум, выполнения трех условий:
    Литературный текст должен соответствовать неким канонам или, шаблонам, проще говоря.

    Эээ, правда? Всегда?


    Он должен, как минимум, нравиться автору, в какой-то мере отражать его «Я».

    А ничего. что "отражать "я"" и "нравиться автору" — это две разные вещи?


    1. Emelian Автор
      16.11.2017 11:24
      -1

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


      1. lair
        16.11.2017 11:34

        Это вы сейчас решили противопоставить людей с абстрактным мышлением и "обычных людей"?


        Просто не надо писать о (любом) литературном тексте так, как если бы к нему были (всегда) применимы какие-то условия. Хотите вы сделать генерацию по шаблонам — ну делайте, хорошо. Литературный текст-то здесь при чем?


        1. Emelian Автор
          16.11.2017 11:54

          Какой-нибудь профессиональный «инженер человеческих душ» стал бы вникать в причины вашего неудовольствия. Согласитесь, вы хотите, чтобы другие действовали только по вашим правилам, либо по правилам, которые вы считаете «правильными». А люди ведь разные и это надо думать аксиома. И они не очень-то хотят неделать что-то только потому, что это может кому-то не понравится.

          «Все знают», что литературу надо делать по наитию, вдохновению и т.п., но принципиально отрицают всякую рациональность и технологичность этого процесса. Как там у Маяковского отношение к тем, кто: «Ведь зато он может ежесекундно извлекать квадратный корень»? На самом деле особого противоречия я не вижу. Как в анекдоте: «И вы правы, и вы правы! Но как же так? И вы тоже правы!» :).


  1. k12th
    16.11.2017 11:26

    В силу профдеформации я знаю две JS-библиотеки для процедурной генерации текста: Tracery, которая собирает текст из рандомно выбранных заданных кусочков, и Improv, которая делает примерно то же самое, но еще умеет учитывать некую модель. У Tracery так же есть порт на C#.


    Делитесь, кто еще какие инструменты процедурной генерации знает.


  1. trogg
    16.11.2017 14:03

    Почему нет программы для литературного творчества? Потому что оно, творчество, не формализованный процесс. Генратор текста может родить «Корчеватель». Что отличает детективы Агаты Кристи от «творчества» Донцовой? Формально одно и тоже: события, сюжет, завязка-развязка? Отличия в не формализуемых стиле и таланте.


    1. Emelian Автор
      16.11.2017 14:03

      Хорошо, а почему тогда есть программы для художников и просто любителей компьютерной живописи? Более того, даже видео можно полностью программировать различные эффекты, например, в видеоролике sintel-2048-surround.mp4, программно «проработаны эффекты огня, снегопада, дыма, взрывов, разрушений, симулирования поведения большого числа персонажей». Интервью с артдиректором этого проекта можно посмотреть в digilinux.ru/2010/10/01/david-revoy-sintel-interview.

      Думаю, вполне корректно сравнивать литературное творчество с программированием. Технологии программирования доступны всем, но программ шедевров на многие порядки меньше. Поэтому индивидуальные литературные шедевры, как и ранее, будут принадлежать только гениям одиночкам. Но речь ведь идет только о доступности технологии литературного творчества для всех. Вплоть, до того, чтобы в школах кроме урока «Русский язык и литература» факультативным был предмет: «Литературное художественное творчество». Учить детей надо написанию литературных текстов, а не сочинений на тему типа: «Бросок Анны Карениной под поезд, в свете технической промышленной революции в Царской России», в смысле, куда бы она бросилась пару лет назад, когда поездов еще толком не было? Да и вообще я против любых формализованных школьных сочинений. Должны быть именно рассказы, а не сочинения.

      Но как учить? В этом вся соль. На Западе есть разные школы и методики, доступна даже непереведенная литература. Но Запад это Запад, Русский Мир должен весьма критично оценивать западные достижения, «отсеивать зерна от плевел».

      Кстати я заметил, что в последнее время в Интернете стало публиковаться гораздо больше материалов посвященных технологии литературного творчества. Так что «коллективное бессознательное» работает. Не удивлюсь, если через какое-то время появятся необходимые учебники и программные средства.


      1. lair
        16.11.2017 14:10

        Учить детей надо написанию литературных текстов, а не сочинений на тему

        Вы не поверите, но написание сочинений на тему — это и есть способ научить людей писать литературные тексты. Не единственный, не самодостаточный, но работающий.


        (BTW, в музыкальном творчестве, которым я занимался намного больше, методики те же самые.)


        1. Emelian Автор
          16.11.2017 14:29

          написание сочинений на тему — это и есть способ научить людей писать литературные тексты

          Кому как. Я, например, всегда хорошо писал сочинения, но очень плохо литературные тексты.

          в музыкальном творчестве, которым я занимался намного больше, методики те же самые

          С музыкой согласиться проще. Ибо писать хоть какие-нибудь тексты человек способен с младых лет, а писать хоть какую-нибудь музыку смогут «не только лишь все».


          1. lair
            16.11.2017 14:34

            Кому как. Я, например, всегда хорошо писал сочинения, но очень плохо литературные тексты.

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


            Ибо писать хоть какие-нибудь тексты человек способен с младых лет, а писать хоть какую-нибудь музыку смогут «не только лишь все».

            Это как раз весьма ошибочное мнение. Человек начинает писать (если быть точным, придумывать) "хоть какую-нибудь музыку" раньше, чем любые тексты, потому что музыка вообще предшествует тексту (и вообще слову).


            1. Emelian Автор
              16.11.2017 15:29

              по каким формальным признакам вы утверждаете, что сочинения — не литературные тексты

              Сочинения это как бы публицистика, там не риал-тайма, экшена, динамики, диалогов, культа красивых слов и фраз и т.п. Вон Стефан Цвейг хорошо пишет в жанре исторический литературный очерк, но диалогов героев у него почти нет. Я имею в виду романы типа «Мария Антуанетта». Хороший литературный стиль у него есть, да, этого не отнимешь, но сама его литература какая-то неполноценная.

              Человек начинает писать (если быть точным, придумывать) «хоть какую-нибудь музыку» раньше, чем любые тексты, потому что музыка вообще предшествует тексту (и вообще слову).

              Ну, слышать музыку в голове это одно, а отразить ее на бумаге – другое. Мне, например, когда-то приснился мотив, которого я нигде не слышал, но я не музыкант, записать его не смог от слова совсем.


              1. lair
                16.11.2017 15:38

                Сочинения это как бы публицистика, там не риал-тайма, экшена [...] диалогов

                А это не обязательный атрибут "литературного текста".


                динамики

                Вот как раз динамика в сочинении должна быть, хотя бы на уровне базовой триады imt (или минимальной риторической диспозиции, что вам ближе).


                культа красивых слов и фраз

                Во-первых, в хорошем сочинении это тоже должно бы быть. Во-вторых, не во всяком литературном тексте это есть.


                Хороший литературный стиль у него есть, да, этого не отнимешь, но сама его литература какая-то неполноценная.

                "Неполноценная" в смысле "вам не нравится", я так понимаю?


                Ну, слышать музыку в голове это одно, а отразить ее на бумаге – другое.

                Отражение на бумаге не является обязательной частью творчества (ни музыкального, ни литературного). Дописьменная культура, вот это вот все.


  1. trogg
    16.11.2017 14:18

    Программа компьютерной живописи это инструмент. Замена палитры с красками.
    Программирование эффектов — тоже инструмент. Все это только упрощает работу художника/аниматора.Но не делает ее за него.
    Для писателей тоже куча спец. софта для работы с текстом. Но вот что странно: большинство писателей работают в простейших редакторах типа блокнота. Джордж Мартин до сих пор по досом сидит.
    А потому что заскриптовать полет тысяч снежинок — ок, это реально быстрее. А даже самые простые диалоги в тексте проще и быстрее писать руками чем генерировать.
    Текст в котором много шаблонных структур читать невозможно.


    1. Emelian Автор
      16.11.2017 15:10

      Для писателей тоже куча спец. софта для работы с текстом.

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

      даже самые простые диалоги в тексте проще и быстрее писать руками чем генерировать

      Согласен, если писать проходной текст для текущего момента. Но если хочется чтобы твой текст не затерялся в цифровой пыли будущего, то для этого надо с текстом работать более тщательно. Любая профессиональная робота всегда содержит элементы технологии. Талант их только усиливает, но не отменяет. Например, видел силача, который по пьяне непрофессионально поднимал штангу. Не слишком большого веса, килограмм 80. Так вот чуть себя не травмировал и других. А при минимальной технике легко бы поднимал штангу раза в три тяжелее. А салаги, с техникой этот самый вес легко брали.

      Текст в котором много шаблонных структур читать невозможно

      Я догадывался, что слово «шаблон» в контексте литературы будет «камнем преткновения». На самом деле мы все говорим, пишем и даже думаем по шаблону. Только не вполне осознаем этого. Абсолютно нешаблонный текст придумать почти невозможно, всегда можно определить, что те или иные элементы взяты откуда-то. Да что там говорить, любое живое существо поедает биологическую пищу, т.е. использует субструктуры других живых организмов, пусть даже это будет растительная пища, для формирования собственного тела. Также и литература, просто автор, по большей части бессознательно переваривает поступающий ему поток информации, препарирует его на отдельные фрагменты и затем уже, скорее всего, интуитивно использует в своей работе. Но тот, кто питается «сырой» информацией обычно выглядит хуже, чем тот, кому эту информацию качественно и «вкусно» готовят. Хотя из любого правила всегда есть исключения.

      Я, может быть, скажу сейчас крамольную вещь, которые не все поймут: «Свобода это Ограничения!». Абсолютная свобода (т.е. отсутствие всяких шаблонов) это бесконечная неопределенность, реализация которой приводит к абсолютному хаосу и даже деградации. Вспомним, что авторы, пишущие в условия «тоталитарных» режимов часто создают более гениальные вещи, чем те, кто раскрепощен, если не сказать развращен, в условиях «свободного» общества. Главное, только, не забывать, что мир не так прост, как кажется.


  1. Sdima1357
    16.11.2017 15:28

    Что это было?
    Если статья написана программой- то неплохо, а если нет, то что это?
    Чтобы писать на уровне человека нужен ИИ уровня человека. Однако не все написанное человеком стоит читать.


  1. longclaps
    16.11.2017 19:14

    Странно, что никто не вспомнил про «Потный вал вдохновенья» из «Золотого телёнка».
    Такой вот удар от классика.