Електронний скальд: про зв’язок математики та поезії
«Вивчення потоку мови без гіпотез про механізм його породження не тільки малопродуктивно, але і нецікаво»,— сказав якось А. Й. Колмогоров, чиї роботи з математичного аналізу вірша стали класичними. Слова ці справедливі як для лінгвістики, так і для літературознавства і поетики. Число текстів, які може зробити, написати, «породити», кажучи мовою кібернетики, будь-яка людина, що володіє мовою, практично нескінченно. Статистика дозволяє вловлювати загальні закономірності, частоти вживання тих чи інших слів, конструкцій, фонем, морфем. Але головне – не сам механізм породження мови, а породження текстів. Ось чому «революцією в лінгвістиці» назвали роботи американського лінгвіста Ноама Хомського, присвячені так званим «породжуючим граматикам». В математиці є особливі породжуючі системи – формальні обчислення, за допомогою яких, виходячи з набору певних аксіом, правил побудови формул і виведення одних формул з інших, можна будувати нескінченне число правильних висловлювань.
Хомський провів сміливу аналогію з мовою, з її нескінченним числом правильних речень, що складаються з кінцевого числа елементів — слів і граматичних категорій. В результаті з’явилася теорія породжуючих граматик, одна з найцікавіших і перспективних областей сучасної лінгвістики.
Багато в чому під впливом цих робіт народилася ідея використовувати поетичні тексти, породжувані комп’ютером, для перевірки правильності моделі поетичної творчості, виходячи з якої побудована програма, що управляє машиною. Для цього, звичайно, треба хоча б в найзагальнішому вигляді уявити собі, як людина пише вірші, за якою програмою, неймовірно складною, багатовимірною, примудряється її мозок одночасно оперувати зі змістом і зі звуком, перебирати слова, що зберігаються в пам’яті, по закінченнях — римуваннях, початках — алітераціях, смислових ознаках, асоціаціям і т. д.
Поетична творчість відома будь-якому, самому відсталому в культурному відношенні народу світу. Зразки її ми знаходимо в найдавніших пам’ятках письма. Мабуть «говорити віршами» людині розумній так само властиво, як співати, танцювати, малювати. За допомогою комп’ютера, який отримує ту чи іншу програму породження поетичного тексту, ми можемо будувати різні моделі поетичної творчості. Якщо модель неточна або груба, то і тексти, породжені комп’ютером по цій моделі, будуть настільки ж низької якості. Модель вдосконалюється – вдосконалюється і якість текстів, породжуваних комп’ютером за цією вдосконаленою моделлю.
Перші досліди
Ще в 1953 році у французькому журналі «Електроніка» з’явилася публікація текстів, автором яких була електронна обчислювальна машина «Калліопа». Тексти ці були малозрозумілими. Наприклад: «Мій горизонт складається лише з червоної портьєри, звідки з перервами виходить задушлива спека. Ледве можна розрізнити містичний силует жінки, гордої і жахливої; це знатна дама, має бути одна з пір року…» Далі слідувала подібна ж тарабарщина. Породжувався цей текст нехитрим шляхом: зі словника в кілька десятків тисяч слів, що зберігався в пам’яті комп’ютера, витягувалися — за принципом «орла або решки» — слова і з’єднувалися між собою знову-таки за принципом теорії ймовірностей.
Слідом за «Калліопою» письменництвом зайнялися й інші ЕОМ (ці протокомп’ютери розміром з кімнату). Але принципи їх «творчості» були практично тими ж. Спочатку досліджувалися статистичні характеристики тексту. Потім комп’ютер «вибирав» з послідовності випадкових чисел слова і фрази, які мали подібну статистичну характеристику. Ні про який сюжет, сенс і т.п. і мови тут бути не могло. Така «творчість» нагадувала монолог людини, яка не знає іноземної мови, проте намагається наслідувати чужій мові, вимовляючи безглузді, але схожі за звучанням слова і фрази.
Лише після того, як з’явився і оформився напрямок, званий «штучний інтелект» і в розпорядженні кібернетиків виявилися сучасні комп’ютери з їх швидкодією і великою пам’яттю, питання про моделювання поетичної творчості стало на серйозну основу. На зміну схоластичним, «випадковим» програмам породження тексту прийшли програми евристичні, творчі, пошукові. І текст цей був вже не набором «статистично близьких» (але безглуздих!) поєднань слів, а зв’язковим — за змістом, за конструкцією фраз і т. д. При цьому з’ясувалося, що найлегше запрограмувати формальну сторону поезії — рими і алітерації, ритмічну «сітку», в яку поет укладає свою розповідь. Звідси народилася ідея скласти пошукову програму для таких віршів, в яких вимоги до форми були б дуже великі, а зміст міг би залишатися в традиційних рамках. Найбільш вдячним матеріалом в цьому відношенні виявилася поезія скандинавських скальдів, яку створювали близько тисячі років тому відважні воїни і мореплавці — вікінги.
«Найскладніша в світі поезія»
Поезію скальдів називають іноді найскладнішою, найбільш «важкою» за формою поезією в світі. Кожна строфа скальдичного вірша буквально «прошита» різними співзвуччями, внутрішніми римами, алітераціями і т.д. адже вірш, який просто римований, з точки зору скальдів ще не вірш, потрібно прикрасити його, збагатити звучання ще й іншими засобами. І не тільки звучання — поети-скальди вдавалися до дуже складної і химерної системі образів. Корабель вони називали «конем моря», море — «будинком вугрів» або «полем корабля». Кров іменувалася «морем меча», меч — «шипом ран». Ворон називався «осою трупів», «соколом битви», «лебедем крові» і т.п. Такі образи отримали назву «кеннінги».
Але і цього було мало скальдам. На підставі простих кеннінгів вони створювали кеннінги складні, «багатоступінні». Якщо меч іменується «шипом ран», «піт меча» — це кеннінг крові, а «лебідь крові» — кеннінг ворона, то ворона можна назвати «лебедем поту шипа ран». Якщо битва має кеннінг «тріск стріл», а меч — кеннінг «вогонь битви», то той же меч може бути названий і більш складним кеннінгом — «вогонь тріска стріл». Деякі поети-скальди примудрялися складати кеннінги, що включають до семи компонентів, семи «поверхів». Наприклад, воїн іменувався кеннінгом «метальник вогню хуртовини відьми Місяця коня корабельних сараїв». Ось його розшифровка: «кінь корабельних сараїв» – це корабель, «місяць корабля» – це щит «відьма щита» — спис, «хуртовина списів» — битва, «вогонь битви» — меч, а «метальник меча» – воїн!
Поезія ж скальдів, незважаючи на всю свою складність, не була справою обраних і призначалася для всього суспільства. В епоху вікінгів вміння складати вірші прирівнювалося до вміння стріляти з лука, грати в шашки, музикувати на арфі, їздити на коні. Авторами віршів були і прості дружинники і королі, в тому числі і норвезький король Харольд Суворий, який присвятив любовні вірші своїй нареченій Єлизаветі, дочці київського князя Ярослава Мудрого.
Як вважає знавець поезії скальдів професор М. І. Стеблін-Каменський, творчість визнавалася скальдами тільки в області форми. Поет не міг скласти небилицю, приписати собі справи, їм не виконані, вдатися до поетичної фантазії. Він описував події такими, якими вони насправді були. Або складав хвалебну пісню, так звану драпу, звеличуючи героя своїх віршів. Або писав нід, хулительний вірш, що «соромив» ворога. Або повідомляв такого роду відомості: «я продав застібку від плаща, яку мені прислали ісландці, і купив оселедців; свої стріли я теж обміняв на оселедців з нагоди врожаю».
Такий зміст одного з скальдичних віршів. Інші ж ще бідніші, на кшталт: «Я вбив Торгрма, Лодіна, Торкеля, Торда і Фальгейра». Але всі ці хвали, хули і мізерні повідомлення одягалися в пишний одяг кеннінгів, співзвуччя, ритмів і рим. Чим винахідливішим був у цій справі скальд, тим вище цінувалася його поезія.
Але, таким чином, в голові у скальда, очевидно, існували своєрідні алгоритми, правила утворення кеннінгів, правила відбору слів, що утворюють риму, а також інші співзвуччя з сусідніми словами, правила ритму, в «сітку» якого одне слово поміщалося, а інше — ні… Чи не можна ці правила зробити доступними комп’ютеру? Адже творчість скальдів йшла в певних строго заданих темою і формою рамках… А якість віршів, породжуваних комп’ютером, буде говорити про те, наскільки вірно ми моделюємо творчість скальдів.
Алгоритми кеннінгів
Вивчаючи поезію скальдів, вчені, далекі від кібернетики, помітили, що кеннінги, по суті справи, утворюються за жорсткою схемою.
Ось кеннінги ворона: «гусак битви», «оса трупів», «зозуля трупів», «лебідь крові», «чайка ран», «гусак крові». Неважко помітити, що перша частина кеннінгів ворона — це назви птахів і літаючих комах (гусак, оса, зозуля, чайка, лебідь), а друга частина кеннінга утворена словами, пов’язаними з битвою, кров’ю, трупами, ранами і т.п. Корабель іменувався скальдами «конем моря». Але не тільки моря – другою частиною кеннінга корабля могли бути такі слова, як волога, болото, вода, гирло, канава, водоспад, річка, безодня, прибій,— словом, всі поняття, пов’язані з водою. А першою частиною кеннінга могло бути не тільки слово «кінь», а й «лось», «тур», «лев», та й найменування будь-якої іншої великої тварини.
Складні кеннінги утворювалися за чіткою схемою, що піддається математичному опису. У книзі математика Ю. І. Маніна «Доказове і недоведене» наведено алгоритм породження таких кеннінгів. Його неважко реалізувати на комп’ютері. Або, навпаки, вести свого роду розшифровку кеннінгів, створених поетами-скальдами, за допомогою комп’ютера.
Правила породження простих кеннінгів також можуть бути автоматизовані. Кеннінги утворюються поєднанням двох іменників: перший з них стоїть в називному відмінку, другий — в родовому. Однак далеко не всякий іменник в називному відмінку в поєднанні з іменником в родовому породжує кеннінг. Кеннінги давалися обмеженому числу понять: воїну, жінці, мечу, кораблю, ворону, щиту, скандинавським язичницьким божествам, на зразок Одіна або Тора. І кожне з них мало своє коло понять, з ним пов’язаних, своє «смислове поле». Ці «смислові поля» можуть бути проіндексовані.
Якщо слово нейтральне, тобто не входить складовим компонентом в першу або в другу частину кеннінга ворона, воїна і т.д., воно отримує індекс 0. Якщо слово може бути першою частиною кеннінга для того чи іншого поняття, воно отримує індекс 1, якщо другою — індекс 2. У словнику, розміченому подібним чином, в графі «ворон» індекс 1 отримують всі назви птахів і літаючих комах (жук, стриж, гриф, дрізд, оса, сич, зозуля та інші); індекс 2 — слова, пов’язані з кров’ю, битвою, зброєю і т.п., всі інші слова отримують індекс 0. Таким чином, будь-яке поєднання слів з індексом 1 зі словами, що мають в тій же графі індекс 2, автоматично породжує кеннінг ворона. «Жук битв», «жук трупів», «жук крові», «стриж крові», «стриж трупів», «стриж битв», і т.д. Подібну ж процедуру можна виконати і з іншими поняттями, які отримували кеннінги в поезії скальдів.
Природно, скласти повний словник всіх слів, які до того ж стоять не тільки в називному, але і в родовому відмінку, практично неможливо. Тому на першому етапі експерименту було вирішено обмежитися лише односкладовими словами-іменниками. Але і таких слів набралося приблизно три тисячі. Число можливих поєднань, що утворюють кеннінги, досягає астрономічних величин навіть в тому випадку, якщо обмежитися тільки односкладовими словами. Яке ж з них слід вибирати при породженні скальдичних віршів? Як краще назвати ворона: «сич сечі» або «гусак битв»? Або, можливо «жук ран»? «Дрізд стріл»? Ці питання, мабуть, стояли перед «природним» інтелектом поета-скальда, який складав свої хвалебні драпи і хулительні ніди. Вони повинні вирішуватися і програмою для комп’ютера, що моделює творчість скальдів.
Комп’ютер-скальд
Як йшов відбір одного-єдиного кеннінга з величезної безлічі всіх можливих? Очевидно, на вибір скальда впливала форма вірша. Одне слово римувало, інше рими не утворювало. Римуючи, одне слово давало ще й алітерацію, інше – ні. Тобто всі можливі кеннінги немов «прочісувалися» через жорсткі вимоги форми. І вибиралося те поєднання слів, яке повністю відповідало їм.
Програма такого відбору – за ритмом, співзвуччям, римам, алітераціям і т.д.— була складена і для комп’ютера. Скальди користувалися декількома видами віршованих розмірів: дротткветтом, тоглагом, квідухаттом, рунхентом, що відрізнялися один від одного візерунком алітерацій, що споюють рядки строфи, системою римування і т.д. Для кожного з цих розмірів був складений відповідний алгоритм. Різні можуть бути і самі рими: точні, в яких повністю збігаються ударний голосний і заударні приголосні (наприклад, «меч—січ»), в яких збіг цих заударних приголосних необов’язковий (наприклад, «гон— гонг»); консонанси, де приголосні збігаються, а голосні римуючих слів розрізняються (наприклад, «кіт—кит»). Для пошуку всіх цих типів рим також були складені спеціальні алгоритми.
Робота комп’ютера, що моделює творчість поета-скальда, будується поетапно. Спочатку «замовнику» пропонується вибрати тему вірша: чи буде вона присвячена воїну, мечу, ворону, кораблю, богу Одіну або Тору і т.д. Далі він вибирає, чи буде вірш драпою або нідом. (До речі сказати, подібного роду соціальне замовлення і виконували в більшості випадків поети-скальди. Деяким з них вдавалося завдяки майстерно складеним віршам уникнути смертної кари – один з скальдичних віршів так і називається: «Викуп за голову».)
«Замовнику» пропонується визначити обсяг вірша, зі скількох строф він буде, яким розміром має бути написаний і якій системі римування буде слідувати. У підсумку виходить близько ста тисяч можливих варіантів «замовлення». Далі слідує заповнення словами одного з цих обраних ста тисяч варіантів. Комп’ютер перебирає слова, що зберігаються в його пам’яті, утворюючи кеннінги, які повинні при цьому відповідати вимогам римування, строфіки і т. д.
Щоб вірш, що породжується за програмою «Скальд», не був простим переліком кеннінгів, був внесений ряд додавань. У текст вірша включалися короткі прикметники, розмічені певним чином по їх «смисловим полям». А також дієслова в наказовому способі, які отримали спеціальні індекси.
Що відбувається в «чорному ящику»!
Програма «Скальд» здійснюється в рамках групи «Статистика мови», керованої професором Р. Г. Піотровським. Програма ця до кінця не завершена. Скальдичні драпи і ніди сюжету не мають, і програма їх породження не так вже й складна. Скальди ж складали і «вірші на випадок», хоча зміст цих віршів був досить обмеженим і диктувався тією чи іншою подією, відобразити яку і повинні були вірші. У наші дні одним з найактуальніших завдань штучного інтелекту є розробка сценаріїв і смислових «рамок», так званих фреймів, за допомогою яких можуть описуватися ситуації реального світу. Це дозволяє сподіватися, що і «вірші на випадок» можуть бути промодельовані на комп’ютері. Спочатку ситуація буде описуватися на формалізованій мові, а потім її зміст перекладеться в скальдичні строфи.
Кількість варіантів, за допомогою яких можна висловити той чи інший зміст, в мові велика. Вимоги форми різко обмежують їх число: вірш повинен бути римований, підкорятися правилам ритму. Але чи є варіант найкращий, оптимальний? Такий варіант, в якому б заздалегідь заданий зміст викладався з максимальним багатством «звукозапису» вірша? Поезія скальдів, «найважча в світі» за формою, є прекрасним полігоном для робіт в цьому напрямку.
Організація словника в машинному перекладі, компактне зберігання і видача інформації в різних «банках даних», створення «автоматів паралельної дії» — а таким «автоматом» є мозок поета, який пише вірші, оперує одночасно зі звуком і змістом, передає в одних і тих же рядках і «фактичну», і вольову, і емоційну, і естетичну інформацію,— ось завдання, що чекають свого рішення.
«Чорним ящиком» в кібернетиці називають систему, пристрій якої невідомий і судити про яку ми можемо лише за інформацією «на вході» і «на виході». Найскладніший і найдивовижніший «чорний ящик», з яким доводилося, доводиться і, мабуть, доведеться мати справу людині,— це її власний мозок. Породжуючи на комп’ютері віршовані тексти, вчені аж ніяк не прагнуть допомогти поетам писати вірші. Вони хочуть проникнути в глибини «чорного, ящика» – нашого мозку, що створює за допомогою дива природної мови «диво в квадраті» — поезію.
Автор: А. Кондратов.