Размышления о программе. Мысли вслух

Война с генератором текстов. Построение сюжета. Вопросы без ответов.

Пока понимаю, что:

 

Начинать надо с архетипов, потом их домысливать, достраивать, переворачивать, комбинировать.

 

Пока вижу один архетип, одно противостояние: хороший дом – плохой лес, хорошие люди – плохие хищники, хороший день – плохая ночь, хорошее лето – плохая зима, хорошая жизнь – плохая смерть.

 

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

 

То есть, надо объяснить, что такое тема. Какие они бывают. Где-то такие объяснения уже есть, в открытом доступе нет.

 

Финальный результат должен быть невозможен безо всех промежуточных действий.

 

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

 

Тут как-то нужно поставить программе условие, что действие А невозможно без действия Б, и.т.д. Но как поставить это условие? Алгоритмы компьютерных игр не годятся, потому что там задано заранее – приколи на него серебряный крест, отыщи страшный клад и накрой колпаком. А в генераторе текстов задача, чтобы программа сама составила квест, где чтобы добиться результата, нужно обязательно пройти такие-то этапы. И не потому, что так левая пятка хочет, а потому, что без этого никак, если пришелец сделан из кислоты, победить его можно только щелочью, надо бежать в магазин за содой, а магазин закрыт до девяти утра, извольте ждать…

 

Промежуточные действия должны быть маловероятными, чтобы вызвать у читателя интерес. То есть, писать, что герой открыл дверь ключом, чтобы попасть в дом – это неинтересно. А что герой залез через окно или убил привратника, чтобы попасть в дом – это интересно.

 

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

Обыденных

Маловероятных

Совсем маловероятных

Невозможных

…для нашего мира.

И еще для каждого произведения:

Список вероятности событий для мира книги.

Список вероятности событий для героя, глазами которого автор показывает мир книги. Он отличается от мира книги. И от мира читателя тоже. Например, в Хоббите Хоббиту был привычен мир его деревни, но все за пределами деревни – вне его привычного мира.

Сначала знакомим читателя с миром героя. Чтобы герой и читатель притерлись друг к другу.

Потом можно глазами героя показывать мир книги.

 

Еще. Чтобы было интересно, сначала показываем то, что обыденно, потом то, что маловероятно, потом невероятные события. Работает ли это? Как должны чередоваться события обыденные, маловероятные, невероятные? От обилия чудес читатель заскучает, от обилия обыденности тоже. Хочется какую-то формулу типа –

Простое событие – А

Маловероятное – В

Невероятное – С

И последовательность типа – А-В-В-А-С-А-В-В-С-В-А…

Можно попробовать посмотреть по известным книгам, может, какая-то общая формула вылезет.

 

И тут вопросы.

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

Нужен список событий. И их связь. Это ж какой будет огромный список. А как иначе, я не знаю.

 

Второй вопрос.

Программа должна составить для мира книги и мира героя список вероятности событий. Но если перечислять ВСЕ события в мире, это будет сильно много. А если не все – то какой критерий, про что писать, про что нет? Или с другой стороны если у нас будет огромный список для нашего мира, то программе ничего не стоит перемешать события в списке? Так она их от балды перемешает, и выйдет черт знает что…

 

 


15:33
205




Итого:
Чтобы программа составила текст на основе архетипов и уже имеющихся книг, при этом выстроила последовательность событий, чтобы последующее не могло произойти без предыдущего, при этом чтобы последующую информацию нельзя было узнать без предыдущей, при этом чтобы была создана картина мира с подробным перечнем вероятности событий, при этом чтобы самые невероятные события и тайны оставили на потом (всегда ли это работает?), но при этом чтобы чередовались события обыденные и невероятные, при этом чтобы тайны мира и тайны героев были связаны, при этом, чтобы в произведении было не более трех тем, чтобы одна из них была – взаимоотношения людей.
Охренеть, не встать.
06:30 (отредактировано)
Если, скажем, перед составлением сюжета программа сначала составляет схему событий вероятных и привычных, а потом уже отталкиваясь от этой схемы, начинает строить невероятные события?

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

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

Понятие непривычного относительно. Для кого-то непривычен рассказ про человека некой профессии, и все, что будет в рассказе упоминаться, потребует объяснения. А другой с детства вращается в этой среде, и объяснения будут его раздражать, казаться лишними. Помню, на Фи.рф накинулись на нового автора, который обильно пересыпал свои тексты сносками, мол, чего это он читателя держит за идиота, объясняя простые вещи? Да, конечно, сноски к словам, которые знает читатель, весьма раздражают, но автора тоже можно понять, он не может оценить, насколько будет понятен текст. Вот я написала главу, мне она дико нравилась, т.к. там объяснялось многое, что происхоисходило в романе до этого, а читатели отнеслись прохладно, мол, ничего не понять. И тут не угадаешь, действительно будет можно понять, или нет. А ты от программы этого хочешь.

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

Вот-вот. Как составляет? Программа не знает, что такое события.
И что делать? Дать ей агромадную базу данных событий? Так это же каких размеров будет база?
Программа не знает, какие события привычные, какие нет.
Так в комменте все верно, ППКС. Но программе-то все это не очевидно.
00:26
Просто неизбежно придется создавать читателя. Это нормально, авторы тоже читателя «создают», ориентируясь на запросы, выправляя тексты в соответствии с критикой внешней или своей, внутренней, стараясь представить, что именно будет читатель об этом думать. Причем, не факт, что они угадывают и читатель действительно думает так, а не иначе, но все же автор читателя себе представляет. Программе придется тоже.
Хм...
00:46
«Программа-писатель» – не организм, не обладает сознанием, не автономная система.
Программа – это алгоритм, записанный на языке программирования.
Совершенно верно. И программа не знает, что такое событие, и все остальное.
Список событий. Нужен ли? Вручную составлять — застрелиться. Научить программу выковыривать события из текста книг — а что она будет искать? Какие критерии? Да и вообще герой мог сначала пить чай, а потом по умолчанию допил и налил себе чай (снова). А компьютер ошибочно решит, что люди сначала пьют чай, потом наливают…
Хм...
17:56
«А компьютер ошибочно решит, что люди сначала пьют чай, потом наливают…»

Программа не способна «знать» без кавычек. Если упростить, то алгоритм — свод правил, «если то, значит это», топологически как эффект «домино» (чисто для визуальной наглядности). Если очередная расставленная программистом «доминошка» не уронила последующую, или, наоборот, уронила слишком много «доминошек», что процесс остановился — тогда ошибка в расчётах, ошибка в алгоритме. Чем большее количество «доминошек» задействовано, тем сложнее алгоритм, но принцип «верно-неверно» (начало-конец, ввод-вывод, да-нет) для структуры алгоритма — всё равно остаётся неизменным.
Верно, все верно, не способна «знать» без кавычек.
И тут главный вопрос — или врукопашную забивать базу данных причины и следствия, или научить программу вычленять причины и следствия из текста…
Хм...
18:41
«или научить программу вычленять причины и следствия из текста…»

«Научить», то есть прописать последовательность исключений и порядок выполнения правил, что значит, разумеется, в ручную (или с помощью готовых блоков). А как иначе? Программа ведь не понимает, что она понимает, это должен понимать за неё программист, ориентируясь по задаче.
То есть, все-таки без рукопашной работы не обойтись.
Тут с одной стороны хочется большей самостоятельности от программы, а с другой стороны даже мозг человека когда только начинает познавать мир, сам никаких выводов не сделает, его надо ткнуть мордой, что трава зеленая, а небо синее, а ворона говорит Карр.
Вот сейчас делаю контрольный пример на «Собаке Баскервилей» Вот Холмс смотрит в кофейник, видит, что делает Ватсон.
выводы из диалога:
Стоит к чему-то спиной – не видит.
Стоит к чему-то спиной, перед ним начищенный до блеска серебряный кофейник – видит.
Надо бы обобщение, что видеть можно в любой зеркальной поверхности. Но это даже человек может не обобщить, ну если в бедном доме зеркала нет, ребенок приучился смотреть в кофейник, — разбогатеют, купят новый дом с зеркалами, а он все равно в кофейник будет смотреть.
И чего получается? Делать таблицу с перечнем зеркальных предметов?
Хм...
19:08
«Сколько программистов нужно для создания работающей операционной системы?» (риторический вопрос)

Если нельзя обойти задачу, то да, «Делать таблицу с перечнем зеркальных предметов». И так по каждой проблеме (задаче).
Сначала нужно сформулировать максимально простую задачу, а потом уже усложнять (уточнять варианты). Иначе будет «нерелевантное распыление» вокруг и около (мимо цели). И, возвращаясь к риторическому вопросу выше, «невыполнимо с маленьким количеством рук».
Если нельзя…
А можно ли обойти?
Тогда будет до хренищна данных. Частных вариантов. Но с другой стороны это-то и нужно программе-писателю, сначала «читать» тексты, находит в них всякие частные моменты, потом частное объединить в общее, например — стоит к кому-то спиной но видит, благодаря предмету перед ним — это зеркальнйы предмет. И потом в написании книги будет идти от общего к частному. Герой стоит спиной, но должен что-то увидеть? Увидит с помощью зеркала! А что именно будет зеркалом — вода, трюмо, выключенный айфон, кофейник, — это следующий этап, программа выберет, что подойдет по теме.
Хм...
19:27
Уже вижу как подобное будет коряво выглядеть в тексте. То есть по логике всё верно, но в том-то и проблема, что программа не выбирает, а отбирает по прописанному шаблону (что пропишешь, то и будет).
Вот-вот-вот, я это тоже предчувствую… Если в программном тексте что коряво — значит, чего-то не учли, и надо учесть. Лучше на стадии построения алгоритма и контрольного примера, хотя у меня часто по принципу — сначала делать, потом думать, что туда еще подставить, чтоб нормально работало.
И вот интересно, чего тут не учли, почему будет косячить?
Пока вижу только проблемы вроде — «ходил с палкой» — не поймет, что не просто таскал палку с собой, а опирался на неё. Вот, например…
Хм...
20:07
«Герой стоит спиной, но должен что-то увидеть? Увидит с помощью зеркала!»

Герой не видит спиной, герой видит при помощи: глаз, зеркала, кофейника, и т. д.
Соответственно, получаются сверхспособности.

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

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

А что за принцип нейросеток? Мне хочется употребить нейросеть, по типу — найди общее в каких-то текстах, выяви, что общего в детективах, в мистических романах… Но… как я понимаю, нейросети надо указывать — ЧТО ИМЕННО искать? Возраст героя, размер обуви, количество этажей в доме…
Хм...
10:07
«Отчего же сверх — способности обычные.»

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

«А что за принцип нейросеток?»

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

«Возможность обучения — одно из главных преимуществ нейронных сетей перед традиционными алгоритмами. Технически обучение заключается в нахождении коэффициентов связей между нейронами. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение. Это значит, что в случае успешного обучения сеть сможет вернуть верный результат на основании данных, которые отсутствовали в обучающей выборке, а также неполных и/или «зашумленных», частично искажённых данных.» (Wikipedia)

Поисковые Теги: «Нейронная сеть», «Машинное обучение (machine learning, ML)», «Глубокое обучение (Deep learning)».
выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение

Но как я понимаю, все-таки надо ткнуть нейросеть мордой, что именно искать, или можно тупо дать десять книг, из них восемь сказок, два фантастических романа, сказать — найди, какие две книги отличаются, и чем? Или не прокатит? И если не прокатит, то почему?
Хм...
10:23
Не знаю как лучше объяснить, если что я не программист по образованию, но использовал нейросети в поэтических экспериментах.

github.com/search?q=poetry+generation
Хм...
10:26
Или вот, более наглядный пример.

github.com/IlyaGusev/PoetryCorpus
10:30
(и не забываем, что программа выдаёт результат строго по алгоритму, без запоминания предыдущих операций, то есть внутри каждой отдельной операции всё логично, а между ними нет никакой связи, к примеру)

Поэтому главный рабочий инструмент программиста — бубен?:ch_lol:

Как раз-таки запоминание сделать легко, иначе суть любого «обучения» теряется. Вопрос в том, что именно запоминается — сама операция или результат? Ведь получается, что «опыт, сын ошибок трудных» должен нарабатываться на ошибочных же операциях. То есть, программа, получив какой-то набор алгоритмов должна перебирать эти алгоритмы и строить на них же новые.
Хм...
10:55
«Поэтому главный рабочий инструмент программиста — бубен?»

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

«Как раз-таки запоминание сделать легко, иначе суть любого «обучения» теряется.»

Ох, не вполне уверен, к примеру, для «Алисы» или Siri, которые построены на нейросетях, это проблема: они не помнят, о чём говорили с пользователем всего пару реплик назад. Им трудно улавливать связи между предложениями, и сами они часто порождают бессвязные тексты. Как и, собственно, «Порфирьевич»…

porfirevich.ru/
Верно, верно, Порфирьевич заставляет меня плакать кровавыми слезами. Хотя уж даже в моем генераторе текстов, уж на что он слабый, давно проблема решена, программа запоминает индексы всех данных, и ежели в начале у героя глаза зеленые, в конце они черными не станут…
Хм...
11:35
Глубоководный горизонт спустился с останков
рассудочной пыли сна. Кругом снова кипела
жизнь, но ее ритм прерывался легким
покачиванием невидимых волн. Стенаний Эшли
больше не слышалось — всё было тихо. Потому
что Эшли уже была мертва. За этой внезапной
смертью скрывался смысл. И тот смысл, который
никогда и нигде раньше не появлялся, спустился
как глубоководный горизонт… Тсс… И всё вокруг —
даже в том самом лунном свете — стало таким
слепым, таким непонимающим и тупым, что
дальше уже некуда было пойти… Конечно, это
шутка, рассказанная самому себе в бредовом
торжестве царства бессознательного. Но какой в
смерти Эшли может таиться смысл? Пустой,
бессмысленный, бессмысленный… Просыпайся
скорее! Пора на работу, Несси! Неси эту херню
кому-нибудь другому, меня зовут Эшли. Давай,
шевели копытами, шевелись! — снавик
«Eternity». Вот теперь всё. Не хочу видеть эти
штуки, они меня раздражают. Шли Несси с Эшли
по… Как там у Стивена Кинга? «Уже светает.
Кингу виднее.» В том-то и дело, что никто. Это
означало одно, Несси, ничего такого никто не
видит — просто сейчас всё вокруг будет
автоматически выравниваться. Глубокомысленно
глубоководно! Главное, не валять дурака и не
падать духом. Подумай, что тебе делать
дальше? У тебя, кажется, в руках бумаги? Неси
их сюда. Несси? Ты слушаешь, Несси? Помнишь,
что ты сегодня делала? Ну, знаешь, то есть,
помнишь, конечно, но… Эшли? Эшли, ты
видишь? Эшли… Ты что, убил, что ли? Посмотри,
Эшли, да ты, похоже, уже мертвец? Стенаний
Эшли больше не слышалось — всё было тихо. Тогда
Несси аккуратно взял со стола фотографию
Эшли и положил ее на стол. Глубоководный
горизонт спустился с останков рассудочной пыли
сна. Нет, это не Эшли, понял Несси. Это доска
для серфинга с вырезанной из нее головой
Эванса Блейка. Надо же!

П написано с помощью нейронной сети
*Порфирьевич
Хм...
11:40
Почему-то ассоциативно вспомнился рассказ «Хорошо ловится рыбка-бананка» Сэлинджера… Не знаю почему…
В общем, вот, что умеют делать нейросети — подстраиваться, имитировать стиль.
А как они это делают? Как часто у такого-то автора встречаются прилагательные, причастия, деепричастные обороты, какие знаки препинания, длина предложений? Темы автора? Или… или что-то еще?
Хм...
11:51
Да, нейросети извлекают закономерности из обучающих данных (лингвистические корпуса).
Закономерности. Но для этого им надо указать, какие именно закономерности нужно извлечь?
Хм...
11:58
В лингв. корпусах для стихов, что я использовал (ссылка выше), вот такая литература, к примеру.

Литература
Брейдо, 1996, Автоматический анализ метрики русского стиха
Каганов, 1996, Лингвистическое конструирование в системах искусственного интеллекта
Козьмин, 2006, Автоматический анализ стиха в системе Starling
Гришина, 2008, Поэтический корпус в рамках НКРЯ: общая структура и перспективы использования
Пильщиков, Старостин, 2012, Автоматическое распознавание метра: проблемы и решения
Барахнин, 2015, Алгоритмы комплексного анализа русских поэтических текстов с целью автоматизации процесса создания метрических справочников и конкордансов, сама система
Хм...
12:01
Анализ поэтических текстов онлайн

poem.ict.nsc.ru/

Загрузка...







Все представленные на сайте материалы принадлежат их авторам.

За содержание материалов администрация ответственности не несет.


Рейтинг@Mail.ru