Алгоритми синтаксичного аналізу вивчалися достатньо інтенсивно, оскільки синтаксичний аналіз є основою багатьох обчислювальних систем, тобто компіляція програм або перевірка синтаксису запиту до бази даних. Запропонований тут приклад пропозиції виглядає тривіальним, але будь-яка реальна система розуміння мови використовує складнішу граматику, що дозволяє розуміти, наприклад, узгодження множини і часів.
Цикл
Робоча пам'ять
Множина суперечностей
Вибране правило
0
Т, W, Р
3,4
3
1
Т, W, Р, Q
4
2
Т, W, Р, Q, S
2, 3,4
Т,W, Р, Q, S, R
1,2,3,4
Т,W, Р,Q, S, R мета
Зупинка
Р /\ Q /\ R => мета
S=>R
T/\W=>Q
T=>S
Використовуйте правила виведення логіки висловів, щоб довести мету.
4.
S > NP VP|NPV
NP>D AP|D N|NP PP
PP> P NP
VP>VNP|V PP
AP>A AP|A N
Використовуючи цю граматику, побудуйте дерево синтаксичного аналізу для:
(а)"The little dog barked" (маленький собака загавкав);
(б)"The horse jumped over the fence" (кінь перестрибнув через огорожу).
5. Випишіть стани пошуку, що генеруються в ході синтаксичного аналізу пропозицій з вправи 4.
6. Як потрібно змінити граматику з вправи 4, щоб пропозиція "John found the book" (Джон знайшов книгу) виявилася допустимою?
7. Є база даних Prolog:
Я частина (закрилок, крило) частина (елерон, крило) частина (крило, літак)
Перефразовуйте наступні питання і покажіть, як Prolog відповість на них.
(а) частина (закрилок. крило).
(б) частина (крило, X).
(в) частина (Х, крило).
8. Припустимо, що до коду Prolog з вправи 7 додається частина
(Х. Y): - частина (Z, Y), частина (X, Z)
(а) Як програма відповість на частину (закрилок, літак)? Трасуйте відповідний процес порівняння.
(б) Чи не бачите ви яких-небудь потенційних проблем, які можуть виникнути з вказаним вище правилом?
Страницы: 1, 2, 3, 4, 5