logo
Базы знаний интелл

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 — собственно текстовое представление портрета испытуемого.