
- •Т. А. Гаврилова в. Ф. Хорошевский
- •Санкт-Петербург
- •Предисловие
- •Об авторах
- •1.1.2. Зарождение нейрокибернетики
- •1.1.3. От кибернетики «черного ящика» к ии
- •1.1.4. История искусственного интеллекта в России
- •1.2. Основные направления исследований в области искусственного интеллекта
- •1.2.1. Представление знаний и разработка систем, основанных на знаниях (knowledge-based
- •1.2.2. Программное обеспечение систем
- •1.2.3. Разработка естественно-языковых интерфейсов и машинный перевод (natural
- •1.2.4. Интеллектуальные роботы (robotics)
- •1.2.5. Обучение и самообучение (machine
- •1.2.6. Распознавание образов (pattern
- •1.2.7. Новые архитектуры компьютеров (new
- •1.2.8. Игры и машинное творчество
- •1.2.9. Другие направления
- •1.3. Представление знаний и вывод на знаниях
- •1.3.1. Данные и знания
- •1.3.2. Модели представления знаний
- •Структура фрейма
- •1.3.3. Вывод на знаниях
- •1.4. Нечеткие знания
- •1.4.1. Основы теории нечетких множеств
- •1.4.2. Операции с нечеткими знаниями
- •1.5. Прикладные интеллектуальные системы
- •2.2. Классификация систем, основанных на знаниях
- •2.2.1. Классификация по решаемой задаче
- •2.2.2. Классификация по связи с реальным временем
- •2.2.3. Классификация по типу эвм
- •2.2.4. Классификация по степени интеграции с другими программами
- •2.3. Коллектив разработчиков
- •2.4. Технология проектирования и разработки
- •2.4.1. Проблемы разработки промышленных эс
- •2.4.2. Выбор подходящей проблемы
- •2.4.3. Технология быстрого прототипирования
- •2.4.4. Развитие прототипа до промышленной эс
- •2.4.5. Оценка системы
- •2.4.6. Стыковка системы
- •2.4.7. Поддержка системы
- •Теоретические аспекты инженерии знаний
- •3.1. Поле знаний
- •3.1.1. О языке описания поля знаний
- •3.1.2. Семиотическая модель поля знаний
- •3.1.3. «Пирамида» знаний
- •3.2. Стратегии получения знаний
- •3.3. Теоретические аспекты извлечения знаний
- •3.3.1. Психологический аспект
- •3.3.2. Лингвистический аспект
- •3.3.3. Гносеологический аспект извлечения знаний
- •3.4. Теоретические аспекты структурирования знаний
- •3.4.1. Историческая справка
- •3.4.2. Иерархический подход
- •3.4.3. Традиционные методологии структурирования
- •3.4.4. Объектно-структурный подход (осп)
- •Технологии инженерии знаний
- •4.1. Классификация методов практического извлечения знаний
- •4.2. Коммуникативные методы
- •4.2.1. Пассивные методы
- •Сравнительные характеристики пассивных методов извлечения знаний
- •4.2.2. Активные индивидуальные методы
- •Сравнительные характеристики активных индивидуальных методов извлечения
- •4.2.3. Активные групповые методы
- •4.3. Текстологические методы
- •4.4. Простейшие методы структурирования
- •4.4.1. Алгоритм для «чайников»
- •4.4.2. Специальные методы структурирования
- •4.5. Состояние и перспективы автоматизированного приобретения знаний
- •4.5.1. Эволюция систем приобретения знаний
- •4.5.2. Современное состояние автоматизированных систем приобретения знаний
- •4.6.2. Имитация консультаций
- •4.6.3. Интегрированные среды приобретения знаний
- •4.6.4. Приобретение знаний из текстов
- •4.6.5. Инструментарий прямого приобретения
- •Формы сообщений
- •5.1.1. Семантические пространства и психологическое шкалирование
- •5.1.2. Методы многомерного шкалирования
- •5.1.3. Использование метафор для выявления «скрытых» структур знаний
- •5.2. Метод репертуарных решеток
- •5.2.1. Основные понятия
- •5.2.2. Методы выявления конструктов
- •5.2.3. Анализ репертуарных решеток
- •5.2.4. Автоматизированные методы
- •5.3. Управление знаниями
- •5.3.1. Что такое «управление знаниями»
- •5.3.2. Управление знаниям и корпоративная память
- •5.3.3. Системы omis
- •5.3.4. Особенности разработки omis
- •5.4. Визуальное проектирование баз знаний как инструмент познания
- •5.4.1. От понятийных карт к семантическим сетям
- •5.4.2. База знаний как познавательный инструмент
- •5.5. Проектирование гипермедиа бд и адаптивных обучающих систем
- •5.5.1. Гипертекстовые системы
- •5.5.2. От мультимедиа к гипермедиа
- •5.5.3. На пути к адаптивным обучающим системам
- •6.1.3. Инструментальные средства поддержки разработки систем по
- •6.2. Методологии создания и модели жизненного цикла интеллектуальных систем
- •6.3. Языки программирования для ии и языки представления знаний
- •6.4. Инструментальные пакеты для ии
- •6.5. WorkBench-системы
- •Пример разработки системы, основанной на знаниях
- •7.1. Продукционно-фреймовый япз pilot/2
- •7.1.1. Структура пилот-программ и управление выводом
- •7.1.2. Декларативное представление данных и знаний
- •7.1.3. Процедурные средства языка
- •7.2. Психодиагностика — пример предметной области для построения экспертных систем
- •7.2.1. Особенности предметной области
- •7.2.2. Батарея психодиагностических эс «Ориентир»
- •7.3. Разработка и реализация психодиагностической эс «Cattell»
- •7.3.1. Архитектура системы и ее база знаний
- •7.3.2. Общение с пользователем и опрос испытуемых
- •7.3.3. Вывод портретов и генерация их текстовых представлений
- •7.3.4. Помощь и объяснения в эс «Cattell»
- •8.1.2. Html — язык гипертекстовой разметки Интернет-документов
- •8.1.3. Возможности представления знаний на базе языка html
- •8.2. Онтологии и онтологические системы
- •8.2.1. Основные определения
- •8.2.2. Модели онтологии и онтологической системы
- •8.2.3. Методологии создания и «жизненный цикл» онтологии
- •Фрагмент описания аксиомы
- •8.2.4. Примеры онтологии
- •8.3. Системы и средства представления онтологических знаний
- •8.8.1. Основные подходы
- •8.3.2. Инициатива (ка)2 и инструментарий Ontobroker
- •8.3.3. Проект shoe — спецификация онтологии и инструментарий
- •8.3.4. Другие подходы и тенденции
- •9.1.2. Основные понятия
- •9.2.2. Инструментарий AgentBuilder
- •9.2.3. Система Bee-gent
- •9.3. Информационный поиск в среде Интернет
- •9.3.1. Машины поиска
- •9.3.2. Неспециализированные и специализированные поисковые агенты
- •9.3.3. Системы интеллектуальных поисковых агентов
- •Заключение
- •Литература
- •Содержание
- •Базы знаний интеллектуальных систем
- •196105, Санкт-Петербург, ул. Благодатная, 67.
- •197110, Санкт-Петербург, Чкаловский пр., 15.
7.3.2. Общение с пользователем и опрос испытуемых
Как следует из Н-диаграммы, представленной на рис. 7.4, подопции Cattell-меню различны для режима «Испытуемый» и режима «Эксперт». Активация первого режима приводит к последовательному выполнению процедур диалогового анкетирования испытуемого, подсчета «сырых баллов» по каждому из 16 кеттелловских факторов и формирования на этой основе числового, а затем и семантического профиля испытуемого. Весь диалог в рамках этой опции ведется на языке, близком к естественному. При этом лингвистический процессор для анализа ответов испытуемого, конечно, не используется, а «взаимопонимание» обеспечивается тем, что инициатива во всех диалогах здесь всегда у системы. Таким образом, она всегда «знает», каков должен быть ответ испытуемого в данной точке и в случае ошибки «добивается» правильного ответа с помощью переспросов и подсказок.
Единственной точкой перехвата инициативы от системы к пользователю является вызов «помощи», к которой можно обратиться нажатием функциональной клавиши F1 или через соответствующую опцию в, меню. При этом на экране появляется специальное окно, где высвечивается соответствующая контексту обращения к «помощи» информация. Отсутсвие на этом уровне объяснений — не случайно. Испытуемый не должен «понимать», почему (как) получен его личностный портрет. В противном случае он будет осознанно или подсознательно отступать от «естественных» для себя ответов на вопросы анкеты и в конечном счете «научится» получать желаемый, а не действительный личностный портрет.
Противоположная ситуация в опции «Эксперт». Во-первых, на этом уровне все выводы системы должны (по желанию экперта) сопровождаться объяснениями и обоснованиями и во-вторых, у психолога должны быть средства анализа знаний системы и данных по конкретному испытуемому. Защита от несанкционированного доступа к данным и знаниям обеспечивается всей системой, «Ориентир», если база помечена как личная (ее «владельцем» указан статус PRIVATE). Опции режима «Эксперт» перечислены в Н-диаграмме на рис. 7.4. Анализ данных и знаний системы, а также объяснения вынесены на уровень основного меню и активируются из соответствующих опций.
Ввиду небольшой компьютерной подготовки психологов-экспертов в данном режиме диалог в подавляющем большинстве случаев идет на уровне меню и/или семантически значимых клавиш. Кроме того, в любой точке, где требуется реакция пользователя, он может вместо ответа обратиться к блоку «помощь» уже обсуждавшимся выше способом.
Из приведенной выше Н-диаграммы ЭС «Cattell» следует, что опрос испытуемых может осуществляться двумя способами: на основе ответов на ЕЯ-формулировки вопросов теста и путем заполнения таблиц. Первый вариант удобен при индивидуальном тестировании, а второй — при массовом вводе результатов анкетирования, предварительно зафиксированных на бумажных носителях. Но и в том и в другом случае результатом работы блока анкетирования является фрейм-экземпляр прототипа «anketa», приведенного выше.
7.3.3. Вывод портретов и генерация их текстовых представлений
Для удобства работы психолога-эксперта результаты профилирования выдаются в специальное окно в виде графика, на оси абсцисс которого указаны факторы, а на оси ординат — «сырые баллы», набранные испытуемым по каждому из факторов. Существует в системе и возможность табличной визуализации числового профиля. Несколько иначе визуализируется результат построения качественного профиля испытуемого. Здесь психологу-эксперту выдаетсяЛб семантических шкал (по числу факторов), на каждой из которых отмечается числовое значение соответствующего фактора.
Процедуры обработки данных анкетирования в рамках предыдущих опций базируются на знаниях. Но знания эти доведены до алгоритмов, реализация которых в виде продукционной системы нецелесообразна. Поэтому в ЭС «Cattell» все такие процедуры реализуются на языке C++, а затем подключаются в нужных точках. Вместе с тем сами технологические знания представлены эксплицитно совокупностью следующих фреймов прототипов и экземпляров:
[ a_n_tbl is_a prototype;
f_A {frame}; /* ответы по фактору А с весами */
f_B {frame};/* ответы по фактору В с весами */
………………………………………………………………………….
f_Q4{fгаmе}; /* ответы по фактору Q4 с весами */];
[ a_n_elem is_a prototype;
ans_dsc string; /* имя фрейма-экземпляра ответа на анкету */
weight_a, weight_b, weight_c int; /* веса ответа типа «а», «б» и «с» */];
.[ answer is_a prototype;
prt_name, exm_name, slot_name string];
[ ank_numb is_a a_n_tbl;
f_A={q_3,q_4,q_26,q_27,q_51,q_52,q_76,q_101, q_126, q_151, q_176 }; f_B={q_28,q_53,q_54,q_77,q_78,q_102,...q_152,q_153,q_177,q_178};
……………………………………………………………………………………….
f_Q4={q_25,q_49,q_50,q_74,q_75,q_99,q_100, .. .qJ50,q_174,q_175} ];
[ q_3 is_a a_n_elem;
ans_dsc = «ans_003»;
weight_a= 2;
weight_b= 1;
weight_c= 0 ];
………………………………………………………………………………………..
[ ans_003 is_a answer;
prt_name= «anketa»;
exm_name= «anketa0037»;
slot_name= «ans3» ];
Запускаются процедуры получения числового и семантического профилей испытуемого как демоны при выборе соответствующих опций в меню ЭС «Cattell».
В опции «портретирование» осуществляется психологическая интерпретация полученных на предыдущих этапах профилей испытуемого с целью построения его словесного личностного портрета. Здесь уровень алгоритмизации знаний психолога-эксперта существенно иной. Разные школы психологов несколько по-разному оценивают роль и вес разных факторов, приписывают им различные текстовые отображения. Поэтому реализация вывода словесного портрета испытуемого в ЭС «Cattell» базируется на продукционно-фреймовом формализме. Собственно вербализация портрета — нисходящая (от цели), а подготовка его структурированного невербализованного описания — восходящая (от данных). Наиболее сложным и интересным является этап вывода невербализованного портрета, реализованный в виде продукционной системы, предложенной в работе [Гаврилова и др., 1992]. Правила этой системы служат для выявления и устранения противоречий двух типов. Первый связан, в конечном счете, с анализом ответов на определенные вопросы анкеты и позволяет фиксировать ситуации, когда построение сколько-нибудь достоверного личностного портрета на основании имеющихся данных нецелесообразно. Возникновение таких ситуаций обычно связывается либо с невнимательным заполнением анкеты испытуемым, либо с попыткой преднамеренного искажения результатов тестирования за счет противоречивых ответов на дублирующиеся по семантике вопросы теста. И в том и в другом случае анкета помечается как «плохая» и из дальнейшей обработки исключается. Второй тип противоречий связан с выявлением и устранением контекстной зависимости и доминирования значений разных факторов, что позволяет получить более «гладкий» личностный портрет.
Но и в том и в другом случае исходными данными для работы продукционной системы являются числовой и семантический профили испытуемого, прототипы которых (n_prfl и s_prfl) приведены выше. Примеры словесных формулировок правил разрешения противоречий выглядят следующим образом:
Если
значение фактора «F» в семантическом профиле испытуемого «Очень Низкий», а значение фактора «Q3» - «Низкий»,
то
фактор «03.» поглощается фактором «F».
Если
значения факторов «01» и «02» в семантическом профиле испытуемого «Очень Высокий»,
то
для принятия решения о поглощении нужно сравнить значения этих факторов в числовом профиле испытуемого. Кандидатом на поглощение будет тот фактор, у которого числовое значение меньше.
На уровне ЯПЗ PILOT/2, обсуждавшегося выше, описание этих правил трансформируется во фрагмент продукционной программы вида:
rule F-поглощает-QЗ
:: [$curr_s_prfl : F] == «ОН» && [$curr_s_prfl : Q3] == «Н»
==> delete (Q3);
section Q1-Q2
if ([$curr_s_prfi : Q1] == [$curr_s_prfl : Q2] )
set (Q1-поглощает-Q2, Q2-поглощает-Q1);
…………………………………………………………………..
rule Q1-поглощает-Q2
:: [$curr_n_prfl : Q1] >= [$curr_n_prfl : Q2]
==> delete (Q2);
………………………………………………………………….
rule Q2-поглощает-Q1
:: [$curr_n_prfl : Q1] < [$curr_n_prfl : 02]
==> delete (Q1);
Функционирование продукционной системы позволяет получить невербализованный портрет. На вход блока генерации вербального представления поступает фрейм-экземпляр прототипа not_verb, слот order которого означен последовательностью имен групп (b1 - b4) в порядке убывания «силы» этих групп, а слоты bi; bi_valn и bi_vals — последовательностями факторов, составляющих ту или иную группу вместе с их значениями из числового и семантического профиля. Собственно генерация текстов достаточно проста и сводится к регулярной замене значений факторов фразами естественного языка на основе следующих знаний:
[factor is_a prototype;
ОН, Н, СР, В, OB {string} ];
[ A is_a factor;
ОН={«Это человек замкнутый и необщительный, критичный и отчужденный.»};
Н={«Это человек малообщительный и довольно замкнутый.»};
СР=;
В={«Это человек общительный и готовый к сотрудничеству.»};
ОВ={«Это человек внимательный к людям, открытый, общительный и готовый к
сотрудничеству.»} ];
[ В is_a factor;
ОН={«Не имеет навыка решения логических задач, медленно обучается новым понятиям.»};
Н={«Не имеет навыка решения логических задач, довольно медленно обучается новым понятиям.»};
СР={«Имеет определенные навыки в решении логических задач.»};
В={«Умеет абстрактно мыслить, хорошо решает логические задачи, довольно быстро обучается новым понятиям.»};
ОВ={«Умеет абстрактно мыслить, очень хорошо решает логические задачи, быстро обучается новым понятиям.»};
……………………………………………………………………………………….
[ Q4 is_a factor;
ОН={«В настоящий момент самоуспокоен, расслаблен, не напряжен.»};
Н={«В настоящий момент находится в спокойном расслабленном состоянии.»};
СР=;
В={«В настоящий момент человеку присуще высокое рабочее напряжение, собранность, энергичность.»};
ОВ={«В настоящий момент человек напряжен, собран и даже несколько «взвинчен».»};
Учитывая то, что генерация текстовых представлений портретов осуществляется в ЭС «Cattell» на уровне целых предложений и групп предложений, здесь используется простая продукционная система со следующими правилами:
section PORTRET-GEN
removeall;
if (?[ $curr_port : $curr_not_verb = not_verb ] &&
?[ $curr_port : $curr_verb = verb ] &&
?[ $curr_not_verb : $curr_order = all_of order ;
$curr_b1 = all_of Ы;
$curr_b2 = all_of b2;
$curr_b3 = all_of b3;
$curr_b4 = all_of b4 ] ) insert (COPY);
………………………………………………………………….
rule COPY
: : ==> [ $curr_verb : order ] = $curr_order;
[ $curr_verb : Ы ] = $curr_b1;
[ $curr_verb : b2 ] = $curr_b2;
[ $curr_verb : b3 ] = $curr_b3;
[ $curr_verb : b4 ] = $curr_b4;
rule_off (COPY);invoke (B1);invoke (B2);invoke (B3);invoke (B4);
section B1
if ( ?[ $curr_not_verb : $curr_b1_vals = all_of b1_vals ] );
rule A
:: <$curr_b1 == «A»
==> «$curr_b1;
$curr_txt = all_of [ A : «$curr_b1_vals ];
[ $curr_verb : b1_txt ] = $curr_txt;
clear ($curr_txt);
rule E
:: <$curr_b1 == «E»
==> «$curr_b1;
$curr_txt = all_of [ E : «$curr_b1_vals ];
[ $curr_verb : b1_txt ] = $curr_txt;
clear ($curr_txt);
rule N
:: <$curr_b1 == «N» ==> «$curr_b1;
$curr_txt = all_of [ N : «$curr_b1_vals ];
[ $curr_verb : b1_txt ] = $curr_txt;
clear ($curr_txt);
………………………………………………………………………….
section B4
if ( ?[ $curr_not_verb : $curr_b4_vals = all_of b4_vals ] );
rule В
:: <$curr_b4 == «B»
==> «$curr_b4;
$curr_txt = all_of [ В : «$curr_b4_vals ];.
[ $curr_verb : b4_txt ] = $curr_txt;
clear ($curr_txt);
rule Q1
:: <$curr_b4 == «Q1»
==> «$curr_b4;
$curr_txt = all_of [ Q1 : «$curr_b4_vals ];
[ $curr_verb : b4_txt ] = $curr_txt; clear ($curr_txt);
Результатом работы этой продукционной программы является фрейм-экземпляр прототипа verb, слоты order и b1 - b4 которого содержат ту же информацию, что и в невербальном портрете, а слоты bl_txt—b4_txt — собственно текстовое представление портрета испытуемого.