Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Применение деревьев синтаксического анализа для извлечения смысла




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

1. Формирование дерева синтаксического анализа заданной фразы.

2. Обработка дерева синтаксического анализа для определения смысла.



Часть II. Применение языка Prolog в области искусственного интеллекта


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

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

move(move(Step)) -> step{ Step).

move(move(Step, Move)) -> step(Step), move I Move).

step(step(up)) -> [ up].

step(step(down)) -> [ down].

Теперь определим смысл движения как расстояние между положением робота пе­ред выполнением движения и после него. Пусть каждый шаг имеет длину 1 мм в по­ложительном или отрицательном направлении. Поэтому смысл движения "up up down up" составляет 1 + 1 - 1 + 1 = 2. Расстояние перемещения (distance) в ре­зультате выполнения движения можно вычислить на основании дерева синтаксиче­ского анализа движения, как показано на рис. 21.4. Ниже приведены соответствую­щие арифметические расчеты.

distance ('up up down up') =

distance('up') + distancet'u p down up') =1 + 1 = 2

Рис. 21.4. Извлечение смысла движения как расстояния перемещения в ре­зультате его выполнения

Ниже приведена процедура, которая определяет смысл движения (как соответст­вующего расстояния перемещения) на основании дерева синтаксического анализа движения.

Ч meaning{ Ра^эеТгее, Value) r.ieaning(move (Step, Move), Dist):-

meaning) Step, Dl),

meaning! Move D2)

Глава 21. Обработка лингвистической информации с помощью грамматических правил 519


Dist is Dl + D2.

meaning! move{ Step), Dist):-meaning! Step, Dist).

meaning! step! up), 1). meaning! step(down), -1).

Этой процедурой можно воспользоваться, например, для вычисления смысла движения "up up down up" следующим образом:

?• move[ Tree, (up, up, down, up], [)), meaning[ Tree, Dist), Dist = 2

Tree = move(step (up), move(step(up), move(stept down), move) step t up)))))

Упражнение

21.4. Эта грамматика и процедура meaning могут использоваться для решения про­тивоположной задачи, т.е. для поиска движения, позволяющего переместить манипулятор робота на заданное расстояние, например, как показано ниже.?- move(Tree, Move, []), meaning(Tree, 5), Обсудите перспективы применения такого подхода.





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 414 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Победа - это еще не все, все - это постоянное желание побеждать. © Винс Ломбарди
==> читать все изречения...

4307 - | 4064 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.