Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KL-LAB12(10).doc
Скачиваний:
22
Добавлен:
12.02.2016
Размер:
1.69 Mб
Скачать

Неоднозначність синтаксичного аналізу

На жаль, зі зростанням розміру граматики для покриття більшої кількості речень мови та зі зростанням довжини вхідних речень, швидко росте і кількість дирев розбору. Фактично ця кількість збільшується з астрономічною швидкістю.

Проведемо дослідження цієї проблеми за допомогою простого прикладу.Словоfishможе бути і іменником і дієсловом.Можна побудувати реченняfish fish fish,маючи на увазі щоfish like to fish for other fish. (Можна побудувати аналогічне речення використовуючи словоpoliceабо інші подібні слова.)Граматика для такого "fish" речення буде наступна.

 

>>> grammar = nltk.parse_cfg("""

... S -> NP V NP

... NP -> NP Sbar

... Sbar -> NP V

... NP -> 'fish'

... V -> 'fish'

... """)

Тепер спробуємо здійснити синтаксичний аналіз довшого речення,fish fish fish fish fish,яке може означати що 'fishthatotherfishfishareinthehabitoffishingfishthemselves'.Використовуючи NLTKchartparser,який буде описаний пізніше, отримуємо в результаті аналізу два дерева.

 

>>> tokens = ["fish"] * 5

>>> cp = nltk.ChartParser(grammar)

>>> for tree in cp.nbest_parse(tokens):

... print tree

(S (NP (NP fish) (Sbar (NP fish) (V fish))) (V fish) (NP fish))

(S (NP fish) (V fish) (NP (NP fish) (Sbar (NP fish) (V fish))))

Якщо довжина цього речення буде зростати(3, 5, 7, ...)то в результаті аналізу будуть отримані наступні кількості дерев розбору: 1; 2; 5; 14; 42; 132; 429; 1,430; 4,862; 16,796; 58,786; 208,012; ... (Це так звані Числа Каталана.Останнє з них відповідає реченню, яке складається з 23 слів,і це середня довжина речення в частині WSJкорпусаPennTreebank.Для речень довжиною 50можна отримати більше 1012дерев, а це довжина тільки половини речення про Pigletз попередньої лабораторної роботи і яке легко сприймається малими дітьми.Ні одна реальна система NLPне може побудувати мільйон дерев для речення і згідно контексту вибрати відповідне.Зрозуміло, що людина також цього зробити не може!

Потрібно зазначити, що проблема не у виборі невдалого прикладу.Згідно (Church & Patil, 1982)синтаксична неоднозначність приєднання прийменникового виразу PPв реченях подібних до наступного також призводить до зростання в пропорції чисел Каталана.

(18)

Put the block in the box on the table.

В згаданих вище прикладах розглядається структурна неоднозначність але мові властива і лексична неоднозначність.При створенні граматики, її лексична частина містить багато неоднозначностей слів по відношенню до їх приналежності до частин мови. В просих граматиках ,aце однозначно означальне слово,dog- іменник,і runs- дієслово.В більшій граматиці,aтакож може бути і іменником(e.g.part a),dog- дієсловом,іruns- іменником(e.g.ski runs).Фактично всі слова можуть бути також і власними назвами.Синтакчиний аналізатор працюючи з такою граматикою не зможе розв’язати ці всі неоднозначності. Навіть дивні послідовності слів такі, як e.g. the a are of I мають зміст. Таку (Klavans & Resnik, 1996)вказано що це не просто випадкова послідовність слів а граматично правильний іменниковий вираз,у якомуare– іменник у значенні сотої частини гектара(або100квадратних метрів),іaта I– іменники для позначення координат, як показано на рисунку.

Рис 4. "The a are of I".

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]