Перейти к содержанию

6.6.2 Первые опыты по автоматизации сочинения текстов

Материал из Охота на электроовец: Большая Книга Искусственного Интеллекта

Начнём, пожалуй, с текста, тем более что с современными нейросетевыми моделями для обработки естественного языка мы уже познакомились. Существование диалоговых моделей, систем машинного перевода и языковых моделей весьма прозрачно намекает на то, что на тех же принципах может быть построена генеративная модель, способная генерировать не только ответные реплики в диалоге, но и другие разновидности текстов. Люди используют естественный язык и подобные ему формальные системы для передачи друг другу различных сведений, идей и алгоритмов. Таким образом, решение задачи генерации осмысленного текста может открыть дорогу машинному творчеству в самых разных областях. Подробное словесное описание устройства новой машины позволит создать новую машину, текстовое описание процесса синтеза нового химического соединения позволит создать новое химическое соединение. Музыка, математические выкладки, последовательности оснований в молекуле ДНК, компьютерные программы — всё это может быть представлено в виде текстов на некоторых формальных языках. Понимание этого позволяет оценить всю важность математических исследований Тьюринга, Чёрча, Клини и их коллег в 1930-е гг., создавших концепции, лежащие в основе современной вычислительной техники. Поскольку условие любой интеллектуальной или творческой задачи можно представить в виде текста, то создание системы, способной эффективно решать такие задачи в «текстовом пространстве», будет означать прогресс во всех областях машинного интеллекта. Именно непонимание этой проблематики ведёт ко многим неуклюжим попыткам «усовершенствовать» или «починить» тест Тьюринга или к помпезным открытиям в духе доказательства наличия гёделевских ограничений у машинного обучения. Впрочем, давайте всё-таки вернёмся к более приземлённым материям.

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

Лежал Сергей на ковре, сбоку от него находилась небольшая старая коробочка от лото, а перед ним валялись нарезанные из карточек картонные квадратики: на одной стороне — цифры, на другой — написанные рукой Есенина слова. Он сказал, что пытается механизировать процесс сочинения стихов и образов. Взял из кучи несколько квадратиков, прочитал: Вечер, свечи, — и произнёс вслух:

Вдали розовый вечер

Зажёг жёлтые свечи…[1], [2]

Здесь сразу же вспоминается сцена из «Золотого телёнка» незабвенных Ильфа и Петрова:

Остап простёр своё любопытство вплоть до того, что ознакомился даже со статьёй Ухудшанского «Улучшить работу лавочных комиссий». После этого Бендер ещё оглядел диковинного журналиста с ног до головы, нехорошо улыбнулся и, почувствовав знакомое волнение стрелка-охотника, заперся в купе.

Оттуда он вышел только через три часа, держа в руках большой, разграфлённый, как ведомость, лист бумаги.

— Пишете? — вяло спросил Ухудшанский.

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

И Остап протянул Ухудшанскому лист, на котором было написано:

ТОРЖЕСТВЕННЫЙ КОМПЛЕКТ

НЕЗАМЕНИМОЕ ПОСОБИЕ ДЛЯ СОЧИНЕНИЯ ЮБИЛЕЙНЫХ СТАТЕЙ, ТАБЕЛЬНЫХ ФЕЛЬЕТОНОВ, А ТАКЖЕ ПАРАДНЫХ СТИХОТВОРЕНИЙ, ОД И ТРОПАРЕЙ[3].

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

Пока литераторы развлекали себя подобными экспериментами, анализом проблемы занимались и математики. 23 января 1913 г. на заседании Физико-математического отделения Императорской Академии наук уже знакомый нам Андрей Андреевич Марков (старший) представил работу под названием «Пример статистического исследования над текстом „Евгения Онегина“, иллюстрирующий связь испытаний в цепь», в которой исследовал статистические закономерности, обнаруживающиеся в 20 000 символах поэмы (первая глава и 16 строф второй главы)[4].

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

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

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

С августа 1953 г. по май 1954 г. на доске объявлений компьютерного факультета Манчестерского университета появлялись странные любовные письма:

Голубушка любимая,

Вы — моя нежная мечта. Моя тоскующая страсть пылко взывает к вашему желанию. Моё необузданное влечение тоскует по вашей преданности. Вы — моя острая привязанность, моя страстная любовь.

Ваш неравнодушный

M. U. C.

[Duck darling

You are my fond desire. My wistful infatuation ardently attracts your appetite. My longing yearns for your devotion. You are my keen affection: my passionate love.

Yours curiously

M. U. C.]

Сокращение M. U. C. расшифровывалось как Компьютер Манчестерского университета [Manchester University Computer]. Уже знакомый нам создатель первой шашечной программы Кристофер Стрейчи использовал встроенный генератор псевдослучайных чисел Ferranti Mark I и несколько списков слов для создания эмоциональных текстов. Благодаря усилиям программистов-реконструкторов воспользоваться детищем Стрейчи можно и сегодня[5], [6].

Немало усилий было направлено на то, чтобы научить машины сочинять стихи. Вот, например, как описывает работу своей программы POETRY GENERATOR (позже — AUTOMATIC POETRY GENERATOR) её создательница Розмари Уэст: «Мой подход… основан на использовании богатого словаря слов и фраз, которые выбираются случайным образом, и из них формируются словосочетания согласно набору грамматических правил. Рассмотрим, например, следующее четверостишие: „Дерево погружает голые пальцы / в чёрное озеро льда, / словно три серых гуся / сползают по снежному склону“. Каждую строку стихотворения можно разбить на несколько частей… Дерево — подлежащее; опускает — сказуемое; голые пальцы — дополнение. Определив части, я могу вместо них подставлять другие слова из многочисленного (от 100 до 400 [штук]) набора для каждой части. Эти подстановки выбираются компьютером случайным образом. Например, воспользовавшись той же стихотворной структурой, я могла бы получить другое четверостишие: „Женщина прячет пять серых котят / под старым ржавым рыдваном, / и тут же печальные клоуны / входят в ваш музей страданий“».

Вот пример белого стиха, написанного POETRY GENERATOR:

Любовница супруга моего

Любовница супруга моего как будто торжествует.

Но, глядя, как работаю я в храме,

В пещерах зла повсюду меня ищет

И помнит обо мне, в постели засыпая.

Хотя живу я в царстве безразличья,

Не чувствует себя уверенно она.

И никогда в мечтах о власти винить меня она не перестанет.

Каталог стихотворных структур в программе Уэст составлен на основе анализа стихотворений, написанных людьми[7], [8], [9]. Если мы используем привычную нам силлабо-тоническую систему стихосложения (от греч. συλλαβή — слог и τόνος — ударение; в её основе лежит выравненность числа слогов, количества и места распределения ударений в стихотворных строках), то при подстановке слов необходимо сохранять соответствие по количеству слогов и позициям ударений. Если в стихотворении есть рифмы, то необходимо учитывать и их. Но при наличии соответствующих словарей с фонетическими транскрипциями слов всё это становится чисто механическими задачами. Примерно таким образом работает, например, современный «Яндекс.Автопоэт», составляющий стихи из запросов пользователей к поисковой системе «Яндекс»:

как позвонить в сбербанк россии

возьму в аренду самосвал

лечение гипертонии

стендап пузатый генерал

измерить скорость интернета

литературная газета

фильм достучаться до небес

код магнитолы мерседес

вакансии в североморске

что значит слово реапод

несчастный случай снег идёт

цена на шубы в пятигорске

лес пахнет дубом и сосной

я просто должен быть с тобой[10]

В общем, как говорила Герцогиня из «Алисы в Стране чудес» Кэрролла: «Позаботься о смысле, а звуки позаботятся о себе сами» [Take care of the sense, and the sounds will take care of themselves]. Впрочем, со смыслами в эпоху GOFAI всё было как раз не очень хорошо, поэтому для создания полноценной поэзии программы тех лет обычно нуждались в помощи человека. К числу таких систем можно отнести THUNDER THOUGHT Томаса Истона и ORPHEUS Майкла Ньюмана. Автор последней, например, создал следующую нетленку на основе 130-го сонета Шекспира:

My Apples screen is nothing like the sun;

The Cray is faster far on problems big:

[Экран у «Эппла» не похож на солнце;

«Крэй» побыстрее на больших задачах:]

Так как первая строка заканчивается словом sun (солнце), программа заглядывает в словарь рифм и показывает несколько слов, рифмующихся со словом sun: bun, done, fun, gun и так далее. Из этого списка человек выбирает подходящий вариант, например fun (забава). С каким компьютером работать забавнее, чем с компьютером «Эппл» (Apple)? В те годы своими играми славился компьютер «Атари» (Atari). Таким образом, возникает третья строка:

If Apple pleasant be, thAtari is more fun;

[Приятен «Эппл», «Атари» же забавней]

Здесь человек снова подбирает рифму, на этот раз к слову big. Допустим, это wig (парик).

If wires be hairs, her circuits are a wig:

[Проводнички — как волос, схемы — как парик][11]

Ну и так далее.

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

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

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

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

В общем, кеннинги образовываются путём сочетания двух существительных: первое стоит в именительном падеже, а второе — в родительном. При этом важно учитывать, что кеннинги давались довольно ограниченному числу понятий: воину, женщине, ворону, щиту, мечу, кораблю, смерти, бороде, крови, огню, золоту, солнцу, божествам вроде Одина и Тора[12], [13] (кстати, название известной англосаксонской эпической поэмы «Беовульф», т. е. дословно «волк пчёл», — это, по всей видимости, кеннинг медведя[14]) и тому подобное, и каждое из этих понятий имело своё смысловое поле, которое можно определить в виде двух списков слов, соответствующих первой и второй позициям каждого из кеннингов. Таким образом, кеннинг можно построить путём комбинации случайно выбранного слова из первого списка со случайно выбранным словом второго. Поскольку составление таких перечней — задача весьма трудоёмкая, создатели «автоматического скальда» ограничились в своём эксперименте односложными существительными, которых, впрочем, набралось не так уж мало — около 3000, что позволило достичь весьма приличной вариативности. Как лучше назвать ворона: «гриф ран» или, может быть, «сыч сеч»? На выбор конкретного кеннинга влияла как стихотворная форма, так и содержание произведения. Список возможных слов в каждой позиции стиха определялся требованиями наличия рифм и аллитераций, а также тематикой стихотворения. В начале сеанса работы с программой оператор выбирал, кому будет посвящено стихотворение (воину, мечу, ворону, кораблю, Одину или Тору), будет оно хвалебным или хулительным, а также стихотворный размер, тип рифмовки и длину стихотворения. Затем машина выполняла заказ, перебирая слова и образовывая кеннинги, отвечающие заданным требованиям рифмовки и строфики. Чтобы стихотворение не стало простым перечнем кеннингов, в программу внесли ряд добавлений. Так, например, в текст стихотворения включались краткие прилагательные, также отнесённые к различным смысловым полям (например, ворон мог быть «чёрн», но не «бел» и т. п.), а также глаголы в повелительном наклонении. Вот примеры творчества программы:

Нид ворону

Ври, вран —

вор ран,

гриф гроз,

гусь слёз.

Сохл, плох,

трухл, рухл,

дряхл, чахл,

затхл, тухл.

Жухл, слаб

жрун жаб.

Дрянь — вран,

дрянн, дран!

Драпа мечу

Меч, меч —

серп сеч,

бич битв,

брат бритв.

Быстр, остр,

шустр, востр,

страж страд,

страх стад.

Мчи, меч,

бей, меч —

битв бич,

серп сеч![15]

  1. Бирюков Б. В., Гутчин И. Б. (1982). Машина и творчество. — М.: Радио и связь // http://informaticslib.ru/books/item/f00/s00/z0000024/st018.shtml
  2. Ройзман М. (1973). Всё, что помню о Есенине. Советская Россия // https://books.google.ru/books?id=e9AjAAAAMAAJ
  3. Ильф И., Петров Е. (2020). Золотой телёнок / Litres // https://books.google.ru/books?id=lLdKDwAAQBAJ
  4. Марков А. А. (1913). Пример статистического исследования над текстом «Евгения Онегина», иллюстрирующий связь испытаний в цепь / Известия Императорской академии наук, Серия 6. — СПб. Т. 7, вып. 3. С. 153—162 // http://books.e-heritage.ru/book/10086570
  5. Link D. (2009). LoveLetters_1.0. MUC=Resurrection. A Memorial // http://www.alpha60.de/art/love_letters/
  6. https://github.com/gingerbeardman/loveletter
  7. Дьюдни А. К. (1989). Компьютер пробует свои силы в прозе и поэзии / В мире науки. 8 августа.
  8. Smith J. (1988). Byting Rhymes: A Sensitive Soul Decries the Idea of Poetry ‘Penned’ by a Computer / Los Angeles Times, Aug. 21, 1988 // https://www.latimes.com/archives/la-xpm-1988-08-21-tm-1294-story.html
  9. Thompson C. (2003). Automatic poetry pt. 2 / collision detection // http://www.collisiondetection.net/mt/archives/2003/05/automatic_poetr.php
  10. Яндекс.Автопоэт (2014). Как позвонить в сбербанк россии… // https://yandex.ru/autopoet/onegin/2
  11. Дьюдни А. К. (1989). Компьютер пробует свои силы в прозе и поэзии / В мире науки. 8 августа.
  12. Кондратов А. М. (1987). Формулы чуда. — М.: Детская литература.// https://books.google.ru/books?id=uwsiyAEACAAJ
  13. Lloyd H. A. (2017). Kennings: I’ve Made a Little List / HuffPost, updated Dec 06, 2017 // https://www.huffpost.com/entry/kennings-ive-made-a-littl_b_9198846
  14. Sweet H. (1884) Anglo-Saxon Reader in Prose and Verse. The Clarendon Press // https://books.google.ru/books?id=Itm0AAAAIAAJ
  15. Кондратов А. М. (1987). Формулы чуда. — М.: Детская литература// https://books.google.ru/books?id=uwsiyAEACAAJ
Loading comments...