我正在研究一个带有 Unicode 字符的非英语解析器。为此,我决定使用 NLTK。
但它需要一个预定义的上下文无关语法,如下所示:
S -> NP VP
VP -> V NP | V NP PP
PP -> P NP
V -> "saw" | "ate" | "walked"
NP -> "John" | "Mary" | "Bob" | Det N | Det N PP
Det -> "a" | "an" | "the" | "my"
N -> "man" | "dog" | "cat" | "telescope" | "park"
P -> "in" | "on" | "by" | "with"
在我的应用程序中,我应该使用基于规则的语法来最小化硬编码。例如,我可以假设任何以-ed或-ing结尾的词作为动词。所以它应该适用于任何给定的上下文。
我怎样才能将这样的语法规则提供给 NLTK?或者使用有限状态机动态生成它们?