Стремление к совершенству - Леонид Ашкинази
- Категория: Фантастика и фэнтези / Научная Фантастика
- Название: Стремление к совершенству
- Автор: Леонид Ашкинази
Шрифт:
Интервал:
Закладка:
Ашкинази Леонид
Стремление к совершенству
Леонид Ашкинази
Стремление к совершенству
Известно энное количество попыток создать программы, пишущие прозу или стихи. Результаты работы таких программ обычно фигурируют на конференциях по искусственному интеллекту; докладчик зачитывает, слушатели глубокомысленно кивают, а непонятно каким ветром занесенный сюда корреспондент ждет перерыва, чтобы спросить докладчика, может ли машина мыслить. Спрашивать, может ли машина писать стихи, он не будет - ему уже все ясно. Заметим, что особенно много публикаций на тему машинного творчества было лет 10 - 20 назад. А за волной публикаций серьезных шла волна юмористических, насчет Пегаса из шестеренок и так далее. Потом интерес уменьшился, а сейчас и вовсе почти затух. Ну да, на Джомолунгму можно взлезть, хотя и очень трудно; а вот на Марсе есть гора Олимп высотой около 25 км (точнее по съемкам не определить), так почему-то к восхождению на нее на Земле даже психи не готовятся.
Между прочим, "секрет" игры в шахматы не раскрыт, и все это признают, но шахматные программы играют все сильнее, в блиц они уже играют сильнее людей, а в обычные шахматы - выигрывают у международных мастеров. Так что еще пяток лет... Но дело в том, что над шахматными программами люди работают непрерывно.
А над программами-писателями не работают: заменять Пушкина вроде бы не светит, а Долматовского - неинтересно. Так что творцы шахматных программ оказались умнее - на лавры товарища Карпова не претендовали и понемногу до господина Каспарова доросли. Так что, может, и секрета в шахматах нет? Просто некоторые мелочи человек оценивает быстро (полуинтуитивно), а машина тупо считает. Но за счет скорости пересчитывает. А со временем программисты-шахматисты придумывают всякие обобщенные методы оценки позиций, и игра машины все более становится похожей на игру человека, пользующегося интуицией.
Теперь вернемся к писательско-поэтическому творчеству. Существует определенная схема анализа художественного произведения. В самом примитивном виде - тема, жанр, стиль и т. д. Если мы хотим, чтобы машина писала поэмы, она должна все это уметь делать. Но если мы будем пытаться сделать все сразу, то не сделаем ничего. По крайней мере, за отпущенное на эту НИР время. Поэтому надо начать с чего-то одного. И я решил начать со словаря. Тем более, что мой редактор издевался надо мною так: начиная читать, он в первом же абзаце подчеркивал три одинаковых слова (например, начать...) и ставил сбоку бо-о-ольшой вопросительный знак.
Сначала я решил вполне локальную задачу: лишил редактора возможности надо мной издеваться этим простейшим способом. Программа, снабженная могучим словарем, выискивала все одинаковые слова и заменяла их синонимами. Все шло хорошо, но возник вопрос - какими синонимами заменять? Если, скажем, у слова десять синонимов. Один из способов - применить частотный анализ. Про каждое слово мы знаем частоту его употребления в текстах. В общих, в специальных, в "жаргонизированных", в современных, в архаичных и т. д. Поэтому можно, подбирая соответствующие синонимы, создать текст архаичный и вполне современный, общелитературный и написанный техническим языком или, скажем, молодежным (одним из молодежных) жаргоном и т. д. Более того, если мы знаем, как со временем изменяется частота словоупотребления, мы можем создать "текст будущего", используя слова, частота употребления которых в последние годы растет. Оруэлл бы перевернулся в гробу - новояз по-кибернетическому! Но шутки в сторону. Тексты, стилизованные под старину, под хиппи, под шоферское арго - все это программа делала запросто. Если на 486-й пускать, то даже покурить не успеешь - все готово. Естественный следующий шаг - имитация стиля конкретных авторов. Один и тот же текст, исполненный под "Тихий Дон" и "Поднятую целину", под Набокова и Стругацких? Маловероятно, но очень, очень похоже... Позвонить, что ли, в С.-Петербург? Или Борисову эмэйл дать?...
Однако я уже не мог остановиться. Есть в научной работе такой момент, когда задача начинает фактически диктовать ход работы, и автор, как кролик, только не фазиль-искандеровский, а натуральный, хвостик трясется и спинка вспотела, но - туда, туда, туда...
Я начал учитывать связи между словами, потом - структуру фраз. Программа уже работала ощутимое время. Трудилась, значит. И выдавала тексты. Заметим, что если параметры (частота употребления тех или иных слов, тех или иных схем) изменять мало, то тексты получались "экспертно-неразличимыми". То есть человек-эксперт читал два текста и атрибутировал их одинаково, добавляя, что это, по-видимому, разные варианты. Если же изменить параметры сильно, то тексты атрибутировались по-разному. Это, говорил эксперт с умным видом, по-видимому, Эразм Роттердамский, а это - наверное, Солженицын. Только они же оба о лесбийской любви не писали, голубчик! Ах, виноват, отвечал я, с темой неувязочка вышла. И эксперт провожал меня долгим, задумчивым взглядом... Но, что оказалось - что эксперты никогда не становились в тупик. Сначала они лихо называли век, год и автора, а потом открывали рот и вопрошали - откуда у вас это, молодой человек?! Имярек же об этом не писал?! В его веке этого же не было. Не мог Тунгусский метеорит упасть на территории Эвенкийского автономного округа!
И тут меня пустили на действительно мощную машину. И решил я покончить с этой задачей навсегда. Как удав с кроликом. Взял и проварьировал все параметры во всех пределах с таким шагом, с каким эксперты вообще различают тексты. Должен вам честно сказать, что получилось много. У меня столько дискет с собой не было, но ребята сказали, что они мне потом выведут.
И стал ходить по экспертам... Вы уже понимаете, чем дело кончилось они все тексты смогли кому-то приписать... То есть в прошлом все уже оказалось написанным. Или, выражаясь математическим языком, множество известных писателей оказалось всюду плотным. Не втиснуться в прошлое!
На "новоязе", что ли, писать прикажете?
(adsbygoogle = window.adsbygoogle || []).push({});