Изучение приемов семантического анализа предложений естественного языка посредством падежной грамматики. Задача семантического анализа

Страницы работы

4 страницы (Word-файл)

Содержание работы

Цель работы: Изучение приемов семантического анализа предложений естественного языка посредством падежной грамматики

Задача семантического анализа:

“Студент третьего курса  в осеннем семестре в терминальном классе реализовал эффективную программу на языке Пролог для курсового проекта”.

Семантическая сеть:

Действие = “реализована”

                                                                      кто (объект)

кем (агент)                                                         с помощью чего (инструмент)

студент 3-го курса           эффективная программа                                                     язык пролог

    для чего (цель)

где (место)                                                                  когда (время)     

курсовой проект                                терминальный класс                                 осенний семестр

Запросы:

"кто реализовал эффективную программу на си в терминальном классе в осеннем семестре для курсового проекта"

"что реализовал студент третьего курса",FRS),

"студент третьего курса что сделал в осеннем семестре"

"студент третьего курса реализовал эффективную программу на чём"

Текст программы:

DOMAINS

PHRASE = STRING*

PREDICATES

sentence(PHRASE,PHRASE,STRING)    %предложение

agent(PHRASE,PHRASE,STRING)       %агент

effect(PHRASE,PHRASE,STRING)      %действие

object(PHRASE,PHRASE,STRING)      %объект

instrument(PHRASE,PHRASE,STRING)  %инструмент

position(PHRASE,PHRASE,STRING)    %место

time_p(PHRASE,PHRASE,STRING)      %время

purpose(PHRASE,PHRASE,STRING)     %цель

noun_group(PHRASE,PHRASE)         %именное словосочетание

question(STRING,STRING)           %вопрос

question_verb(STRING,STRING)      %глагольный вопрос

name(STRING)                      %собственное существительное

noun(STRING)                      %существительное

verb(STRING)                      %глагол

pronoun(STRING)                   %местоимение

adjective(STRING)                 %прилагательное

instrument_pretext(STRING)        %инструментальный предлог

time_pretext(STRING)              %временной предлог

position_pretext(STRING)          %локутивный предлог

purpose_pretext(STRING)           %целевой предлог

delqst(PHRASE,PHRASE,STRING)

delqst1(PHRASE,PHRASE,PHRASE)

answer(STRING,PHRASE,PHRASE)                                        %ответ

answer1(STRING,PHRASE,PHRASE,PHRASE)                     %ответ

relation(STRING,PHRASE,PHRASE)                                      %сеть

relation1(STRING,PHRASE,PHRASE)                                    %сеть

relation2(STRING,PHRASE,PHRASE)                                    %сеть

scan(STRING,PHRASE)               %сканер

lst_to_str(STRING,PHRASE)         %перевод в строку

word(STRING,STRING,STRING)

ins(STRING,PHRASE,PHRASE)         %вставить элемент в конец списка

run

CLAUSES

sentence(S,S0,QST):-agent(S,S1,QST), effect(S1,S2,QST), object(S2,S3,QST),instrument(S3,S4,QST),

position(S4,S5,QST),time_p(S5,S6,QST),purpose(S6,S0,QST).

sentence(S,S0,QST):-agent(S,S1,QST), effect(S1,S2,QST), object(S2,S3,QST),instrument(S3,S4,QST),

position(S4,S5,QST),time_p(S5,S0,QST).

sentence(S,S0,QST):-agent(S,S1,QST), effect(S1,S2,QST), object(S2,S3,QST),instrument(S3,S4,QST),

position(S4,S0,QST).

sentence(S,S0,QST):-agent(S,S1,QST), effect(S1,S2,QST), object(S2,S3,QST),instrument(S3,S0,QST).

sentence(S,S0,QST):-agent(S,S1,QST), effect(S1,S2,QST), object(S2,S0,QST).

sentence(S,S0,QST):-agent(S,S1,QST), effect(S1,S2,QST), time_p(S2,S0,QST).

agent([X|S0],S0,_):-pronoun(X).

agent(S,S0,_):-noun_group(S,S0).

agent([X|S0],S0,_):-name(X).

agent([X|S0],S0,QST):-question(X,QST).

effect([X|S0],S0,_):-verb(X).

effect(["что",X|S0],S0,QST):-question_verb(X,QST).

object([X|S0],S0,_):-pronoun(X).

object(S,S0,_):-noun_group(S,S0).

object([X|S0],S0,_):-name(X).

object([X|S0],S0,QST):-question(X,QST).

instrument([X|S],S0,_):-instrument_pretext(X),noun_group(S,S0).

instrument(S,S0,_):-noun_group(S,S0).

instrument([X,Y|S0],S0,QST):-instrument_pretext(X),question(Y,QST).

instrument([X|S0],S0,QST):-question(X,QST).

time_p([X|S],S0,_):-time_pretext(X),noun_group(S,S0).

time_p(S,S0,_):-noun_group(S,S0).

time_p([X,Y|S0],S0,QST):-time_pretext(X),question(Y,QST).

time_p([X|S0],S0,QST):-question(X,QST).

position([X|S],S0,_):-position_pretext(X),noun_group(S,S0).

position(S,S0,_):-noun_group(S,S0).

position([X,Y|S0],S0,QST):-position_pretext(X),question(Y,QST).

position([X|S0],S0,QST):-question(X,QST).

purpose([X|S],S0,_):-purpose_pretext(X),noun_group(S,S0).

purpose(S,S0,_):-noun_group(S,S0).

purpose([X,Y|S0],S0,QST):-purpose_pretext(X),question(Y,QST).

purpose([X|S0],S0,QST):-question(X,QST).

noun_group([X|S],S0):-noun(X),noun_group(S,S0).

noun_group([X|S],S0):-adjective(X),noun_group(S,S0).

noun_group([X|S0],S0):-noun(X).

noun_group([X,Y|S0],S0):-noun(X),adjective(Y).


Информация о работе