У меня есть пример предложения. "Открой дверь." что я разобрал предложение, чтобы получить результат синтаксического разбора в виде скобок, как показано ниже.Как извлечь правила грамматики, заданные в квадратных скобках?
(S (VP (VB открыть) (НП (Д.Т.) (НН двери))) (..))
мне нужно извлечь правила грамматики CFG, которые производят разобранную выход , я могу вручную записывать их как таковые:
grammar = CFG.fromstring("""
S -> VP NP
NP -> Det N
VP -> V
Det ->'the '
N -> 'door'
V -> 'Open'
""")
Но это отнимает много времени, как я произвожу правила грамматики, данные заключенные в квадратных скобках анализируются автоматически?
Пожалуйста, отредактируйте свой вопрос, чтобы уточнить, что вам нужно: в первом предложении вам нужна форма в скобках, вторая предполагает, что вы хотите вывести части базовой грамматики, которые были выпущены для этого предложения. – lenz
Здесь может быть некоторая путаница, судя по тому, что вы последовательно набираете «formstring» вместо «fromstring». Формат, который вы ищете, не является деревом разбора, а скорее спецификацией грамматики (это один из входных данных парсера, а не его вывод). Поэтому я сомневаюсь, что это уже есть автоматическое решение. – lenz
Да, я исправил путаницу. Это из строки. Я понимаю, что это грамматическая спецификация, которая используется для ввода. Есть ли способ создать такую спецификацию с учетом дерева синтаксического анализа? Это сэкономит мне время и силы. Не только NLTK, но и любым другим способом. Если такого готового решения не существует; Можно ли создать его? –