def extract_np(psent):
    for subtree in psent.subtrees():
        if subtree.node == 'NP':
            yield ' '.join(word for word, tag in subtree.leaves())
cp = nltk.RegexpParser(grammar)
parsed_sent = cp.parse(tagged_sent)
for npstr in extract_np(parsed_sent):
    pass
NLTK: Как пройти по фразе существительного, чтобы вернуть список строк?