Ответ 1
Теги, которые вы видите, не являются результатом кусков, а тегами POS, которые происходят до разделения. Это теги 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')])
указывает кусок.
Этот учебный сайт очень полезен для объяснения процесса chunking в NLTK: http://www.eecis.udel.edu/~trnka/CISC889-11S/lectures/dongqing-chunking.pdf.
Для официальной документации см. Http://www.nltk.org/howto/chunk.html