我试图通过将nltk.cfg与一堆语法产品一起使用来使用CNF语法,如:
NN -> 'rubble' | 'slope' | 'Jake'
VP -> V NP | VP PP
但它有问题(给出错误:预期箭头),生产的左侧有管道。例如:
VP | <VBP-SBAR> -> VBP SBAR
nltk是否有任何语法方法,左边的管道没有问题?
如果没有,我如何将所有这些作品改为第一组的可用作品?例如:
VP -> VBP SBAR
<VBP-SBAR> -> VBP SBAR
答案 0 :(得分:1)
生产左侧有多个选项的生产规则不再是无上下文语法 - 每条规则的LHS必须只有一个非终结符。
嗯,首先,如果你可以拆分规则,它确实没有任何意义
VP | <VBP-SBAR> -> VBP SBAR
分为两个规则
VP -> VBP SBAR
<VBP-SBAR> -> VBP SBAR