Метод нормальної форми Хомського: наслідки виконання парсерів CYK?


9

Аналізатори діаграм можуть бути реалізовані на основі нормальної форми Хомського або безпосередньо на основі виробничих правил. На даний момент припустимо, що у нас є аналізатор діаграм CYK, який використовує нормальну форму Хомського. Бінаризація не визначена однозначно. Чи впливає це на ефективність розбору діаграм CYK Чи можна це використовувати для покращення продуктивності аналізатора діаграм CYK?


Підходи створюють граматики однакового розміру, чи не так? CYK завжди заповнює повну таблицю, тому ви можете лише пришвидшити перевірку "Чи є відповідне правило?". Тому я б очікував, що вплив має лише кількість підрахунків, а не граматична структура.
Рафаель

Метод, використовуваний для бінаризації, також впливає на розмір граматики, що впливає на продуктивність CYK: informatica-didactica.de/cmsmadesimple/… обговорює деякі альтернативи CNF
Max

Відповіді:


6

Хоча очевидна відповідь полягає в тому, що основна складність не може змінитися, можуть бути кращі або гірші алгоритми розбору рядків, з якими ви насправді збираєтеся зіткнутися. Однак, схоже, що проблема полягає в меншій відносній частоті окремих граматичних випусків (запитання A, B і C в питанні) і більше питання про невикористані, тупикові синтаксиси, які може скласти одна бінаризація проти іншої.

Трохи пошуків я знайшов кращу бінаризацію для CKY Parsing (Song, Ding та Lin, EMNLP 2008), яка, здається, остаточно зробить висновок, що ви можете вибрати "кращу" або "гіршу" бінаризацію щодо рядків, яких ви насправді очікуєте щоб розібратися. Їх назва для "тупикових синтаксисів", які можна було б сподіватися мінімізувати на практиці, видається неповними складовими , і на першій сторінці є хороший приклад.


Розглянемо граматику, включаючи твори (S -> ABC) (T -> ABD). Якщо "BC" завжди передує "A", але "AB" іноді не супроводжується "C", якщо поєднувати B і C, буде менше тупиків, а відносна частота не має значення. Ваша думка про "мало" та "багато" має сенс, якщо слова з'являються навмання, але те, що я думаю, що Song, Ding та Lin роблять, - це використання частоти ngram, яка є дещо складнішою. Вони також вказують, що, на моєму прикладі, ви все одно можете виграти з бінаризацією "AB", використовуючи спільний доступ!
Роб Сіммонс

4

Власне, нормальній формі Хомського (CNF) не потрібно запускати CYK, а лише бінаризацію. Бінаризація має важливе значення для збереження кубічної складності синтаксичного розбору, хоча це важливо лише стосовно нетерміналів (NT). Але тоді, якщо у вас є правила, що включають лише 2 нетермінали та деякі термінали, алгоритм CYK стає складнішим для програмування та пояснення.

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

X -> B C D
Y -> B C E 

можуть бути бінарнізовані як

X -> Z D
Y -> Z E
Z -> B C

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

Але з іншими правилами ви можете скористатись фактом кінця правил, а не початку.

Я не знайомий з роботою Пісні, Дінга та Ліна , про яку йдеться у відповіді Роб Сіммонс . Ідея цікава, але мені цікаво, наскільки ефективно її можна порівняти з іншими способами оптимізації обчислень. Я не дуже боюся.

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

CYK - це лише одна з найпростіших варіацій сімейства алгоритмів, які, мабуть, побудовані на одній і тій же динамічній моделі програмування. Я кажу, мабуть, тому що найпростіша версія цих алгоритмів відома не як динамічне програмування, а як крос-продукт. Саме стара конструкція граматики CF CF породжує перетин мови граматики CF F та звичайної мови FSA A. завдяки Бар Гіллелу, Перлесу та Шаміру (1961) , як зауважив Ланг у 1995 році .

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

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

У таких алгоритмах, як аналізатор GLR (щоб назвати один з більш відомих, хоча опублікована недосконала версія), є деякі знання зверху вниз, які дозволять уникнути багатьох таких марних обчислень, можливо, за вартістю. І є багато інших варіантів з різною поведінкою щодо економії на марних обчисленнях.

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

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

Деякі з цих питань обговорюються в літературі. Наприклад, Білло та Ланг аналізують деякі аспекти бінаризації щодо стратегій розбору.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.