Я очень новичок в мире ANTLR, и я пытаюсь понять, как я могу использовать этот инструмент синтаксического анализа для интерпретации набора "шумных" строк.Чего я хотел бы добиться, так это следующего.
давайте возьмем для примера эту фразу: It's 10PM and the Lazy CAT is currently SLEEPING heavily on the SOFA in front of the TV
Что я хотел бы извлечь, это CAT
, SLEEPING
и SOFA
и иметь грамматику, которая легко соответствует следующему шаблону: SUBJECT - VERB - INDIRECT OBJECT ... где я мог бы определить
VERB : 'SLEEPING' | 'WALKING';
SUBJECT : 'CAT'|'DOG'|'BIRD';
INDIRECT_OBJECT : 'CAR'| 'SOFA';
и т. Д. Я не хочузаканчивается постоянным «NoViableException», так как я не могу описать все возможности, связанные с языковой структурой.Я просто хочу разорвать бесполезные слова и просто оставить те, которые интересны.
Это больше похоже на то, как если бы у меня был токенизатор и я спросил парсера: «Хорошо, читайте поток, пока не найдете объект, затем проигнорируйтеотдохните, пока не найдете VERB и т. д. "
Мне нужно извлечь организованную структуру из неорганизованного набора ... Например, я хотел бы иметь возможность интерпретировать (я не осуждаюуместность этого совершенно простого и неправильного представления о «грамматике английского языка»)
SUBJECT - VERB - INDIRECT OBJECT
INDIRECT OBJECT - SUBJECT - VERB
, поэтому я буду разбирать предложения типа
It's 10PM and the Lazy CAT is currently SLEEPING heavily on the SOFA in front of the TV
или
It's 10PM and, on the SOFA in front of the TV, the Lazy CAT is currently SLEEPING heavily