我是NLTK的新成员,我想为我的一个玩具项目试验语法分析器。
下面是我使用的代码:
tokens = nltk.regexp_tokenize(test_sentence, ptrn_for_tokenizer, flags = flags )
tagged_text = regexp_tagger.tag(tokens)
only_tags = [tag for text, tag in tagged_text]
grammar = CFG.fromstring(GRAMMAR)
parser = nltk.ChartParser(grammar, trace=0)
trees = parser.parse(only_tags)
所以我用regex标记文本,然后使用其他regex标记文本,最后使用解析器生成语法树。但是解析只对标记(只有_标记)完成,我无法恢复标记的文本。
怎么做?是不是走错了路?
我理解您为POS标记编写语法的动机:NLTK基于规则的解析器没有足够的空间容纳大量词汇,因为它们是不打算实际使用的教学工具。我不太确定您的解析树是什么样子的,但是如果POS标记是叶节点,您可以编辑树并将单词放回原处。在
我将首先编写一个示例树的代码,该树类似于解析器可能提供给您的内容:
下面是如何把这些词放回原处:
^{pr2}$相关问题 更多 >
编程相关推荐