Смекни!
smekni.com

Зв'язок нейронних мереж з штучним інтелектом (стр. 5 из 7)

Хто любить мері?

любить (Х, мері)

відповідь X = джон

X конкретизована значенням Джон

Хто є тим, кого любить джон?

любить (джон, X)

відповідь X = мері

Хто кого любить?

любить (Х, V)

відповідь X = джон, У = мері

Правила виражаються за допомогою зворотної нотації у формі "умова якщо умова", в протилежність прямій нотації "якщо умова, то умова". Наприклад

дядько (Х, У): - батько (Z. У), брат (Z, X).

Символ ": - " використовується замість ЯКЩО, а символ ","замість І. Таким чином вказане правило стверджує, що

X є дядько У, якщо Zє батько У і брат є X.

Приклад конкретизації цього правила показаний на мал.3.

Брат Джон


Девід

Дядько

Батько

Малкольм

дядько (джон, малкольм): - батько (девід, малкольм), брат (девід, джон).

Мал.3. Правило мови Prolog, конкретизоване семантичним уявленням, показаним у вигляді діаграми


Змінна є локальною по відношенню до виразу (тобто факту або правила): змінна з одним і тим же ім'ям, що з'являється в двох різних правилах, інтерпретуватиметься в мові Prolog якщо має різні імена.

Робота Prolog побудована на уніфікації. Коли Prolog намагається довести твердження, шукається перший вираз, що дає збіг. Для збігу двох виразів вони повинні:

мати одне і те ж відношення;

мати однакове число аргументів;

давати збіг по кожному аргументу.

Порівняння аргументів визначається таким чином.

1. Константи: дві константи дають збіг, якщо вони є ідентичними рядками.

2. Константа і змінна: якщо змінна не конкретизована, то вона даватиме збіг з будь-якою константою і буде конкретизована цією константою; конкретизована змінна даватиме збіг з константою у відповідності с п.1.

3. Змінні: дві довільні змінні (не конкретизовані) завжди дають збіг, а якщо надалі одна змінна стає конкретизованою деякою константою, то інша змінна також буде конкретизована тією ж константою.

Приклади збігів показані в табл.6

Таблиця 6. Порівняння зразків в мові Prolog
Вираз 1 Вираз 2 Збіг
любить (Х, Мері) любить (Джон, Мері) так
любить (Джон, X) любить (Джон, Мері) X = Мері
любить (Джон, Мері) подобається (Джон, Мері) Немає
любить (Х, У) любить (Джон, Мері) X = Джон У = Мері
любить (Джон, Мері) любить (Х, X) Немає
любить (Х, Мері) іX = Джон любить (У, Мері) У = X = Джон
штовхає (Джон, Кріс) штовхає (Джон, Кріс, рука) Немає

Приклад 2.

Нижче приведена програма на мові Prolog. Поясніть, як відповість Prolog на запит

? - дядько (джон, X)

де "? - " є запрошенням Prolog. Лістинг програми наступний.

1 батько (девід, малкольм).

2 дядько (грехим, малкольм).

3 брат (девід, джон).

4 дядько (Х, Y): - батько (г,Y), брат (Z, X).

Номери рядків показані для зручності.

Розвязання 2.

Prolog шукатиме вираз з предикатом "дядько" і двома аргументами. Перший такий вираз знаходиться в рядку 2, але збігу не спостерігається, оскільки перший аргумент "Грехим" не відповідає аргументу "Джон". Другий вираз, що містить "дядько", знаходиться в рядку 4, але для того, щоб Prolog "досяг успіху" в досягненні мети (метою є показати, що Джон є чийсь дядько), повинна досягнути задоволена права сторона виразу: повинна збігатися з виразом - батько (Z, Y) і брат (Z, X). X в запиті і X в правилі вважаються різними, так що ми маємо наступне:

Запит: дядько (джон, X1) повинен порівнюватися з дядько (Х2, Y), що є лівою частиною правила в рядку 4. Збіг виходить для Х2 = Джон і Y = Х1 (або Х1=Y). Тепер завдання є доказом батько (Z, X1) і брат (Z, Джон). Батько (Z, X1) співпадає з рядком 1 при Z = Девід і X1 = Малкольм. Тепер завдання є виконане і задовольняє рядок 3.

Prolog відповість що X = Малкольм.

4. Розуміння мови

Для людей спілкування за допомогою звичайної розмовної мови є, очевидно, нескладним завданням, а ось всі комп'ютерні системи, що моделюють цей процес, до цих пір мають можливості, істотно поступливі можливостям звичайного першокласника. Створені системи (тобто машинні моделі) розуміння мови, що довели свою виняткову практичну користь. Наприклад, можна побудувати комп'ютеризовану систему замовлення авіаквитків, яка буде вести діалог з користувачем на звичайній мові, така система правильно відповідатиме на більшість питань користувача. Необхідність в наявності систем розуміння мови стає очевидною, якщо пригадати про можливості, що виникають у зв'язку з прискоренням розвитку засобів телекомунікацій. Все більш звичними стають електронні банківські розрахунки в інтерактивному режимі, і постійно росте інтерес до розробки автоматизованих агентів, здатних здійснювати пошук і аналізувати величезні об'єми даних в Інтернеті. Проте всі такі застосування мають досить вузькі області застосування. Обмеження області застосування дозволяє понизити рівень складності розробки за рахунок скорочення розміру словника і спрощення завдання розуміння сенсу запиту. І хоча число вузькоспеціальних застосувань для розпізнання розмовної мови за останні декілька років помітно виросло, ми все ще не можемо сказати, коли ж машинні можливості розуміння мови наблизяться до того рівня розуміння, на якому знаходиться людина. Розмовна мова є дуже виразною формою комунікації, що ставить перед ученими і програмістами масу проблем. Декілька прикладів представлено в табл.7.

Давайте трохи поговоримо про те, як з'ясувати значення пропозиції або вирішити неоднозначність твердження, щоб підкреслити, що система розуміння мови сильно залежить від наявності в її розпорядженні великої бази даних реальних знань. Багатоваріантність виникає там, де ми не можемо бути упевнені, що наша інтерпретація ситуації виявляється правильною, але загальні знання дають нам певний ступінь упевненості, а також дають можливість міняти інтерпретацію в світлі інформації, що поступає надалі.

Таблиця 7. Деякі труднощі обробки розмовної мови

Тип проблеми Приклад Пояснення
Передача однакового сенсу за допомогою різних форм висловлювань 1. Стюарт розбив вазу2. Ваза була розбита Стюартом (1) виражено в активній формі(2) є пасивною формою (1)
Роль приводу "с" 1. Незнайомка штовхнула хлопчика з дівчинкою2. Незнайомка штовхнула хлопчика з собакою У (1) привід "с" означає об'єднання тих що постраждали, тоді як в (2) привід "с" додає опис хлопчика
Багато слів мають декілька значень 1. Догляд за дитиною2. Відхід з сцени У (1)"відхід" позначає постійний нагляд і турботу, тоді як в (2)"відхід" позначає одноразову конкретну дію
Смислове узгодження слів 1. Викрадення автомобіля є небезпекою2. Викрадення автомобіля є небезпечним У (1) мається на увазі небезпека для власника, тоді як в (2) мається на увазі небезпека для злочинця
Порядок слів 1. Музей зберіг дохід2. Дохід зберіг музей У (1) може матися на увазі, що був збережений дохід, а в (2) - що був збережений музей

Як і у разі більшості інших складних завдань, завдання реалізації системи розуміння мови на комп'ютері розбивається на декілька рівнів. Трьома рівнями, що розглядаються в дискусіях, присвячених системам розуміння мови, є синтаксичний рівень, семантичний рівень і прагматичний рівень. Синтаксичний рівень стосується того, як слова об'єднуються в структури, які називаються виразами, і як вирази об'єднуються в структури, які звуться пропозиціями. Для перевірки того, чи є деяка пропозиція допустимою (тобто граматично правильним) і для розбиття пропозиції на складові частини, зазвичай використовуються правила граматики. Семантичний і прагматичний рівні стосуються значення пропозицій. На семантичному рівні виділяється зміст (суть пропозиції), і для виразу змісту часто використовуються певні логічні форми. Наприклад, пропозиції

Джон ударив по м'ячу.

Чи ударив Джон по м'ячу?

мають один і той же зміст, який в мові Prologможе бути представлене у вигляді:

ударив (Джон, м'яч).

Маючи можливість автоматизувати синтаксичний і семантичний аналіз, ми можемо затверджувати:

Джон ударив по м'ячу. ударив (Джон, м'яч)

Потім ми можемо запитати:

Хто ударив по м'ячу? ударив (Х, м'яч)

По чому ударив Джон? ударив (Джон, X)

Хто по чому ударив? ударив (Х, Y)

Прагматичний аналіз стосується інтерпретації пропозиції в контексті. Так, питання про інтерпретацію займенника "Він" в пропозиції він забив гол може бути вирішений тільки в контексті (тобто з використанням сусідніх пропозицій). Щоб відповісти на питання "Хто забив гол?", ми повинні вирішити, на кого саме указує займенник "Він".

Пропозиція.

Чи можете ви приготувати чай?

Часто означає прохання приготувати чай, але може мати і буквальний сенс: "Чи умієте ви готувати чай?". Контекст також використовується для того, щоб обмежити сенс певних слів. Слово "любити" в буденному використанні має сенс, що виражається у формі

любить (людина, об'єкт).

Цей сенс також мають такі подібні вирази як: "Джон любить Мері", "Джон любить роботу" і "Джон любить шоколад".

У контексті відносин між людьми "любить" може бути обмежено формою любить (людина, людина),і в цьому сенсі ми можемо припускати, що "Венера" ввиразі - любить (джон, венера) є ім'ям жінки, а не назвою планети. В даному випадку обмеження вирішує потенційну неоднозначність тим часом, що може позначати "Венера" - ім'я людини або назва планети. Давайте тепер коротко розглянемо сам процес синтаксичного і семантичного аналізу.