Python NLTK parse tagged text:如何检索标记的tex

2024-04-20 04:15:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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标记文本,最后使用解析器生成语法树。但是解析只对标记(只有_标记)完成,我无法恢复标记的文本。

怎么做?是不是走错了路?


Tags: text标记文本parseronlyfortagtags
1条回答
网友
1楼 · 发布于 2024-04-20 04:15:00

我理解您为POS标记编写语法的动机:NLTK基于规则的解析器没有足够的空间容纳大量词汇,因为它们是不打算实际使用的教学工具。我不太确定您的解析树是什么样子的,但是如果POS标记是叶节点,您可以编辑树并将单词放回原处。在

我将首先编写一个示例树的代码,该树类似于解析器可能提供给您的内容:

mytree = nltk.Tree.fromstring("(S (DP D (AP A N)) (VP V))")

下面是如何把这些词放回原处:

^{pr2}$

相关问题 更多 >