我正在尝试从文本文件中提取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词:后跟单词,而不是整个输出与其他标签。
答案 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()]))