NLTK分块和走结果树

Vin*_*ten 13 python text-parsing chunking nltk

我正在使用NLTK RegexpParser从标记的标记中提取noungroups和verbgroups.

如何查看生成的树只查找NP或V组的块?

from nltk.chunk import RegexpParser

grammar = '''
NP: {<DT>?<JJ>*<NN>*}
V: {<V.*>}'''
chunker = RegexpParser(grammar)
token = [] ## Some tokens from my POS tagger
chunked = chunker.parse(tokens)
print chunked

#How do I walk the tree?
#for chunk in chunked:
#    if chunk.??? == 'NP':
#         print chunk
Run Code Online (Sandbox Code Playgroud)

(/ IN(NP载体/ NN)用于/ IN组织/ JJ和/ CC细胞培养/ JJ用于/ IN(NP/DT制备/ NN)/ IN(NP植入物/ NNS)和/ CC(NP植入物)/NN)(V包含/ VBG)(NP/DT载波/ NN)./.)

Sav*_*era 13

这应该工作:

for n in chunked:
    if isinstance(n, nltk.tree.Tree):               
        if n.label() == 'NP':
            do_something_with_subtree(n)
        else:
            do_something_with_leaf(n)
Run Code Online (Sandbox Code Playgroud)

  • 你很受欢迎:)仅供参考,如果他们解决了你的问题,你可以"接受"答案:) http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work (7认同)