Введение к работе
''''' і
„ і Актуальность проблемы
іЦИЙ J Значительное расширение парка эрн в последние годы, проникновение компьютеров, в особенности персональных, практически во все сферы человеческой деятельности остро поставило вопрос о средствах и способе взаимодействия с ЭВН пользователя, не являющегося профессионалок в области вычислительной техники. Наряду с прикладными системами, обладакяцимн развитым специализированным высокоуровневым интерфейсом, существует класс систем, в которых наиболее адекватным средством взаимодействия с пользователем является естественный язык (ЕЯ).
р связи с этим особую актуальность приобретает создание лингвистических процессоров (Л-процессоров), являющихся одним из важнейших компонентов ЕЯ-интерФейса. Я-процессор сложный, иногопараметрический программный комплекс, промьиі-яенная разработка, отладка и сопровождение которого является достаточно трудоемкой задачей. Ее решение практически невозможно без разработки технологии проектирования прикладных Л-процессоров, предназначенных дла различных областей применения, а также создания инструментальных средств поддержки такой технологии.
Цель работы
Целью диссертационной оаботы является разработка и реализация системы технологической поддержи конструирования Л-процессоров. Система включает в себя набор инструментальных средств для построения, отладки и сопровождения Л-процессоров, ориентированных на разные предметные области (ПО) и различные естественные языки.
Научная новизна
Разработана и реализована система (программная Фабрика), предназначенная для производства Л-процессоров, которые могут быть использованы в качестве автономных интерфейсных модулей в различных прикладных системах.
Разработаны продукционные языки, предназначенные для
спецификации этапов работы Л-процессора: лексического анализа, построения дерева разбора, генерации выходлого представления. Эти языки, являясь специаяизировапіагш, вместе с тем могут быть использованы и для других целей, например, для организации логического вывода в простак экспертных системах.
Предложен технологический цикл созд:.л >я Л-проиессора в рамках построенной фабрики. Он включает в себя Формирование словаря, конпоновку Л-процсссора, отладку и отторгение готового продукта.
Создана серия Л-процессоров, предназначенных для различных ПО и имєіссаїх различные выходные языки. Среди низ реляционный язык запросов к базе данных (БД), командный язык управления роботом, входной язык пакета прикладных програми, язык программирования. Сформирована библиотека групп продукционных правил, соответствующих самостоятельным языковым явлениям - такие группы могут быть использованы как строительные блоки при "сборке* лингвистического обеспечения очередного Л-процессора.
Практическая значимость
Фабрика реализована в полном объеме на языке Pascal в операционных системах ССР/Н-вб, KS-DOS, а также UHIX на 32-разрядноя ЭВМ LABTAH 3215. Ее разработка и реализация проводились по программе проекта СТАРТ, выполнявшегося по заказу ГКНТ и Президиума АН СССР (постановление Н 101/46 от 19. 03.65). Система вошла в состав программного обеспечения, разработанного временным научно-техническим коллективом СТАРТ для макета системы "ВАРС", который был принят Межведомственной комиссией.
Фабрика используется в ряде организации, в том числе ВЦ СОАЕ СССР (г.Новосибирск), ИЗиОЦП СОАН СССР (г. Новосибирск). государственной научной Фирме "Интеллектуальная технология".
Для эксплуатации Фабрики не требуется программистской квалификации - в роли конструктора должен выступать специалист в конкретной ПО. Время разработки очередного Л-процессора зависит от сложности ПО и объема словаря: для подготовленного конструктора оно варьируется от одного дня до месяца.
Апробация работн и публикации
Результаты работа докладывались на III всесоюзной конференции "Автонатизация производства систем программирования" (Таллинн, 1906), на Нездународной рабочей конференции по комплексним научным проектам кнп-1 и КНП-г (Сноленипе, 1936), на II Международной конференции AIHSA'86 (Варна, 1986), на Республиканской конференции "Проблемно-ориентиро-ванные диалоговые систены" (Батуми, 19S3), на I Всесоюзной конференции по искусственному интеллекту (Переславль, 1903), на Всесоюзном семинаре "Подели общения-ва" (Паланга, 1983), на семинаре ВЦ СОЛН СССР.
По теие диссертации опубликовано 11 печатных работ.
ооъем работн
Диссертация состоит из 6 глав, введения, заключения, списка литературы, содержащего 77 наименований, и приложения. Общий обЪен работы - 99 страниц текста, включающего б рисунков.
Во введении обосновывается актуальность выполненной работы. Рассматриваются различные подходы, применяемые к построению л-нроцессоров, и выделяется способ анализа текста для некоторой ограниченной По, при которой опора делается на семантику сообщения, а синтаксису отводится вспомогательная роль. Излагаются принципы, положенные в основу данного подхода:
разделение Я-процессора на универсальную и адаптируемую части;
использование семантически-ориентированного анализа;
организация процесса анализа снизу-вверх. Обсуждаются вопросы построения Л-щ>оцессоров, в частности, подчеркивается необходимость создания технологии для массового производства Л-процессоров.
Данная работа является развитием проекта ЗАПСИБ, в рамках которого в лаборатории искусственного интеллекта ВЦ СОЛН
СССР ведутся исследования по созданию Л-процессоров.
В первой главе представлена структура Л-процессора, состоящего из продукционного компонента и словаря. Рассматриваются используемые продукционные языки и описываются продукционные программы, реализующие этапы работы Л-процессора. Кроме того, даются при>е^-ы Л-процессоров, сконструированных с поноиыо фабрики и демонстрирующих разнообразие входных языков и форм выходного представления.
Л-процессор ТЕЛЕ предназначен для обработки запросов к ЕД, содержащей информацию о телепередачах на текущую неделю. В набор атрибутов базы входят: название передачи, жанр, день, номер программы, время начала и выходной текст ответа о передаче. Л-процессор обрабатывает запросы, включающие:
названия передач ("Время", "В субботу вечером");
их жанр ("научно-популярная", "музыкальная");
временные промежутки ("после 1Н часов до 7 вечера", "днем", "со вторника по пятницу", "по будням", "кроне среды");
указания времени, апеллирующие к текущему дню или моменту времени ("сегодня", "два дня назад", "послезавтра", "через два часа").
База данных поддерживается с помощью системы программирования СЕТЛ. Л-процессор генерирует Фрагмент программы на языке программирования СЕТЛ. Этот Фрагмент подключается к телу стандартного модуля, при исполнении которого происходит обращение к базе и выдача ответа.
Примеры обрабатываемых запросов: "Какие спортивные передачи ножно увидеть со вторника по субботу после программы "Время" до первой програмне?", "В какие дни есть дневные музыкальные передачи для детей?".
Следующий пример демонстрирует применение подобных процессоров в САПР, в данном случае Л-процессор использован в качестве интерфейсного модуля в системе НИКРОПРИЗ, разработанной в Институте кибернетики АН ЭССР.
Одна иэ версий этой системы предназначена для автоматизации проектирования редукторних валов. В системе существует специальный модуль НИКРОЭКСПЕРТ, который в диалоговом режиме запрашивает у пользователя значения следующих параметров:
скорость вращения вала, его мощность, нарку стали, из которой вал изготовлен, наличие или отсутствие консольного конца, количество зубчатки колес. После пзода этик параметров запускаются программы, расс-дагывакхцие и рисугядие соответствующий вал.
В систему был добавлен модуль, который вместо обращения к НИКРОЭКСПЕРТУ вызывает Л-процессор, передавая єну задание по конструировании вала, сформулированное в произвольной естественно-языковой Форме. Л-процессор переводит это задание в Формальное представление, которое затек преобразуется к виду, необходимому для дальнейшей работы системы НИКРОПРИЗ. Кроме того, Л-процессор контролирует наличие в запросе гсех необходимых паранетров и в случае неполноты задаїпія выдает соответствующее предупреядеиие. Следующая Фраза сяуяит примером входного задания: "Сконструировать вал, стоящий на двух подшипниках, имеющий скорость вращения Н000 об/кин, мощность 40 Квт. Вал без консольного конца с двумя зубчатыми колесами сделал из стали марки "40Х".
Выходным языком Л-процессора РОБОТ является язык управления экспериментальной системой ROBOT, разработанной в Институте техническоп кибернетики (Братислава). Рассиатриваекая ПО включает в себя:
робота, который по указанию диспетчера иовет перемещать объекты и выдавать информацию о им;
объекты, например: контейнер, сумка, большая (зелезпая или деревянная) коробка, маленькая (черная, белая, зеленая) коробка;- —
места размещения объектов: пункт --выдачи и приема, склад, в котором находятся полки, ящики и свободная площадка;
отношения, связывающие каждый объект с определенным местом, например: "сумка с полки", "коробка, расположенная в ящике".
в естественно-языковом задании-директиве для робота необходимо: а) идентифицировать объект, описание которого состоит либо из адЪективов ("большой", "черный"), либо из указания места ("лежащий на полке", "из ящика"), либо из совокупности этих средств ("большая коробка, которая лежит на
полке*); б) распознать переиекекие, которое нукно произвести ("возьми", "отнеси на площадку", "выдай"), кроне директивы диспетчер иоеєт задавать вопросы о местоположении объектов ("Где стоит контейнер?"), о наличии объекта в указанном месте ("Что лежит па попке?", "Какой предмет ти дерккшь?", "Дершсаь ли ты сумку?"), о характеристик- объекта в указанном место ("Какого цвета коробка, на»;; яцаяся на складе?"). Ниае приводится пример директивы и соответствующего ей представления да объектаон языке:
"Возьми большую иелезную коробку, левадую на полке!" Ar(epbvt :ua(ep>vl, eu2) )&n.(epbvi) !
Типовой Л-процессор представляет собой совокупность продукционных модулей (см. рис. 1) и словарь.
ЕЯ-тсксг
Рис. і
В результате последовательной работы этих модулей вход-пая фраза преобразуется к некоторому Формальному виду. Обеспечение совместимости входных и выходных данных различных продукционных модулей достигается за счет введения понятия "компонента" как универсального объекта всех используемых продукционных языков.
Компонент представляет собой структуру с поименованными поляни - характеристиками. Каждону компоненту приписан неко-
торый тіш, определяющий конкретный набор характеристик. Характеристики используются для храпения семантических признаков компонента, для организации процесса обработки входного текста и, кроме того, для Формирования Фрагментов генерируемого формального представления. Работа продукционных кодулея состоит в преобразовании множества компонентов: порождении новых компонентов it удалении существующих, анализе значений характеристик и их модификации.
номенклатура компонентов и иг структура зависит от области применения Л-пропессора и его сложности. В то же время существует базовый набор компонентов, используемый независимо от ПО для обработки регулярных конструкций естественного языка.
Продукционные модули соответствуют определенным этапан обработки входной Фразы:
лексическому анализу,
основному анализу,
генерации.
Приведенный список этапов не является неизменным - их количество может варьироваться в зависимости от ПО и от сложности конструируемого процессора. Например, после лексического анализа может быть включен этап сборки словокомпдек-сов.
На этапе лексического анализа выполняется преобразование последовательности лексем входной Фразы в цепочку компонентов. Продукционное правило задает нножества символов правого и левого контекста, а также множество символов, из которого формируется лексема. В зависимости от класса лексемы порождаемому компоненту приписывается соответствующий тип, указываемый в правой части правила.
Сборка словокомплексов, в отличие от других этапов, реализуется фиксированным модулем, не включающим настройку с помощью правил. Информация о принадлежности некоторого слова словокомплексу, а также о семантических характеристиках самого словоконплекса находится в словаре. На этом этапе последовательность компонентов, содержащих лексемы, которые составляют словокомплекс, заменяется соответствующим компонентом из словаря.
На этапе основного ьпаяиза клао«ляется построение (сии-зу-взерз) дерева разбора. Каждое продукционное правило программ прїжсшзіо к некоторой подцепочке, которая и случае исполнения правила уваляется, а на ее несто подставляется компонента, указавшие в прасой части np^,.:uia. Кроне такого "линейного" преобразования с понсцью снег,.-.» яыюй конструкции языка строится древесная струїггура. Этап основного анализа заканчивается, когда щепочка компонентов сворачивается в один компонент, являеднася корней дерева.
При генерации заполняется "свертка" дерева от листьев к корн». Для некоторой першам дерева, все сыновья которой является листьями, отыскивается правіше, п результате применения которого листья оторасьшаются, а оставшоїся узел наследует некоторую информацию, хранившуюся в отброшеннкзе вершинах. При этом Формируются фрагменты результирующего Формального представления. Генерация заканчивается, когда все дерево "свернулось" е одну верншзу. одна из строковых ааракте-ристик этой вершины содержит выгодной текст, который и является результатом работы л-прояеесора.
Выделение генерации в самостоятельный этап обеспечивает необходимую гибкость в настроЯке Л-процессора на конкретный синтаксис выходного языка. Для одного и того ке дерева разбора с помоцью замены правіш генерации ногут быть получены разнообразные Формальные представления исходного текста.
Для продукционных программ Оолыаое значение имеет порядок работы правил. Выбор конкретной дисциплины их применения определяется характером процессов, описываемых с помощью продукционных программ, а такхе соображениями эффективности, .выделяется поименованная структурная единица программы -группа правил, с точки зрения лингвиста, группы соответствуют самостоятельным языковым явлениям, с точки зрения программиста - поддераивают модульность продукционных программ. Существует двухуровневый порядок применения правил: последовательность исполнения на уровне групп и определенная дисциплина внутри группы (используется схема выбора правил в нормальных алгоритмах Маркова).
Во второй главе описываются возможности Фабрики «-процессоров. Приводится технологический цикл кон-
струигоиапия л-процессора, состоящий из следующая этапов: ;.ор»птрспаіпія словаря, написания правил продукционного компонента, отладки и отторяения готового продукта. Все этапн эф-їектктшо поддерживаются средствами Фабрики.
фабрика, представленная па рис. г, состоит на следукпиз частеЯ: продукционной поде истеки, словарной подсистезш, пед-систеки отладки я монитора.
— МОНИТОР
к>
рис. г
Продукционная подсистема, обеспечивающая работу с несколькими продукционными языками, включает в себя экранных редактор для Формирования продукционных программ, а такие компиляторы, переводящие эта программы во фрагменты па языке Pascal.
Словарная подсистема предназначена для создания и редактирования словаря. Элемент словаря представляет собой тройку: основу, ключ, словарную статью. Структура словарной статьи полностью совпадает со структурой компонента, фактически словарная статья - это компонент некоторого типа с определенными значениями характеристик.
Ключ - это пара целых чисел, указывающих минимальное и максимальное количество букв, которое может присоединять
данная основа. Такое представление позволяет компактно хранить больпое количество словоформ. В то же время для ограниченной по указанный способ разбиения слова не вызывает коллизий и в подавляющем большинстве случаев позволяет однозначно распознать лексему, не прибегая к традиционному морфологическому анализу.
Подсистема отладки включает в себя банк тестов и набор инструментальных отладочных средств. Банк тестов служит для отладки Л-процессора и демонстрации его работоспособности. Тесты должны, с одной стороны, хорошо представлять все возможные сочетания смыслов и их естественно-языковые способы реализации, с другой стороны, проверять не только каждую группу правил, но и как можно больше комбинаций правил. Во время тестирования Л-процессора конструктор может использовать различные отладочные режимы. Эти режимы позволяют отслеживать процесс обработки Фразы (с разной степенью детальности), сохранять результат запуска теста, распечатывать разнообразную отладочную информацию.
Нонитор поддерживает взаимодействие с конструктором по принципу иерархических "меню", обеспечивает связь различных компонентов фабрики, вызывает компиляторы для продукционных программ, инициирует формирование Л-процессора, управляет запуском тестов.
Для удобства конструирования введено понятие версии. Версия представляет собой сочетание определенного набора продукционных правил, некоторого банка тестов и конкретного наполнения словаря. Каждая версия имеет идентифицирующее имя, указав которое, конструктор не заботится о реальных именах Физических Файлов, а оперирует содержательными терминами: "словарь", "правила лексического анализа" и т. п. При проведении экспериментов конструктор располагает возможностью порождать новые версии, перекачивая в них информацию из уже существующих версий и/или вводя ее заново. Версии могут Формироваться для различных Л-процессоров или отражать разные стадии конструирования одного Л-процессора.
Когда результаты тестирования позволяют убедиться, что построенный Л-процессор удовлетворяет предъявляемым требованиям, конструктор вызывает директиву, обеспечивающую оттор-
жение Л-процессора. На основе соответствующей версии Формируется л-процессор, который уже не содержит специальных средств для обеспечения работы а отладочных режимах, что делает его более компактным и эффективным. Этот Л-процессор, состоящий из продукционных модулей и словаря, и является конечным результатом работы конструктора.
В третьей главе на примере конкретного Л-процессора, обрабатывавшего запросы х реляционной базе данных, описываются основные паги и приемы конструирования. Вводится содеряательная трактовка компонентов и продукционных правил, показглзаются подходы к обработке различных языковых конструкций.
Обсуждаются вопросы составления словаря, рассматривается структура словарной статьи, приводятся примеры формирования словокомплексо"в.
В состав продукционной подсистемы Фабрики входит Библиотека правил, которая содержит группы правил, предназначенные для обработки как регулярных естественно-языковых конструкция, так и уникальных, нестандартных явлений языка. Первые, так называемые "базовые" группы (они насчитывают 90-12О правил), включаются в каждый Л-процессор, вторые - "специальные" - используются при построении нового Л-процессора по мере необходимости.
В четвертой главе описывается специализированный вариант фабрики, предназначенный для автоматизированного построения ЕЯ-интерфейса с СУБД Построение такого интерфейса к конкретной БД включает в себя следующие шаги: создание спецификации БД; настройку продукционного компонента Л-процессора; формирование словаря. В спецификации фиксируется список Файлов, составляющих БД, связи нежду их атрибутами, а также - прагматика некоторых атрибутов. Существуют универсальный "каркас" продукционного коипо- иента вместе со специализированной библиотекой групп правіш, а также универсальный словарь, которые используются в качестве "заготовок* при построении конкретного Л-процессора. "Каркас" включает в себя правіша в обобщенном виде без привязки к конкретным атрибутам. В результате настройки тексты продукционных програми модифицируются таким образом, что в условия правил добавляются указания на атрибуты, для которых эти правила применимы. Универсальный словарь содержит общеунотребимую лексику (отношения, отрицания, незначимые слова) и выступает в качестве начального наполнения словаря конструируемого Л-процессора. При этом некоторые словарные статьи (например, для слов, относящихся к Фиксированный семантическим гнездам: дата, стоимость, вес) являются параметрическими и конкретизируются на основе спецификации. В результате автоматической "прокачки" базы данных и анализа ее содержимого выполняются следующие действия. Во-первых, уточняется спецификация БД, возможно, с привлечением дополнительного опроса конструктора. Во-вторых Формируются продукционные правила, отражающие специфику данной БД. Автоматически сгенерированные правила внесте с группами правил, выбираемыми из библиотеки на основе содержимого спецификации, добавляются к "каркасу", таким образом продукционный компонент настраивается на данную ПО. в-третьих, программа автоматического пополнения словаря обнаруживает среди значений атрибутов слова и помещает их в словарь с соответствующими словарными статьями, разбивая при этом на основы и Флексии (поскольку разбиение может быть неточным, предусмотрен режим ручной коррекции). После этого конструктор приступает к ручной доводке словаря и тестированию. При пополнении словаря конструктору предоставляется возможность ввода названий атрибутов, незначимых слов, сло-вокомплексов, а также синонимов к словам, уже находящимся в словаре. Составляется список тестов для проверки корректности настройки продукционного компонента и полноты словаря. Тестирование выполняется в автономном режиме, в качестве ре- зультата обработки теста пользователю предъявляется текст на специальном промежуточном языке. Этот язык, будучи существенно более высокого уровня, чем язык запросов dBASE, легко позволяет оценить правильность результата. Для обработки ЕЯ-запросов к БД под управлением 4BASE запускается построенный Л-процессор, генерирующий программу на языке 4BASE. Далее СУБД исполняет эту програнму и выдает желаемый ответ. В пятой главе обсуждаются возможности использования средств Фабрики при создании экспертных систем. При этом рассматриваются несколько точек приложения. Наиболее очевидная - обеспечение естественно-языкового интерфейса к экспертной систене. Имеется в виду не только возможность Формулирования запроса к экспертной системе на естественном языке с использованием соответствующего Л-про-цессора, но и выдача ответа и объяснений в естественно-языковой Форме (в этон случае решается задача синтеза текста). Кроме того, Л-процессор может быть использован для ввода экспертных знаний на естественном языке. Результатом его работы являются продукционные правила, составляющие "начинку" экспертной систены. Наконец, продукционные правила сами когут быть носителями экспертных знания, и в этом случае продукдионные модули Л-процессора служат для организации логического вывода. Если эти правила пополнить правилами, обеспечивающими распознавание текстов на естественном языке, то полученный Л-процессор решает две задачи: преобразует входной текст в некоторое внутреннее представление, а затем обрабатывает его на основе своих экспертных знаний. Описывается реализация макета экспертной системы, с помощью которой решается задача диагностики отклонений от нормального технологического процесса, происходящего при плавке чугуна в доменной печи. В шестой главе даны технические характеристики Фабрики и Л~процессоров, а такяе затронуты некоторые черты реализации. Существование продукционных модулей в виде текстов программ на языке Pascal, локализация машинной зависимости, а также кесткие ограничения, накладываемые на выбор употребляемые конструкций языка позволяют использовать Фабрику в качестве кросс-систены: эти тексты переносятся на другую иа-шиву, имеющую Pascal-компилятор, и на ней генерируется работающий Л-цроцессор. Словарь представляет собой набор файлов давши, созданных операторами ввода/вывода языка Pascal. В ряде случаев эти Файлы оказываются совместимыми для различных ОС, как, например, для ССР/Н-вб и HS-DOS, в других - при переносе может потребоваться некоторая регулярная перекодировка. Работа со словарей организована по принципу виртуальной памяти. Буфер словаря - это пространство оперативной памяти размером в несколько блоков словаря, выделенное для доступа к словарной инфорнации. количество памяти, занимаемой Л-процессорои во время работы, зависит от количества продукционных правил и от размера буфера словаря (увеличивая его, мы уменьшаем количество обменов, что значительно сказывается на быстродействии Л-процессора). Существующая архитектура системы рассчитана на л-процессоры, содераащие несколько сотен правил, со словарями в несколько тысяч слов. ОбЪен исходных текстов составляет 38 000 строк на языке Pascal. Для работы Фабрики необходимо 320 Кбайт оперативной памяти. Л-процессор требует от 160 Кбайт и выше в зависимости от количества правил. Быстродействие Л-процессора с 200 правилами и словарем в тысячу слов, работающего на IBH PC AT, - 1 секунда яа 3 слова входной фразы. 3 заключении сформулированы основные результаты, полученные в диссертации.Похожие диссертации на Программная система конструирования лингвистических процессоров