Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Глубинные (семантические) падежи

Читайте также:
  1. Глубинные бомбы

 

Основная идея модели глубинных (семантических) падежей состоит в том, что любая фраза на естественном языке описывает в конечном итоге некоторое действие. Это действие можно описать с помощью предиката. Например, фраза «Петр пошел домой» представима в виде:

Пошел(Петр, дом)/

Можно предположить, что у любых предикатов имеется не очень большой набор аргументов. В ряде исследований обосновано, что фактически любое действие можно описать с помощью девяти аргументов (октантов).

A) Агент действия – одушевленный индикатор действия.

B) Контрагент – сила, против которой направлено действие.

C) Объект действия – некоторая вещь.

D) Адресат – лицо в пользу или во вред которого совершается действие.

E) Результат действия.

F) Инструмент.

G) Источник действия – место, откуда действие начинается.

H) Цель – место куда приводит действие.

I) Время действия.

В описании действия могут присутствовать все или часть аргументов, которые иногда называют глубинными или семантическими падежами.

Например, фраза «Петр пошел домой» представима в виде:

ИДТИ(Петр, Дом, прошлое), где Петр – агент, Дом – цель, прошлое – время действия.

Аргументы могут быть, в свою очередь, отношениями, образуя вложенность.

В автоматизированной системе обычно заложен набор действий для естественных языков. Цель системы – выделить их в тексте. При этом используются различные приемы, самый распространенный из них – использование информации о необходимых морфологических характеристиках глубинных падежей. Например, агент в отношении ПОШЕЛ – существительное в именительном падеже. Существуют готовые решения и для построения фраз на основе данной модели.


Глава 7.

ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ

 

Данная глава посвящена распространенному языку логического программирования Пролог. В ней приводится описание основных возможностей этого языка, сопровождаемое примерами программ, ориентированные на использование в среде Turbo Prolog.

 

Основные понятия в языке Пролог

 

Основным понятием языка является отношение, это понятие фактически тождественно понятию «предикат».

Процесс выполнения программы на Прологе сводится к доказательству истинности выражений, записанных в форме хорновских дизъюнктов. Язык приспособлен для проведения символических вычислений. Пролог предназначен для программирования задач искусственного интеллекта: создания экспертных систем, создания динамических баз данных в бизнесе, в бухучете, в диагностических системах, системах баз знаний и т.д.

Пролог относится к декларированным языкам. Программа представляет набор логических описаний, определяющих цель. Решение задач ищется встроенными унификационными процедурами, реализующими логический вывод на клозах Хорна (см. 2.2.6). Основой языка являются объекты, предикаты, факты, правила и цели. С формальной точки зрения цели соответствуют хорновским теоремам, факты – хорновским фактам, правила – хорновским аксиомам. С формальной точки зрения стратегия вывода пустого дизъюнкта описана в 2.2.6.

Здесь же рассмотрим пример, чтобы понять, что такое предикаты, факты, правила и цели с содержательной точки зрения.

Любит Лена пинг-понг – это факт, который говорит, что Лена как субъект обладает свойством (атрибутом) любить игру пинг-понг. Отношение здесь выражается глаголом любить, т.е. предикат «любит» связывает два объекта – Лену и пинг-понг. На языке Пролог этот факт записывается в виде – любит(лена, пинг-понг), т.е. предикат(объект 1, объект 2). Запишем теперь выражение: любит Коля то же, что и Лена. Это тоже высказывание, но оно уже не просто факт, а правило, используя которое мы можем прийти к новому факту, о котором ничего не говорилось. Например, что Коля любит пинг-понг. Иначе это записывается так:

любит Коля Нечто, если любит Лена нечто. Слово нечто можно заменить на любой предмет. На языке Пролог это записывается так

lubit(коля, Х):– lubit(лена, Х).

В общем эта структура записывается в виде

отношение (объект 1, объект 2):– отношение (объект 3, объект 4).

Примечание. На языке ЛППП данное выражение можно записать так:

Отношение (объект 3, объект 4)→отношение (объект 1, объект 2).

Таким образом, операции «:–» соответствует импликация. Операнды при этом меняются местами.

Очевидно, что из этого правила нельзя вывести новые факты, если нет первого факта. Для вывода нового факты слева необходимо проверить предпосылку отношения справа. Объекты с известными или постоянными значениями пишутся с маленькой буквы. Слова, начинающиеся с заглавной буквы, являются переменными в языке. Правило используется для вывода новых фактов. При этом Пролог сопоставляет все доступные факты с любым правилом.

Правила в общем случае имеют более сложную структуру:

отношение (объект 1, объект 2):– отношение (объект 3, объект 4),

отношение (объект 5, объект 6),

 

отношение (объект n-1, объект n).

В этом случае, для того чтобы отношение в левой части считать истинным, необходима истинность всех отношений в правой части.

Примечание. В данном случае «,» по сути обозначает конъюнкцию. Таким образом, если записать конструкцию на языке ЛППП, мы получим общий вид хорновской аксиомы.

Для запуска процесса поиска решения необходимо сформулировать цель программы. Она записывается в виде предикатной конструкции. Если цель является фактом, то проверяется его истинность.

Примечание. В этом случае фактически имеем запрос класса A.

В Прологе, к сожалению, существует только два типа ответа «да» и «нет». Ответ «да» выдается в случае, если цель доказана, ответ «нет», если этого сделать не удалось, при этом попытки доказать противоположную цель не производится.

Если цель содержит переменные, то выдаются либо те их значения, которые приводят к решению, если оно имеется, либо выдается no solution.

Примечание. Переменные получают значения в процессе логического вывода за счет проводимых подстановок. В этом случае речь идет фактически о запросе класса B (см. 2.2.8–2.2.10).

Цель может быть указана внутри в разделе goal – это будет внутренняя цель, либо как внешняя, когда в тексте программы отсутствует раздел. Цель может быть составной, например:

любит(Некто, плавать) и любит(Некто, пинг-понг), что записывается так

lubit(X, plavat), lubit(X, ping_pong).

Примечание. На языке ЛППП это записывается как

lubit(X, plavat)Ùlubit(X, ping_pong).

Таким образом, «,» в языке Пролог фактически является конъюнкцией.

В этом случае говорят, что имеется список целей, так как можно считать, что имеется несколько задач, заключающихся в доказательстве конкретных целей.

Объект, представляющий другой объект или совокупность объектов, называется составным объектом. Для облегчения написания утверждений и предикатов ТР позволяет объявлять составные объекты в разделе domains. Допустим, нам нужно объявить объект

Книга(название, автор, год).

Его можно объявить так: book(symbol, symbol, integer).

При этом неясно, о чем идет речь. Для более ясного представления, о чем идет речь, используется следующий тип

domains

title, author=symbol

year=integer

predicates

book(title, author, year)

Рассмотрим другой пример. Допустим, нам нужно отразить в расписании занятий курс лекций по основам искусственного интеллекта, который читает лектор Леонид Горчаков по понедельникам в главном корпусе, в аудитории 105 с 10 до 11 часов. Это можно записать в виде предиката

курс(пролог, понедельник,10,11, леонид, горчаков, главный_корпус, 105). Курс описывается как отношение между 8 элементами. То же самое можно записать в виде

курс(пролог, время(понедельник, 10, 11), лектор(леонид, горчаков), место(главный_корпус, 105)).

Второй факт рассматривает курс как отношение между 4 элементами и допускает более компактную запись правил за счет абстрагирования от деталей, не существенных при постановке запросов. В правиле о лекторе не требуются детали о времени занятий, что позволяет изменять форму представления данных о времени занятий без изменения правил, не связанных со структурой этих данных. Объекты внутри предиката Курс называются функторами и в свою очередь тоже являются предикатами.

Примечание. Наличие функторов позволяет реализовывать и запросы класса C.

 

В языке Пролог предусмотрен и оператор NOT для реализации отрицания, которое допускается в клозах Хорна.

Подчерками определяются анонимные переменные, которые означают, что нас не интересуют эти объекты (не интересуют объекты с именами авторов и публикация). Например:

domains

personal_library = book (title, author, publicher, year)

collection, title, author, publicher = symbol

year = integer

preducates

collection (collector, personal_library)

clauses – здесь перечисляются конкретные книги в персональной библиотеке Горчакова

collection (горчаков, book («computer», «von remmen», «Universess», 1958)), – данный факт означает наличие в персональной библиотеке Горчакова книги «Компьютер» автора Вон Реммена, изданного в издательстве «Universess» в 1958 г.

Приведем примеры запросов:

collection (горчаков, book) – выдает всю библиотеку Горчакова

collection (collection, book (title,_,_, 1967)) – выдает не все книги 1967 г., а конкретно их владельцев и названия. Информация об авторе и издательстве в данный момент нас не интересует.

В качестве тренировки предлагается создать базу данных для четырех коллекционеров и записать вопросы:

Кому принадлежит книга?

Каковы названия книг, опубликованных после какого-то года, например, 1968.


Дата добавления: 2015-09-06; просмотров: 428 | Нарушение авторских прав


Читайте в этой же книге: Линейная модель работы ИПС. | Понятие синтагматических цепей. | Понятие семантической сети. | Задача поиска кратчайшего обхода образца в семантической сети. | Понятие о логическом выводе на семантических сетях. | Базовая искусственная модель | Применение нейронных сетей | Элементы теории формальных языков | Элементы семиотики | Модель непосредственных составляющих |
<== предыдущая страница | следующая страница ==>
Расширенные сети переходов| Пакет Turbo Prolog

mybiblioteka.su - 2015-2024 год. (0.011 сек.)