Министерство образования и науки Российской Федерации
Новосибирский государственный технический университет
Кафедра ПС и БД
Лабораторная работа №5
по курсу:
«Системы искусственного интеллекта»
Факультет: ПМИ
Группа: ПМ-15
Студенты: Сорокин А.
Шилак Д.
Преподаватели: Пономаренко В.М.
Ванюкевич О.Н.
Новосибирск
2005
Цель работы
Изучение приемов семантического анализа предложений естественного языка посредством падежной грамматики.
Задание
Предметная область
Возьмем предметную область из лабораторной работы № 4.
Выделим следующие сущности:
Студент, Бригада, Лабораторная работа, Год рождения студента, Пол студента;
ФИО студента, год рождения, номер, номер лабораторной работы.
Выделим следующие отношения:
является видом, является представителем;
имеет год рождения, представитель бригады, защищённая бригадой лабораторная работа.
Для описания предметной области были введены следующие предложения:
Базе знаний будем задавать следующие типы вопросов:
· Какая бригада (или номер бригады) защитила лабораторную работу №1 ?
· Кто (или имя студента) родился в 1983 ?
· Кто (или имя студента) находится в бригаде №1 ?
· Кто (или имя студента) является представителем мужского (женского) пола?
Тесты
brigada 1 защитила laba work 1;
brigada 2 защитила laba work 1;
brigada 3 защитила laba work 1;
brigada 4 защитила laba work 1;
brigada 6 защитила laba work 1;
brigada 7 защитила laba work 1;
brigada 8 защитила laba work 1;
brigada 9 защитила laba work 1;
brigada 10 защитила laba work 1;
brigada 11ащитила laba work 1;
Студент Kazygashev K родился 1983 году;
Студент Tcarapkin V родился 1983 году;
Студент Gluhova M родился 1983 году;
Студент Efremova M находится в brigada 1;
Студент Ignatev A находится в brigada 1;
Студент Ignatev A является Man;
Текст программы
DOMAINS
STR_LIST = STRING*
PREDICATES
relation(STRING,STRING,STRING)
person_sex(STRING,STRING)
person_birthday(STRING,STRING)
brig_lab(STRING,STRING)
structure_brig(STRING,STRING)
sentence(STR_LIST,STRING,STRING,STRING,STRING,STRING,STRING)
%Who Name Sex Year When Lab
sentence(STR_LIST,STRING)
%Lab
query (STRING,STRING,STRING,STRING,STRING,STRING)
%Who Name Sex Brig Year Lab
con1(STRING,STRING,STRING,STRING)
con2(STRING,STRING,STRING)
str_to_str_list(STRING,STR_LIST)
get_word(STRING,STRING,STRING)
CLAUSES
%вывод результатов
query("",Name,"","","",Lab) :brig_lab(Name,Lab),
write(Name," защитила ",Lab,";"),nl,!.
query("Who","","","","",Lab) :brig_lab(Name,Lab),
write(Name," защитила ",Lab,";"),nl,fail.
query("",Name,"","","",Lab) :not(brig_lab(Name,Lab)),
write(Name," не защитила ",Lab,";"),nl.
query("",Name,"","",Year,""):person_birthday(Name,Year),
write("Студент ",Name," родился в ",Year," году").
query(Who,"","","",Year,""):person_birthday(Name,Year),
write("Студент ",Name," родился в ",Year," году"),nl,fail.
query("",Name,"","",Year,""):not(person_birthday(Name,Year)),
write("Студент ",Name," не родился в ",Year," году").
query(Who,"",Sex,"","",""):person_sex(Person,Sex),
write("Студент ",Person," является ",Sex),nl,fail.
query("",Name,Sex,"","",""):person_sex(Name,Sex),
write("Студент ",Name, " является ",Sex).
query("",Name,Sex,"","",""):not(person_sex(Name,Sex)),
write("Студент ",Name, " не является ",Sex).
query(Who,"","",Brig,"",""):structure_brig(Name,Brig),
write("Студент ",Name," находится в ",Brig),nl,fail.
query("",Name,"",Brig,"",""):structure_brig(Name,Brig),
write("Студент ",Name," находится в ",Brig).
query("",Name,"",Brig,"",""):not(structure_brig(Name,Brig)),
write("Студент ",Name," не находится в ",Brig).
% разбор предложения
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.