2017-10-02 1 views
0

J'essaie d'extraire des morceaux NP à partir d'un fichier texte.Je l'ai fait.Mais je veux imprimer ces mots tronqués NP seul.Comment puis-je le faire.Impression de mots tronqués 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) 

Ceci est mon code.I veulent la sortie comme mots NP: suivi des mots et non la production totale avec d'autres tags.

Répondre

0

Les lignes suivantes à la fin de votre code devrait faire l'affaire:

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