打印NP chunked words

时间:2017-10-02 12:15:08

标签: python nltk

我正在尝试从文本文件中提取NP块。我已经完成了。但是我想单独打印那些NP块。我怎么能这样做。

import nltk
from nltk.tokenize import sent_tokenize
from nltk.tokenize import word_tokenize
file =open("l2.txt","r")
text=file.read()
tokenized_words = word_tokenize(text)
pos_list=nltk.pos_tag(tokenized_words)
grammar = "NP : {<JJ|JJR|JJS> *(<NNP> + <POS> *)?<NN|NNS|NNP|NNPS>+}"
cp = nltk.RegexpParser(grammar)
result = cp.parse(pos_list)
print(result)

这是我的代码。我希望输出像 NP词:后跟单词,而不是整个输出与其他标签。

1 个答案:

答案 0 :(得分:0)

代码末尾的以下行应该可以解决问题:

for r in result:
    if type(r) == nltk.tree.Tree:
        if r.label() == 'NP':
            print('NP:', ' '.join([x[0] for x in r.leaves()]))