Распознаватель Earley для парсера Earley - PullRequest
6 голосов
/ 05 января 2011

Мне удалось создать распознаватель Earley, все отлично работает. У меня есть все правильные ситуации. Но я могу использовать его только для того, чтобы решить, принято ли слово грамматикой. Как сделать это для разбора? Мне нужна статья или объяснение, кажется, мне нужно создавать ассоциации с ситуациями, которые создают новые ситуации. Любая помощь будет оценена.

Моя реализация основана именно на: http://www.cs.uvic.ca/~nigelh/Publications/PracticalEarleyParsing.pdf

Ответы [ 2 ]

2 голосов
/ 12 октября 2014

Разобрать генерацию леса от распознавателей Earley сложно.Есть статья «Распознавание не разбирается - разбор в стиле SPPF от кубических распознавателей», в котором объясняется, что версия синтаксического анализатора Эрли неверна, а затем показано, как генерировать леса синтаксического анализа из распознавателей Эрли.

http://www.sciencedirect.com/science/article/pii/S0167642309000951

1 голос
/ 05 января 2011

Всякий раз, когда вы делаете вывод, следите за тем, откуда вы пришли, т.е.какие предметы использовались для формирования нового предмета.Затем можно найти лес синтаксического анализа, исследуя верхний элемент, охватывающий весь ввод.Если вы анализируете неоднозначные грамматики, вы должны также рассмотреть возможность упаковки неоднозначности, т.е.не рекомбинируйте (локально) эквивалентные анализы вместе.

Я действительно рекомендую превосходную книгу Клааса Сиккеля "Парсинг схемы" для теоретической стороны вещей.

...