Анатолий Анисимов - Компьютерная лингвистика для всех - Мифы, Алгоритмы, Язык
Ситуация 1. Прогулка по тропическому саду с хозяином. Робот видит змею.
— Осторожно, хозяин. Опасность. В 20 метрах впереди за деревом вижу змею. — Почему она опасна? — Не знаю. Но в моей оперативной ассоциативной базе знаний она попадает в черное поле, обозначенное понятием «опасность». Запрашиваю дополнительную процедуру из внешней памяти. — Действуй. Генерируются образы. Змея. Контакт с человеком. Змея кусает. Человек лежит. Человек мертв. Смерть. Смерть — одна из характеристик опасности. Вывод: избегайте ситуации, описанной этим маршрутом. Не допускайте контакта со змеями. — Молодец. Лучше в самом деле пойдем домой.
Ситуация 2. Робот исследует неизвестную планету. Ему необходимо вернуться в базовый лагерь к определенному часу. Робот размышляет. Прямой путь не годится — он проходит через таинственяое место, где погибла предыдущая экспедиция. Здесь очень велика координата, соответствующая опасности. Слева от этого места проживает племя глюков. Координата опасности возрастает, но все же она меньше, чем в предыдущем случае. Справа путь безопасен, но требует больше времени. Не успею в срок. Приоритет отдается времени. Поэтому обхожу слева. Глюки уничтсжили мост через реку, Вызываю целевой образ "преодоление водной преграды". Решение: материал, который легче жидкости, образующей преграду; пробуй соседние деревья; собрать плот; преодоление преграды на плоту. Веду просчет времени. Должен успеть. Приступаю к выполнению плана работ. Форсирую водную преграду. Я на другом берегу. Конец процедуры "преодоление водной преграды". Включаю скорость и по прямой мчусь в лагерь.
В этом случае для решения главной задачи роботу пришлось вызывать процедуры решения подзадач и несколько раз применять метод динамического программирования. Кроме того, использовался сложный многокомпонентный критерий оптимальности, включающий минимизацию времени и вероятность опасности. В первой ситуации робот вызвал сеть образов, связанных с понятием «змея», и произвел включение ее в общую сеть. Сеть «опасность» и новая сеть «змея» пересеклись на общем понятии «смерть». Робот просчитал возможный маршрут от «змеи» до «смерти», тем самым показав опасный вариант развития событий. Робот должен уметь, кроме решения задач динамического программирования, использовать рекурсию по управлению — решение подзадач тем же самым общим методом, а также иерархическое (рекурсивное по данным) представление знаний. Не будем здесь подробно останавливаться на способах представления знаний в системах искусственного интеллекта. Отметим только, что подобная зкспертная система (более точно — универсальная оболочка системы, позволяющая разнообразное наполнение в зависимости от предметной области) нашла неожиданное приложение, относящееся к процессу сочинения стихотворений.
МАЛЕНЬКИЕ ПЬЕСЫ ДЛЯ ЭЛЕКТРИЧЕСКОЙ МАШИНЫНаше путешествие привело в еще одну загадочную страну. На одном из поворотов открылся удивительный ландшафт: слова, вечные, изменяющиеся, неуловимые, образуют хороводы, шепчут забытые имена, перекликаются друг с другом и зовут, зовут в туманную даль, где даже неистовая Вселенная тихо застывает, подчиняясь волшебным ритмам и магии слов. В призрачных тающих замках грустные колдуны правят этой страной, угадывая в зеркалах и звездах отражения мира. В последнее время в эту страну все чаще и чаще забредают любопытные злектронные существа. Остановившись, как бы в изумлении они долго прислушиваются к течению слов, присматриваются к действиям колдунов и повторяют, повторяют их веч- ные напевы. А некоторые из них вдруг сами решаются на колдовство. Программисты давно пытались составить программы, сочиняющие стихи. В первых опытах заранее составлялся словарь слов и фраз, которыми можно пользоваться, и форма, которой должны соответствовать слова и фразы. Выбор слов и фраз при заполнении формы управляется тем или иным законом — чаще всего используют датчики псевдослучайных чисел. Получаются стихи, иногда напоминающие авангардистские поиски. Но при более или менее длительной эксплуатации неизбежно проявляется ограниченность такого подхода. Начинаются повторы, становится заметен плагиат формы. По такому рецепту, например, работает программа Роеtrу generation (генератор стихов), которую создала Р. Уэст из Калифорнии. Многие решили, что раз компьютер — помощник человека, то пусть он только помогает сочинять стихи. В этом случае машина генерирует «сырую» основу стихотворения, которую затем доводит и шлифует человек. Такой подход развивают Р. Ширли — английский кристаллограф, пишущий стихи, и американец Т. А. Истон. В таких случаях трудно отличить машинное творение от человеческого. Безусловно, компьютер может облегчить поиск рифм и выбор фраз, но качество стихотворения во многом определяется творчеством человека. Вот образцы такой поэзии.
Я путешествую в компании комет
Я путешествую в компании комет
…средь хрустальной вечности…
…этого островка Вселенной…
Я тоже дитя вечности
(Марс, Венера, Юпитер, Сатурн),
Я тоже дитя вечности в пути без цели и без конца,
Затерян в дворцах вечности
(Процион, Эридан, Ригель),
Но я не плачу,
Я предсказываю начало.
Рожденный из тьмы, в пути без цели и без конца,
Рожденный кем-то, чье семя рассеяно
по галактикам (возникшим из тьмы)
по галактикам (Земли по имени Нигде).
Подо мной, куда ни глянь, целая жизнь;
я кружусь по орбите… мечтаю о рае…
(о сполохах Солнца, о сполохах звезд,
затерявшихся в звездной пыли).
Потерявшись в пустом океане среди галактик,
Я предсказываю начало, я мечтаю о рае
(Меркурий, Земля, Уран, Плутон),
затерявшись среди звездной пыли,
Я путешествую в компянии комет,
но я не плачу,
сполохи Солнца. сполохи звезд…
…в брызгах дрейфующих звезд…
И я предсказываю:
Начало (79)
Ширли. Програмла Бард.
Песня о любви — одиноким инопланетянам
Слаб от страданья необласканного «я»,
Любил он физику
И обнимал ее каноны.
Охватывал руками купола из линий
Антенн гигантских,
И с ревом на орбиту он вознесся,
И возвестил приход его сигнал, крчащий
Миллиметровыми волнами
По пространству (80)
Т. А. Истон. Программа Thunder Thought.
Сонет СХХХ-б
Экран у «Эппла» не похож на Солнце;
"Крэй" побыстрее на больших задачах;
Приятен «Эппл», "Атари" же забавней
Проводнички, как волос- схемы, как парик:
Там пляшут пикселы зеленые и красно-голубые,
Я на своем дисплее не видал такие;
В больших машинах пляшет логика вернее,
Чем в крошечном кристалле «Эппла» моего.
Люблю смотреть, как он печатает, но знаю,
Что строчный принтер все же посильнее;
Признаюсь, что процесса в действии не видел,
Шагами малыми работает мой «Эппл»;
Но небом поклянусь, мое сужденье здраво,
Как вычисление любое, что сделал он (81).
М. Ньюмен. Программа Orpheus.
Более интересным и перспективным представляется иной подход к компьютерному порождению стихов. Используют ту же экспертную систему (описанную в предыдущем параграфе). Прежде всего создается семантическая сеть из слов, связанных между собой близкими ассоциациями. Если, например, взять слово «сентябрь», на ум по ассоциации сразу приходят образы ранней осени: "лето кончилось", «осень», "короткий день", "серый дождь", "опавшие листья", «грусть» и т. п. (рис. 9). Поставив все в творительном падеже для облегчения рифмовки, просто перечисляем все признаки, ассоциирующиеся с осенью. Получаем почти что механически, «вручную» стихотворение:
— ------------=
(79) Мичи Д., Джонстон Р. Компьютер-творец, — М.: Мир, 1987. — С. 158 161.
(80) В мире науки.- 1989. — М 8. — С. 90,
(81) Там же, — С. 90.
— ------------=
* Рус. 9. Семантическая сеть «Сентябрь»
Поздравляю тебя с Сентябрем:
С опавшими листьями,
Грустными мыслями,
Минувшим романом,
Словами-обманом,
Серым дождем,
Коротким днем,
Поздравляю тебя с Сентябрем.
Возможно, здесь нам просто повезло — не все перечисления так легко собираются в рифмованные пары. Но все же можно пробовать. В общем случае алгоритм создания стихов работает так. Создается семантическая сеть. Она состоит из слов и групп слов, связанных между собой по тем или иным ассоциативным признакам: близости места, времени, соответствию цветов, ощушений, логической связи и т. п. От густоты сети зависит качество стихотворений. Далее строится строка стиха — набор связанных попарно элементов сети (маршрут). Выбирается рифмованное слово и соединяется оптимальным маршрутом в сети с последним словом предыдущей строки. Этот маршрут в обратном порядке образует следующий стих. Процедура повторяется. Начинается стихотворение с любого элемента сети. Затем все сводится к связным оптимальным маршрутам. Связность дает возможность воспринимать текст как нечто имеющее смысл. Оптимальность выражает либо кратчайший путь, либо путь, минимизирующий расхождение с заданной ритмикой строки. Она дает возможность добиться того, что незаметно все время делает мозг — плавно генерирует волны образов. Получаются интересные эксперименты. Вот примеры (82)