你看到的标签不是由块分割引起的,而是在分块之前进行的词性标注。这是Penn Treebank标记集,请参见https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html
>>> from nltk import word_tokenize, pos_tag, ne_chunk
>>> sent = "This is a Foo Bar sentence."
# POS tag.
>>> nltk.pos_tag(word_tokenize(sent))
[('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('Foo', 'NNP'), ('Bar', 'NNP'), ('sentence', 'NN'), ('.', '.')]
>>> tagged_sent = nltk.pos_tag(word_tokenize(sent))
# Chunk.
>>> ne_chunk(tagged_sent)
Tree('S', [('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), Tree('ORGANIZATION', [('Foo', 'NNP'), ('Bar', 'NNP')]), ('sentence', 'NN'), ('.', '.')])
为了获取块,请查找在块输出中的子树。从上面的输出中,
Tree('ORGANIZATION', [('Foo', 'NNP'), ('Bar', 'NNP')])
指示了该块。
这个教程网站对解释NLTK的块处理过程非常有帮助:
http://www.eecis.udel.edu/~trnka/CISC889-11S/lectures/dongqing-chunking.pdf。
有关官方文档,请参见
http://www.nltk.org/howto/chunk.html。