Pro*_*ltk 3 python parsing nlp nltk context-free-grammar
我有一个例句。“开门。” 我解析了一个句子以获取括号内的解析输出,如下所示。
(S(VP(VB打开)(NP(DT the)(NN门)))(..))
我需要提取产生已解析输出的CFG语法规则。我可以这样手动将它们写出来:
grammar = CFG.fromstring("""
S -> VP NP
NP -> Det N
VP -> V
Det ->'the '
N -> 'door'
V -> 'Open'
""")
Run Code Online (Sandbox Code Playgroud)
但这很耗时,如何自动生成带括号的语法规则?
您可以使用Tree.productions()方法从Tree获取CFG规则。
例:
from nltk import Tree
t = Tree.fromstring("(S (VP (VB open) (NP (DT the) (NN door))) (. .))")
print t.productions()
Run Code Online (Sandbox Code Playgroud)
输出:
[S -> VP ., VP -> VB NP, VB -> 'open', NP -> DT NN, DT -> 'the',
NN -> 'door', . -> '.']
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请检查-NLTK Tree Productions