Источник: Естественно-языковые системы: курс лекций. – Улан-Удэ: Изд-во ВСГТУ, 2006. – 92 с.: илл. http://window.edu.ru/library/...

РАЗДЕЛ I. ОСОБЕННОСТИ РЕАЛИЗАЦИИ ЕСТЕСТВЕННО-ЯЗЫКОВЫХ СИСТЕМ
Лекция 1. Архитектура естественно-языковых систем
Прежде чем приступить к рассмотрению архитектуры ЕЯ-систем, остановимся на
определении некоторых исходных понятий, которые будут широко использоваться далее.
Общение - коммуникативное взаимодействие.
Диалог - процесс достижения его участниками определенных согласованных целей
путем обмена связанными высказываниями, выраженными в языке, о некотором реальном
или гипотетическом мире (проблемной области).
Говоря об общении человека с компьютером, обычно считают, что цель компьютера
состоит в том, чтобы способствовать достижению целей пользователя, которые
определяются его информационными потребностями. Поэтому применительно к диалогу
между пользователем и компьютером под общением понимают процесс обмена
взаимосвязанными высказываниями, выраженными в языке, направленный на достижение
целей пользователя, т.е. на удовлетворение информационных потребностей пользователя
(ИПП).
В общем случае процесс общения не может быть сведен к обмену изолированными
парами высказываний «вопрос-ответ». Высказывания участников общения образуют связный
текст - дискурс, имеющий, как правило, достаточно сложную структуру. Связность дискурса
обеспечивается как лингвистическими (родовидовыми, анафорическими, модальными,
стилистическими согласованиями, согласованиями пресуппозиций и т.п.), так и
экстралингвистическими (ситуативными) средствами, т. е. с помощью временных, причинно-
следственных и других связей, существующих в проблемной области.
Следует подчеркнуть, что разговорный ЕЯ гораздо более компактен, чем
литературный, «письменный» язык, так как при общении широко используются
разнообразные умолчания (эллипсисы, анафоры, пресуппозиции и др.), восстанавливаемые
(раскрываемые) участниками исходя из текущих целей диалога. Если участники достигли
цели, поставленной в начале общения, то говорят, что общение завершилось успехом
(глобальным успехом), в противном случае - неудачей (глобальной неудачей). В процессе
общения могут возникать различные локальные неудачи, вызванные, например,
неправильностью (нарушением грамматических норм) высказываний участников,
непониманием друг друга из-за различных представлений о теме диалога или о проблемной
области на языке общения и т.п. Большая часть локальных неудач не приводит к глобальной
неудаче, которые преодолеваются участниками общения гибкой (в ходе диалога)
корректировкой текущих целей.
Цели, преследуемые участниками общения, определяют структуру диалога, которая
может рассматриваться на трех уровнях:
глобальном;
тематическом;
локальном.
На глобальном уровне определяются общие свойства решаемых пользователями задач.
На тематическом уровне структура диалога зависит от конкретных особенностей решаемой
задачи - от алгоритма ее решения (разбиения задач на подзадачи) и распределения ролей
(активная или пассивная роль) между участниками общения при решении отдельных
подзадач. На локальном уровне рассматриваются отдельные шаги диалога, образуемые
взаимосвязанными высказываниями его участников.
Шаг диалога трактуется как пара «действие-реакция», где высказывание активного (т.е.
владеющего инициативой) участника соответствует действию, а пассивного - реакции.
Основными параметрами структуры диалога на этом уровне являются:
инициатор шага и вид инициирования (вид действия);
способ влияния действия на реакцию;
способ спецификации задачи (подзадачи), решаемой на данном шаге.
Действие и реакция, образующие шаг диалога, могут в общем случае не
соответствовать соседним (во временной последовательности) высказываниям участников.
Соответствие нарушается при перехватах инициативы. Перехват инициативы возникает в
тех случаях, когда пассивный участник вместо цели (подцели), предложенной активным
участником, выбирает иные цели (подцели), в частности, подцели, предусматривающие
преодоление локальных неудач. Например, вместо ответа на вопрос (что соответствовало бы
стандартной реакции) второй участник может задать встречный вопрос (т. е. совершить
действие и тем самым взять на себя активную роль) и лишь после получения ответа на него,
ответить на первоначально заданный вопрос (и тем самым вернуть инициативу). Таким
образом, перехват инициативы как бы разрывает первоначально инициированный шаг
диалога и открывает поддиалог - происходит смена цели (темы) диалога, в котором
инициативой владеет ранее пассивный участник.
Переходя к рассмотрению человеко-машинного общения, подчеркнем, что согласно
современным представлениям, взаимодействие конечных пользователей с компьютером
происходит на всех стадиях существования человеко-машинной системы, т. е. на стадиях
использования, разработки и развития приложений. Традиционные средства общения,
которые вплоть до настоящего времени широко применяются на практике, ориентированы,
как правило, либо только на использование заранее разработанных и неизменяемых
приложений, либо на использование, разработку и развитие. В первом случае процесс
взаимодействия сводится к трем этапам:
определение параметров работы системы (вход в систему):
определение решаемой задачи и исходных данных;
получение результатов решения задачи.
Такой процесс принципиально не может удовлетворить пользователей с изменяющейся
информационной потребностью, не знающих способа представления и использования в
системе информации, которой обмениваются участники общения.
Во втором случае взаимодействие осуществляется с помощью процедурного языка
программирования, что не удовлетворяет большинство конечных пользователей, обычно не
умеющих (и не желающих) программировать.
Низкая эффективность, а часто неприемлемость традиционных средств общения в
большинстве случаев вызвана тем, что в них не учитываются важнейшие особенности
процесса общения, направленного на удовлетворение реальных информационных
потребностей пользователя (ИПП). Эти особенности, независимо от специфики решаемых
пользователями задач, сводятся к следующим:
1. Изменяемость. Информационная потребность пользователя не может быть заранее
четко определена в спецификациях на разработку системы общения, напротив, ИПП
неизбежно изменяется в ходе разработки и эксплуатации системы.
2. Несовпадение взглядов на мир. Представления, имеющиеся у пользователя и системы
о языке общения и проблемной области, относительно которой ведется общение, могут не
совпадать. Исходя из этого, процесс общения должен предусматривать разъяснение смысла
неизвестных терминов, обнаружение и устранение несовпадающих представлений, а также
предупреждение ошибочных толкований, т.е. установление общих точек зрения на
обсуждаемые в процессе общения сущности.
3. Связность общения. Процесс общения не может быть ограничен обменом
изолированными парами «вопрос-ответ», так как в большинстве реальных случаев ИПП не
может быть выражена в виде одного вопроса (предложения). Часто требуется определить
ситуацию, в которой возникла ИПП, т.е. предпослать запросу на решение некоторой задачи
контекст, в котором эту задачу необходимо решать. Кроме того, процесс удовлетворения
ИПП - решение некоторой задачи, в большинстве реальных приложений требует
взаимодействия, основанного на смешанной инициативе участников. Поэтому процесс
общения должен иметь сложную, разветвленную структуру и состоять из обмена связанными
высказываниями.
4. «Неправильность» высказываний пользователя. Для выражения ИПП пользователь
может применить как «правильные» предложения, т.е. такие, которые будут однозначно
поняты и верно обработаны системой, так и «неправильные». Неправильности могут быть
вызваны, во-первых, тем, что пользователь обычно не в состоянии учесть все ограничения
системы общения в части ее возможностей и знаний, во-вторых, использованием умолчаний,
характерных для естественного общения и допускающих неоднозначное толкование
высказываний, и, в-третьих, отклонением предложений от грамматической нормы.
Недостатки традиционных средств общения потребовали создания средств нового
поколения, которые должны быть способны настраиваться на ИПП и адаптироваться к их
изменению, представлять и объяснять свою точку зрения на проблемную область, а также
учитывать точку зрения пользователя, поддерживать связный диалог и уметь обрабатывать
«неправильные» высказывания. Разработка этих средств ведется в настоящее время по двум
основным направлениям. Первое направление, развиваемое преимущественно специалистами
по системам обработки данных, заключается в повышении уровня и увеличении
непроцедурности формализованных языков общения. Типичными представителями таких
языков являются, например, APL, NOMAD, MAPPER. Второе направление развивается в
рамках искусственного интеллекта и предполагает использование конечными
пользователями для взаимодействия с компьютером естественного языка, семантически и
прагматически ограниченного проблемной областью, относительно которой ведется
общение. Рассматриваемые далее ЕЯ-системы разработаны в рамках второго направления.
Традиционные средства общения не позволяют обеспечить взаимодействие конечных
пользователей с компьютером. Чтобы быть полноправным участником общения, ЕЯ-система
должна выполнять некоторые обязательные функции. К этим функциям относятся:
ведение диалога - определение его структуры и ранга роли, которую система и
пользователь выполняют на текущем шаге диалога;
понимание - преобразование поступающих от пользователя высказываний на
естественном языке в высказывания на языке внутреннего представления;
обработка высказываний - формирование или определение заданий на решение
задач или подзадач на данном шаге диалога;
генерация - формирование выходных высказываний на ЕЯ.
Приведенные функции имеют обобщенный характер. Поэтому необходимо
подчеркнуть, что при реализации конкретных ЕЯ-систем суть этих функций может в
значительной степени варьироваться. В соответствии с выделенными функциями
обобщенная схема ЕЯ-системы (рис.1) может быть представлена в виде трех компонентов:
диалоговый; компонент понимания высказываний; компонент генерации высказываний.
Рис. 1. Обобщенная схема ЕЯ-системы
Диалоговый компонент
К основным задачам диалогового компонента относятся:
ведение диалога;
формирование или обработка перехватов инициативы.
Ведение диалога состоит в том, чтобы обеспечивать целесообразные (т.е.
способствующие достижению конечных целей пользователя) действия системы на текущем
шаге диалога. В связи с тем, что возможности существующих ЕЯ-систем не позволяют им
самостоятельно формировать целесообразное поведение, в систему обычно вводится
КОМПОНЕНТ ПОНИМАНИЯ
ВЫСКАЗЫВАНИЙ
ДИАЛОГОВЫЙ КОМПОНЕНТ
Ведение
диалога
Формирование
или обработка
перехватов
инициативы
КОМПОНЕНТ ГЕНЕРАЦИИ
ВЫСКАЗЫВАНИЙ
Генерация
смысла
высказываний
Синтез
высказываний
Анализ
высказываний
Интерпретация
высказываний
информация, определяющая общую и тематическую структуру диалога. По структуре и
текущему состоянию диалога диалоговый компонент формирует (если инициатива
принадлежит системе) или определяет (если инициатива принадлежит пользователю)
задание, выполняемое системой на текущем шаге (например, генерация вопроса, понимание
ответа и его обработка, генерация утверждения и т. п.).
Ведение диалога выполняется по одной из двух схем:
диалог ведет пользователь;
диалог ведет система.
В первом случае инициатива в основном (за исключением сообщений об ошибках)
находится у пользователя, а система только реагирует на его тре6ования, определяя по виду
требования тип задания. Разбиение задачи на подзадачи и распределение ролей осуществляет
пользователь, т.е. для системы весь диалог сводится к выработке реакции на текущие
высказывания пользователя.
Можно сказать, что в этом варианте работы функции диалогового компонента
практически вырождены. Во втором случае инициатива в основном принадлежит системе.
Система ведет диалог в соответствии с имеющимися у нее представлениями о структуре
диалога (т.е. о разбиении задач на подзадачи и о том, кто из участников, когда и какую
подзадачу решает) и о способе обмена высказываниями. Если роли участников неизменны,
однозначны и предопределены заранее, то структуру диалога называют жесткой. В
простейшем случае такая структура диалога сводится к двум взаимосвязанным
высказываниям участников (вопрос-ответ) с указанием участника, владеющего инициативой.
Развитием жесткой структуры является альтернативная структура, которая задает
множество возможных (но заранее предписанных) направлений течения диалога. Выбор
одного из возможных направлений осуществляет пассивный участник. Если роли участников
общения распределяются в ходе общения, то структуру диалога называют гибкой. Гибкие
структуры подразделяются по степени свободы выбора момента перехвата
(предопределенные моменты, произвольные моменты) и по способу перехвата
(предопределенный способ перехвата, произвольный способ).
Вторая задача диалогового компонента вызвана тем, что реакции одного участника
могут не соответствовать ожиданиям другого. В зависимости от того, кто осуществляет
перехват инициативы, система либо формирует перехват, либо обрабатывает его.
Формирование происходит в тех случаях, когда система определяет, что текущая ситуация
не соответствует ситуации, предусмотренной структурой диалога. Если же перехват
инициативы осуществляет пользователь, то задача системы - обработать его, т. е. распознать
наличие перехвата инициативы, определить новую тему (цель), на которую перешел
пользователь, и перейти на структуру диалога, соответствующую новой теме.
Компонент понимания высказываний
Компонент понимания высказываний предназначен для выделения смысла входного
высказывания и выражения этого смысла на внутреннем языке системы. Под смыслом
высказывания обычно понимается вся та семантика - прагматическая информация, которую
пользователь хотел передать системе. Внутреннее представление смысла должно содержать,
по крайней мере, следующую информацию:
сущности проблемной области, вовлекаемые в зону рассмотрения данным
высказыванием;
свойства и отношения, приписанные этим сущностям;
коммуникативные измерения говорящего, выраженные в данном высказывании.
Выявление смысла высказывания в общем случае требует его рассмотрения в контексте
всего диалога.
Традиционно задача понимания высказываний подразделяется на два этапа: анализ и
интерпретацию. На этапе анализа выделяются описания сущностей, упомянутых во
входном высказывании, выявляются свойства этих сущностей и отношения между ними.
Диалог обычно выполняется отдельным блоком-анализатором, служащим ядром компонента
понимания. Анализаторы, разрабатываемые для ЕЯ-систем, различаются по ряду параметров
(табл. 1):
тип анализируемых предложений;
выделяемые описания сущностей;
глубина проникновения в смысл;
используемые для анализа средства.
Таблица 1
Общая характеристика анализаторов ЕЯ- систем
Параметр
Возможные значения
Типы анализируемых предложений
Повествовательные, вопросительные,
отрицательные, полные, неполные, простые,
сложные, распространенные, нераспространенные
и др.
Понятия
Конкретные (индивидуальные), абстрактные,
метапонятия
Предикаты
Вспомогательные, предикаты-состояния,
предикаты-действия, функциональные и др.
Кванторы
Отсутствие кванторов, кванторы существования
всеобщности, кванторы отрицания
Модальности
Отсутствие модальностей, объективная и
субъективная модальности
Выделяемые
описания
сущностей
Пресуппозиции
Отсутствие пресуппозиций, экзистенциональные,
семантические, прагматические
Глубина проникновения в смысл
Множество ключевых слов, имя события и
описания участников события (их роли и
характеристики), сценарий с отсылками к
связанным подсценариям, пространственно-
временное или причинное представление ситуации
Используемые средства
Морфологический, синтаксический,
семантический, прагматический или проблемный
анализ
При рассмотрении таблицы 1 следует учитывать, что тот или иной параметр в случае
конкретного анализатора может принимать одно или несколько из указанных в таблице
значений.
Интерпретация заключается в отображении входного высказывания на знания системы.
Основными задачами данного этапа являются:
буквальная интерпретация высказывания в контексте диалога;
интерпретация высказывания на намерения говорящего.
Буквальная интерпретация состоит в том, чтобы, учитывая контекст диалога,
идентифицировать образы тех сущностей области интерпретации, которые имел в виду
говорящий. В качестве области интерпретации могут использоваться:
проблемная область;
область языка общения (если высказывание пользователя касается языка
общения);
область системы (если пользователь интересуется возможностями и состояниями
системы. Интерпретация на эту область особенно важна при возникновении
«непонимания» между пользователем и системой);
область пользователя (если высказывание содержит сведения о знаниях или
намерениях пользователя);
область дискурса (если в высказывании содержатся ссылки на предыдущие или
последующие высказывания).
Вторая задача интерпретации состоит в том, чтобы, применяя имеющиеся у системы
методы вывода, определить, как обрабатываемое высказывание соотносится с целями и
планами участников общения. Строго говоря, данная задача решается совместно диалоговым
компонентом и компонентом понимания высказываний. Как отмечалось, одной из функций
диалогового компонента является определение отношения входного высказывания к
текущей цели. При выполнении этой функции текущая цель (т.е. ее описание в форме
внутреннего представления) передается компоненту понимания, который пытается
интерпретировать на нее входное высказывание. Решение данной задачи в общем случае
представляет собой чрезвычайно сложную проблему. Положение усугубляется тем, что одно
и то же высказывание может использоваться для достижения целей, относящихся к
различным областям.
Компонент генерации высказываний
Компонент генерации высказываний решает в соответствии с результатами,
полученными остальными компонентами системы, две основные задачи: генерация смысла,
т. е. определение типа и смысла выходного высказывания системы во внутреннем
представлении, и синтез высказывания, т.е. преобразование смысла в высказывание на
естественном языке.
Первая из указанных задач является сложной и мало изученной. Тип высказывания
зависит от состояния системы и результатов, полученных предыдущими компонентами. Так,
если система должна генерировать ответ на вопрос, то необходимо определить по состоянию
системы, будет ли ответ прямой или косвенный. Прямой ответ (т. е. по существу заданного
вопроса) может быть дан только в том случае, если обработка вопроса завершилась успешно.
Если в процессе обработки вопроса возникают какие-то затруднения, то более уместным
может быть косвенный ответ, раскрывающий суть возникших затруднений и объясняющий
невозможность прямого ответа.
В общем случае при решении задачи формирования смысла выходного высказывания
необходимо учитывать прагматический аспект, т. е. цели участников общения. Однако в
большинстве существующих систем данная задача решается с помощью достаточно простых
подходов. В промышленных системах общения генерация смысла обычно заключается в
редактировании значений атрибутов и (или) выборе шаблона ответа. В экспериментальных
системах для выражения смысла генерируется полное семантическое представление,
включающее одно или несколько связанных событий (понятий) с одним или несколькими
исполнителями на каждую роль.
Вторая задача компонента генерации высказываний состоит в синтезе естественно-
языкового выражения, соответствующего внутреннему представлению выходного
высказывания. Данная задача подразделяется на этапы семантического, синтаксического и
морфологического синтеза. Сложность задачи синтеза определяется требованиями к
естественности и выразительной мощности выходных высказываний. Под естественностью
обычно понимается степень близости к естественному языку, т.е. наличие таких свойств, как
синонимия и омонимия слов и словосочетаний, свободный порядок слов и др. Под
выразительной мощностью понимается возможность выразить разнообразные понятия,
отношения, кванторы, процедуры и т.п. Естественность и выразительность выходных
высказываний в существующих системах могут быть различными. Например, высказывания
могут фактически не синтезироваться, а выбираться из заранее подготовленного списка,
либо имеется шаблон ответа, в который подставляются некоторые слова, представляющие
собой значения искомых атрибутов, при этом может использоваться морфологический
синтез. Большая естественность достигается, если выходное высказывание формируется из
семантического представления события (или понятия) с применением морфологии,
синтаксиса (для определения порядка и формы слов) и семантики (для выбора лексем и
обеспечения семантической сочетаемости слов в синтезируемом высказывании).
Знания ЕЯ-систем
Для понимания принципов построения ЕЯ-систем важен также вопрос об
используемых в системе знаниях, поскольку именно знания, представленные в различных
формах, являются той базой, на которой осуществляется решение рассмотренных выше
задач.
Знания ЕЯ-систем можно классифицировать по различным основаниям. Будем
придерживаться классификации, представленной на рисунке 2. На верхнем уровне
выделяются:
собственно знания;
способ представления знаний.
Собственно знания классифицируются по областям и по видам знаний. Наиболее
существенными с точки зрения процесса ЕЯ-общения являются следующие области знаний:
проблемная область;
область языка;
область системы;
область пользователя;
область диалога (дискурса).
Разнообразие областей определяет множество возможных интерпретаций входных
высказываний. К основным видам знаний относятся факты (фактические знания) и
реляционные знания. Факты представляют собой возможные знания о сущностях,
составляющих некоторую область знаний. Операционные знания составляет информация о
способах изменения фактических знаний. Иначе говоря, эти знания задают процедуры
преобразования. Часто для обозначения этих знаний используется термин «процедурные
знания», однако следует иметь в виду, что операционные знания могут быть представлены
как в процедурной, так и в декларативной форме.
Способ представления знаний включает два аспекта: способ организации знании и
модель представления. Способы организации знаний различаются по уровням представления
и уровням детальности. По уровням представления выделяют знания нулевого уровня
(конкретные и абстрактные знания) и знания более высоких уровней (метазнания). Первый
уровень составляют знания о том, как в системе представлены знания нулевого уровня.
Число уровней представления может быть продолжено. Разделение знаний по уровням
представления обеспечивает возможность гибкой настройки и адаптации ЕЯ-системы.
Организация знаний по уровням детальности позволяет рассматривать знания с
различной степенью подробности. Количество уровней детальности зависит от специфики
решаемых задач, количества знаний и способа их представления. Обычно выделяется не
менее трех уровней, отражающих общую организацию знаний, логическую и физическую
организацию частных структур знаний. Введение нескольких уровней детальности
обеспечивает дополнительную гибкость системы, так как изолирует изменения одного
уровня от других.
Модели представления знаний обычно подразделяются на логические и эвристические,
на декларативные и процедурные.
Декларативная модель основывается на предположении, что проблема представления
некоей предметной области решается независимо от того, как эти знания потом будут
использоваться. Поэтому модель как бы состоит из двух частей: статических описательных
структур знаний и механизма вывода, оперирующего этими структурами и практически
независимого от их содержательного наполнения. При этом в какой-то степени оказываются
раздельными синтаксические и семантические аспекты знания, что является определенным
достоинством указанных форм представления из-за возможности достижения их
определенной универсальности.
Рис.2. Классификация знаний ЕЯ-систем
В декларативных моделях не содержатся в явном виде описания выполняемых
процедур. Эти модели представляют собой обычно множество утверждений. Предметная
область представляется в виде синтаксического описания ее состояния (по возможности
полного). Вывод решений основывается в основном на процедурах поиска в пространстве
состояний.
В процедурном представлении знания содержатся в процедурах - небольших
программках, которые определяют, как выполнять специфичные действия (как поступать в
специфичных ситуациях). При этом можно не описывать все возможные состояния среды
или объекта для реализации вывода. Достаточно хранить некоторые начальные состояния и
процедуры, генерирующие необходимые описания ситуаций и действий.
Семантика непосредственно заложена в описание элементов базы знаний, за счет чего
повышается эффективность поиска решений. Статическая база знаний мала по сравнению с
процедурной частью. Она содержит так называемые "утверждения", которые приемлемы в
данный момент, но могут быть изменены или удалены в любой момент. Общие знания и
правила вывода представлены в виде специальных целенаправленных процедур,
ЗНАНИЯ
Собственно знания
Способ представления знаний
Организация знаний
Модель представления
Область знаний
Проблемная
область
Область языка
Область системы
Область
пользователя
Область диалога
Факты
Виды знаний
Операционные
значения
Логические
Исчисление
предикатов
Реляционные
Псевдофизические
логики
Уровни
представления
Знания нулевого
уровня
Метазнания
Знания первого
уровня
Знания высших
уровней
Уровни
детальности
Общая
организация
Логическая
организация
Физическая
организация
Эвристические
Сетевые
Фреймовые
Продукционные
активизирующихся по мере надобности. Процедуры могут активизировать друг друга, их
выполнение может прерываться, а затем возобновляться. Возможно использование процедур
- "демонов", активизирующихся при выполнении операций введения, изменения или
удаления данных.
Средством повышения эффективности генерации вывода в процедурных моделях
является добавление в систему знаний о применении, т.е. знаний о том, каким образом
использовать накопленные знания для решения конкретной задачи. Эти знания, как правило,
тоже представляются в процедурной форме.
Главное преимущество процедурных моделей представления знаний заключается в
большей эффективности механизмов вывода за счет введения дополнительных знаний о
применении, что, однако, снижает их общность. Другое важное преимущество заключено в
выразительной силе. Эти системы способны смоделировать практически любую модель
представления знаний. Выразительная сила процедурных систем проявляется в расширенной
системе выводов, реализуемых в них. Большинство расширенных форм выводов может быть
охарактеризовано понятием "предположение об отсутствии" и сводится к схеме: "Если А
(предварительное условие) - истинно и нет доказательств против В, то предложить В".
Подобные правила вывода оказываются полезными в основном в двух случаях:
1. Неполнота знаний. Если в системе представления отдельные факты не представлены
или невыводимы, правила вывода позволяют гипотетически признавать их верными при
условии, что в системе нет или в ней невыводимы доказательства противного.
2. Вывод в условиях ограниченности ресурсов. Из-за ограниченности ресурсов
процессы вывода не могут завершиться, а должны быть оставлены для получения
результатов. В этом случае правила определяют дальнейшие действия системы.
Системы представления, содержащие подобные правила, оказываются немонотонными,
т.е. добавление новых утверждений может запретить генерацию вывода, который
первоначально мог быть получен. Добавление новых фактов может привести к
возникновению противоречий. В некоторых системах кроме самих утверждений содержатся
также записи причин, по которым были приняты эти утверждения. При добавлении новых
фактов осуществляется проверка того, сохраняются ли справедливость утверждений и
соответствие причинам.
Можно выделить ряд общих для всех систем представления знаний (СПЗ) черт [7, 8]:
все СПЗ имеют дело с двумя мирами - представляемым и представляющим. Вместе они
образуют систему для представления. Существует также ряд общих для всех СПЗ проблем. К
ним можно отнести, в частности, проблемы: приобретения новых знаний и их
взаимодействие с уже существующими, организации ассоциативных связей,
неоднозначности и выбора семантических примитивов, явности знаний и доступности,
выбора соотношения декларативной и процедурной составляющих представления, что
влияет на экономичность системы, полноту, легкость кодировки и понимания.
Рассмотрим различные формы моделей представления знаний.
Продукционные модели представляют собой набор правил в виде "условие - действие",
где условия являются утверждениями о содержимом БД (фактов), а действия есть некоторые
процедуры, которые могут модифицировать содержимое БД. Продукционные модели из-за
модульного представления знаний, легкого расширения и модификации нашли широкое
применение в ЭС и ЕЯ-системах.
Другая важная схема представления знаний - семантические сети, представляющие
собой направленный граф, в котором вершинам ставятся в соответствие конкретные
объекты, а дугам, их связывающим, - семантические отношения между этими объектами.
Семантические сети могут использоваться как для декларативных, так и для процедурных
знаний.
Перспективной формой представления знаний являются фреймы, которые быстро
завоевали популярность у разработчиков систем ИИ благодаря своей универсальности и
гибкости.
Принципиальным методом для логического представления знаний является
использование логики предикатов первого порядка (исчисление предикатов). При таком
подходе знания о некоторой предметной области могут рассматриваться как совокупность
логических формул. Изменения в модели представления знаний происходят в результате
добавления или удаления логических формул.
В редукционных моделях осуществляется декомпозиция исходной задачи на ряд
подзадач, решая которые последовательно определяют решение поставленной задачи.
Логические представления легки для понимания и располагают правилами вывода,
необходимыми для операций над ними. Однако в логических моделях представление знаний
отношения между элементами знаний выражаются ограниченным набором средств
используемой формальной системы, что не позволяет в полной мере отразить специфику
предметной области. Недостатком логического представления является также тенденция
потреблять большие объемы памяти ЭВМ.
Ряд понятий человеческих знаний оказывается трудно, а иногда и невозможно описать
количественно, используя детерминированные или стохастические методы. Трудности
возникают при создании моделей не полностью определенных, неточных, нечетких знаний.
Это связано с тем, что человеческому мышлению присуща лингвистическая
неопределенность; знания и понятия, которыми оперирует человек, часто имеют
качественную природу, они ситуативны, бывают неполными. Для формализации знаний
такого типа используется аппарат теории нечетких множеств, создание которого связано с
именем известного американского ученого Л. Заде.
Неточность, неопределенность или неполнота, заключенные в смысловых значениях
или выводах, присущи естественным языкам с их сложной структурой и многообразием
понятий. Различают несколько типов неопределенности в прикладных системах ИИ. Первый
связан с ненадежностью исходной информации - неточность измерений, неопределенность
понятий и терминов, неуверенностью экспертов в своих заключениях.
Второй - обусловлен нечеткостью языка представления правил, например в экспертных
системах. Неопределенность возникает также, когда вывод базируется на неполной
информации, т.е. нечетких посылках. Еще один тип неопределенности может появляться при
агрегации правил, исходящих от разных источников знаний или от разных экспертов. Эти
правила могут быть противоречивыми или избыточными.
Различие между декларативным и процедурным представлением можно выразить как
различие между «знать что» и «знать как». Каждое представление имеет свои достоинства и
недостатки. В заключение необходимо отметить, что деление моделей представления знаний
на декларативные и процедурные весьма условно, так как стремление наиболее полно
использовать достоинства обоих видов представления знаний привело к разработке
смешанных представлений, т.е. декларативных представлений с присоединенными
процедурами (например, фреймовые модели и модели, использующие расширенные
семантические сети).
Оптимальное решение задачи выбора: первый прототип реализуется на
специализированных средствах, и в случае достаточной эффективности этих средств на них
могут быть написаны действующий прототип, и даже промышленная система. Однако в
большинстве случаев прототип следует "переписать" на традиционных средствах.
Программные средства создания ЕЯ-систем
Рассмотрим наиболее известные и широко применяемые программные средства
искусственного интеллекта.
Язык программирования Лисп. Самое популярное средство для программирования
систем ИИ. Создан в 60-х годах американским ученым Дж. Маккарти и его учениками.
Наиболее известными диалектами этого языка являются InterLisp, QLisp, CommonLisp. На
языке Лисп написаны многие ЭС (Mycin, Internist, Kee), системы естественно-языкового
общения (Margie, Shrdlu, Дилос), интеллектуальные ОС (Flex).
Популярность Лиспа объясняется тем, что он с помощью довольно простых
конструкций позволяет писать сложные и изящные системы обработки символьной
информации. Правда все Лисп-системы имеют низкую вычислительную эффективность.
Существенной особенностью языка Лисп является то, что здесь "данные" и
"программы" внешне ничем не отличаются друг от друга. Это дает возможность писать на
Лиспе программы, манипулирующие не только "данными", но и "программами". Именно
данное свойство позволяет Лиспу стать изящным средством программирования систем ИИ.
Язык программирования FRL (Frame Representation Language). Относится к классу
фрейм-ориентированных языков. Фрейм в FRL - это совокупность поименованных,
ассоциативных списков, содержащая до пяти уровней подструктур. Подструктурами
фреймов могут быть слоты, аспекты, данные, комментарии и сообщения.
Важным свойством FRL является наличие в нем встроенного механизма "наследования
свойств". Т.е. все понятия предметной области в БЗ организовываются в виде иерархической
классификационной системы, где каждое общее (родовое) понятие связывается с более
конкретным (видом). Применяется механизм наследования свойств.
На сегодняшний день большинство FRL-систем написаны на Лиспе.
Язык программирования Пролог. Наиболее известные Пролог - системы: MProlog,
CProlog, Prolog-2, Arity Prolog, Turbo Prolog, Strawberry Prolog. Пролог все чаще в последнее
время стал привлекаться к разработке ЭС. Математической основой этого языка являются
исчисление предикатов преимущественно первого порядка, метод резолюций Робинсона,
теория рекурсивных функций. За счет наличия большого набора встроенных предикатов
язык Пролог можно отнести к универсальным языкам программирования и даже к языкам
системного программирования. Важнейшей особенностью языка является наличие
реляционной базы данных.
Язык программирования OPS. Язык относится к числу продукционных. Являясь
универсальным языком, он, в первую очередь, предназначен для разработки систем ИИ, и, в
частности экспертных систем. Архитектура языка OPS типична для продукционных систем:
база правил, рабочая память и механизм вывода. Отличительные черты семейства языков
OPS: программное управление стратегией вывода решений, развитая структура данных и
принципиальная эффективность реализации.
Язык программирования Рефал (рекурсивных функций алгоритмический язык). Это
машинно-независимый алгоритмический язык, ориентированный на так называемые
"символьные преобразования": перевод с одного языка на другой, алгебраические выкладки
и т.п. Рефал - универсальный метаязык для преобразования объектов языковой природы.
Важнейшим приложением Рефала является его использование в качестве метаязыка для
построения системных макрокоманд и специализированных языков. В качестве конкретных
областей применения Рефала следует отметить, в частности, создание специализированных
языков общения с ЭВМ, автоматическую генерацию программ, перенос программ на языки
высокого уровня и их адаптацию при переходе от одного типа ЭВМ к другому.
Проблема выбора программных инструментальных средств вызывает бурные
дискуссии между сторонниками специализированных языков ИИ и традиционных языков
высокого уровня. Над решением данной проблемы работает целый ряд компаний,
специализирующихся на ИИ и коммерческих ЭС, а также большинство крупных фирм по
производству ЭВМ.