NLTK:将生产规则添加到现有语法中

时间:2018-01-04 12:38:18

标签: python parsing nltk

我正在从文件中读取我的FCFG语法,并希望在运行时向该语法添加更多生产规则。我总是可以用语法表达我的语法,并结合新的规则,但我正在寻找更优雅的东西,比如

grammar.add_rule.fromstring('PropN -> David')

如何(如果可能的话)可以使用nltk完成。感谢。

1 个答案:

答案 0 :(得分:2)

您可以使用nltk的Production类来创建新作品并将其附加到规则列表中。

lhs = nltk.grammar.Nonterminal('PropN')
rhs = nltk.grammar.Nonterminal('David')
new_production = nltk.grammar.Production(lhs, [rhs])
rules = grammar.productions()
rules.append(new_production)