УДК 658.012.011.56

БАЗА ДАННЫХ КОНСТРУКЦИЙ РУССКОГО ЯЗЫКА ДЛЯ АСУ

В. С. Романовский, Э. Н. Соколова

     Для современных АСУ характерно увеличение объемов  циркулирующей информации на естественном (русском) языке [I]. Все более актуальными становятся задачи ее точного и быстрого контроля, поиска и анализа необходимых текстов и принятия на этой основе решений. Повышение уровня интеллекта компьютеров, а также совершенствование средств их взаимодействия с человеком и, в частности, в направлении понимания естественного языки и формирования баз знаний является одной из важнейших задач при создании ЭВМ пятого поколения [2], решение которой связано с созданием базы данных (БД) с быстрым доступом, cодержащей конструкции естественного языка (слова, фразы, тексты) и отражающей или способной отразить в себе модель внешнего мира [I].

     Разработка диалоговой системы ДИАЛКА, позволяющей производить быстрый поиск (в 90% случаев за одно обращение к накопителю на магнитном диске - информацию об одном слове), и является определенным шагом в направлении создания системы, понимающей фразы на русском языке (т. е. самостоятельно принимающей разумные с точки зрения человека-эксперта решения).

     Программы системы ДИАЛКА обеспечивают выполнение следующих процедур:
     поиск конструкции по ключу;
     запись новой конструкции в БД;
     дополнение имеющейся в БД конструкции новой информацией;
     расчленение информации о конструкции на составляющие;
     удаление всей информации о конструкции;
     удаление определенной части информации о конструкции;
     поиск синонимов.

     Из программ пользователя программы системы ДИАЛКА вызываются с помощью операторов САLL для грамматического контроля слов русского языка или перевода с естественного языка на простой формализованный язык, задаваемый пользователем. Язык задается в табличном виде посредством заполнения массива в модуле, программируемом пользователем. С помощью массива определяется соответствие названий реквизитов записей, представленных на естественном языке, их обозначениям, принятым при программировании. Один реквизит может иметь до трех названий.

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

     Логическая структура БД состоит из записей двух видов. Записи первого вида имеют жесткую структуру и содержат описание структуры записей второго вида. Записи второго вида включают информацию о конструкциях русского языка.

     При использовании системы ДИАЛКА снижение быстродействия по мере наполнения БД незначительное благодаря специальному подбору функции рандомизации для конструкций русского языка.

     Работа проблемных программ системы не зависит от размещения данных в базе. Хотя ДИАЛКА не содержит блоков синтеза новых фраз, она позволяет вести диалог с использованием фраз, ранее переданных ей. При этом целью диалога является попытка программы удовлетворить требования теста Тьюринга. Программа «старается» придерживаться темы, определенной первой фразой человека, и продемонстрировать разумное поведение. В процессе диалога БД наполняется конструкциями русского языка, что и является основным эффектом от
ведения диалога. Система ДИАЛКА, помимо БД конструкций русского языка, содержит вспомогательное программное обеспечение корректировки конструкций и дополнительного описания их смысла, увеличения пространства БД, слияния двух однородных баз, построенных с помощью ДИАЛКА, сравнения слов, нахождения однокорснных слов и переноса слов по правилам русского языка.

     Программное обеспечение отлажено в ОС ЕС. ДИАЛКА имеет оверлейную структуру и требует 128 кбайт оперативной памяти. Она может использоваться при обучении русскому языку.

     При построении системы применялся виртуальный метод доступа [3]. Высокое быстродействие достигается за счет использования логических инвертированных файлов и алгоритмов перемешивания (рандомизации) [3]. Специфичность БД конструкций русского языка не позволяет эффективно использовать известные СУБД.

     Данные хранятся в базе в закодированном сжатом виде. Длина записи 3520 байт, что позволяет хранить данные в устройстве прямого доступа любого типа.

     Ключом для поиска слова в базе является само слово. Фразы и тексты снабжаются специальными пятибайтовыми ключами, состоящими из буквы 8 для фразы (Т—для текста) и четырехбайтового двоич-
ного номера. Каждая фраза (существующая как отдельно, так и в составе текста) может сопровождаться описывающими ее смысл словами, ключами других фраз или текстов. Каждое слово, внесенное в базу,
может сопровождаться неограниченным количеством ссылок на другие слова. Каждая ссылка состоит из ряда слов, первые из которых название связи, а последнее — слово, с которым осуществляется связь. Например, слово «министр» может быть связано со словом «отрасль» связью «управляет». Таким образом создается семантическая сеть [4].

     Поскольку почти все слова русского языка имеют разные формы, обусловленные падежом и другими грамматическими признаками, в системе ДИАЛКА предусмотрена процедура, позволяющая с высокой
степенью вероятности их распознавать. Это дает возможность строить семантическую сеть, почти не содержащую дублирующие друг друга слова.

    Если система получает задание связать два слова С1 и С2 связью А, то она пытается построить связь в обе стороны. Для этого автоматически проверяется, имеет ли слово А связь под названием «антоним» с каким-либо словом В. Если это так, строятся две связи: С1—>А—>С2 и С2—>В—>С1. Например, если слово «начальник» имеет в базе аитиним «подчиненный», то при построении связи «Иванов начальник Петрова» будет построена связь «Петров подчиненный Иванова». Это ведет к резкому повышению избыточности данных в базе, однако предоставляет возможность получения максимальной информации в каждом узле сети, что важнее для задачи организации диалога.

     Ряд связей может объявляться действующими совместно, т. е. пояснять друг друга. Для любой связи может указываться предельный срок се действия. Если срок не указан, то время действия связи не ограничено. Можно исключать связи, срок действия которых истек.

     Весьма важными являются связи типа «частный случай» и «общий случай», позволяющие подниматься и опускаться по уровням обобщения. Например, если имеется связь «шестерня частный случай детали»,
то при анализе фразы «произведено сто шестерней» можно автоматически определить, что речь идет о деталях. Связи, имеющие особое значение, являются опорными, и реакция на них не определяется БД, а жестко запрограммирована в самой системе. Помимо связей с другими словами, информация о слове содержит ключи всех фраз и текстов, в которые она входит. Это позволяет легко имитировать «осмысленный» диалог без автоматического синтеза фраз.

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

     Описанная структура семантической сети позволяет в ряде случаев с помощью опорных слов строить правильный алгоритм поиска нужной информации.

     Основной целью разработки системы ДИАЛКА было создание, практическая проверка структуры и накопление БД. Объем фраз, хранимый в БД, позволяет системе ДИАЛКА не допускать повторений в
течение девяти диалогов, даже если они умышленно составлены из совершенно одинаковых фраз.

     БД в основном содержит информацию, предназначенную для проведения быстрого грамматического контроля текстов, часто встречающихся в АСУ: организационно-распорядительной, программной, технической документации, табуляграмм, сообщений и пр. Общий объем неоднокоренных слов, имеющихся в БД,— около 6 тыс. Структура системы позволяет расширять ее возможности по морфологическому, синтаксическому и семантическому анализу и синтезу конструкций естественного русского языка.

1. Диалоговые системы в ЛСУ / Под ред. Д. А. Поспелова. — М., 1983.

2. ЭВМ пятого поколения: Концепции, проблемы, перспективы / Под ред. Т. Мато-Ока. — М., 1984.

3. Дж. Мартин. Организация баз данных в вычислительных системах.—М., 1980.

4. В. М. Брябрин. Ф-язык — формализм для представления знаний в интеллектуальной диалоговой системе // Прикладная информатика. Сб. статей. — М., 1981.—С. 73—103.

Поступила в редакцию 25.06.86

Механизация и автоматизация управления, 1987, № 1