Зачем необходимо создавать тексты с помощью ЭВМ? В первую очередь для того, чтобы познать законы нашего мышления, чтобы понять, как некоторое абстрактное содержание человек представляет в виде цепочек взаимосвязанных абзацев, предложений, слов.
Второе возможное применение - создание "думающих" интеллектуальных машин, которые способны будут ответить на любой интересующий нас вопрос из определенной области знаний. Такие машины, в частности, могут быть использованы и для создания технических описаний на многочисленную продукцию, выпускаемую нашей промышленностью.
Однако задача порождения связных текстов весьма сложна. Ведь здесь, по существу, учитываются все семантические и грамматические особенности единиц языка. Причем надо учитывать тот факт, что смысл предложения не равен сумме значений слов, входящих в предложение. Содержание абзаца не равно простой сумме смыслов предложений, входящих в него. Содержание же полного текста не составляется из простого сложения содержаний его абзацев. На всех этих уровнях действуют более глубокие невидимые связи, которые еще не во всем ясны.
Первые опыты по порождению с помощью ЭВМ проводились над отдельными предложениями. Одна из таких программ основывалась на лингвистическом анализе 50 предложений из "Повестей Белкина" А. С. Пушкина. Были изучены структуры этих предложений. Знаменательные классы слов были разделены на семантические подклассы - выделено было 33 подкласса существительных, 29 подклассов прилагательных, 7 подклассов наречий и т. п. Для каждого глагола, встретившегося в словаре этих 50 предложений, указывались классы существительных, которые могут выступать в роли подлежащих и дополнений. Для существительных указывались согласуемые классы прилагательных и наречий.
Алгоритм порождения в наиболее общем виде можно описать так. По жребию (наугад, по закону случайных чисел) выбиралась одна из возможных синтаксических схем предложения, зафиксированная в 50 изученных предложениях. Затем опять наугад из словаря в эту синтаксическую схему подставлялся какой-то глагол. В зависимости от его семантического подкласса выбирались существительные для заполнения мест подлежащего и дополнения. Затем в зависимости от семантического подкласса этих слов выбирались прилагательные и причастия с определенными семантическими подклассами и т. д. И в заключение проводилось морфологическое оформление выбранных слов суффиксами и окончаниями в зависимости от числа и лица подлежащего, времени глагола и т. д.
В итоге ЭВМ "СТРЕЛА" были порождены такие предложения:
1. ВЫ БУДЕТЕ БЕСПОКОИТЬ ВАШИХ СТАРИКОВ.
2. В САМОМ ДЕЛЕ Я НЕ ОШИБАЮСЬ.
3. МЫ, ЗАМЕТЯ СТАРОГО И РЕШИТЕЛЬНОГО СЫНА, НАЙДЕМ ЛОШАДЬ ТВОИХ ПРАПОРЩИКОВ
Примерно по такому же принципу работает одна из западно-германских программ для ЭВМ, которая синтезирует так называемые "автопоэмы". Одна из них в переводе с немецкого выглядит так:
АВТОПОЭМА 312
Радостные мечты идут дождем
Сердце целует былинку
Зелень рассыпала стройных возлюбленных
Даль далека и меланхолична
Лисы спят спокойно
Мечта ласкает фонари
Мечтательный сон выигрывает землю
Грация зябнет, где это сияние забавляется
Магически танцует слабый пастух.
В 1977 году наша советская ЭВМ сочинила целое собрание стихов на русском языке. В основу словаря положены слова, вошедшие в сборник стихотворений О. Мандельштама "Камень". Предполагалось, что строка стихотворения состоит из одного подлежащего, одного сказуемого, нескольких определений и обстоятельств (каждый из перечисленных членов предложения мог быть опущен). Словарь состоял из словоформ. Каждая словоформа сопровождалась определенной грамматической информацией, информацией о метре стиха (количестве слогов до ударения и после него) и информацией о рифме. Помимо этого, при каждой словоформе указывалось, каким членом предложения она может быть в предложении (подлежащим, сказуемым и т. д.).
При передаче ЭВМ задания на порождение стихотворения указывалось количество строк в каждой строфе, тип окончания в строке, с какой строкой риф-муется данная строка, тип рифмы. Порождение сти-хотворения этой программой проводится справа налево: сначала подбираются все рифмующиеся слова строк строфы, а затем уже все другие по направлению справа налево. Выбор слов из словаря проводится по жребию. Вот одно из стихотворений, написанных машиной по такой программе:
№ 18
Вновь в кустах горят ресницы
Ветер хрупкий светлый злой
На столе желтели птицы
Взор играет за рекой
Лодка далеко краснеет
На закате соловьи
Вновь высокие белеют
Стены вечером твои.
Группа исследователей проводит работу по синтезу с помощью ЭВМ сказок. В результате анализа большого числа сказок выяснилось, что большинство из них включает одни и те же действующие лица (герой, антигерой, прорицатель, даритель, помощник, антипомощник, глупец, антидаритель). Определены возможные поступки каждого действующего лица, типы их встреч, определен перечень стандартных характеристик. С учетом всех этих данных машина на первом этапе строит наиболее общую формулу сказки:
"Жил-был <α> имел <β>. Налетел <γ> унес <β>. Послал <α> Н отыскать <β> обещал <ε>. Отправился Н искать <β>. Идет Н видит <ρ>. Попросил <ρ> Н сделать <δ>. Сделал Н. Обещал <ρ> помочь Н. Идет Н видит <μ>. Вошел Н (в) <μ> смотрит Н сидит <β>. Спрятался Н. Прилетел <γ>. Схватил Н <γ> позвал <ρ> убили <γ>. Забрал Н <β> вернулся (назад). Получил Н <ε>. Сыграли (свадьбу) стали жить-поживать (добро) наживать".
Подставляя в эту формулу вместо α, β, γу, δ, ρ, ε, Н конкретные действующие лица, можно получить сколько угодно конкретных сказок.
На примерах сложения стихотворений, с одной стороны, и сказки, с другой, четко выделяются два подхода к машинному порождению текстов: 1) чисто вероятностный, случайный, когда наугад выбирается тип предложения и входящие в него слова; 2) детерминированный, когда список предложений и слов заранее строго определен, фиксирован.
Анализ точек зрения писателей, поэтов, психологов, лингвистов на процедуру порождения текстов показывает, что человек как-то умело сочетает эти два подхода при создании текстов. Еще одна особенность создания текстов людьми заключается в том, что у них вначале имеется некоторый общий замысел, который затем постепенно детализируется и воплощается в цепочки предложений.
Поэтому, чтобы тексты, порождаемые машиной, были близки к тем, которые создает человек, алгоритм их порождения должен учитывать указанные две особенности тексто-образования. Это в определенной степени реализовано в вероятностно-алгоритмической модели порождения текста. Суть этой модели заключается в том, что машине задается вначале таблица основного статического содержания, в которой зафиксированы имена основных действующих лиц, места и времена действий. Следующая особенность этой модели - наличие в памяти ЭВМ, помимо обычного словаря, специального словаря, содержащего формулы абзацев, которые чаще всего использует данный автор. Они выражают предметно-логическое содержание, описываемое абзацем. Например: "Краткая характеристика главного субъекта". Это содержание записывается на специальном семантико-синтаксическом языке, в основе которого лежат 14 семантических функций: субъект, адресат, место и т. п. По существу такая программа производит текст под какого-то автора.
Процедура порождения текста в соответствии с вероятностно-алгоритмической моделью может быть описана так. Задается общее число абзацев (строф), число начальных и конечных абзацев, таблица осноного статического содержания (о ком, о чем будет текст!). По таблице случайных чисел (по жребию) из числа формул абзацев, которыми может начинаться текст данного автора, находится необходимое число формул начальных абзацев. Аналогично ищутся срединные (медиальные) и конечные абзацы. В итоге получается семантико-синтаксическая формула всего текста. Она начинает "наполняться" конкретными словами сначала из таблицы основного статического содержания, а затем уже из общего словаря автора. При этом учитываются специфичные для данного автора сочетания слов. Программа, созданная по этому алгоритму, реализована на ЭВМ ЕС-1022.