NLTK – La gramática de trozos no lee comas

from nltk.chunk.util import tagstr2tree from nltk import word_tokenize, pos_tag text = "John Rose Center is very beautiful place and i want to go there with Barbara Palvin. Also there are stores like Adidas ,Nike ,Reebok Center." tagged_text = pos_tag(text.split()) grammar = "NP:{+}" cp = nltk.RegexpParser(grammar) result = cp.parse(tagged_text) print(result) 

Salida:

 (S (NP John/NNP Rose/NNP Center/NNP) is/VBZ very/RB beautiful/JJ place/NN and/CC i/NN want/VBP to/TO go/VB there/RB with/IN (NP Barbara/NNP Palvin./NNP) Also/RB there/EX are/VBP stores/NNS like/IN (NP Adidas/NNP ,Nike/NNP ,Reebok/NNP Center./NNP)) 

La gramática que uso para fragmentar solo funciona en las tags nnp, pero si las palabras son secuenciales con comas, seguirán en la misma línea. Quiero mi fragmento como este:

 (S (NP John/NNP Rose/NNP Center/NNP) is/VBZ very/RB beautiful/JJ place/NN and/CC i/NN want/VBP to/TO go/VB there/RB with/IN (NP Barbara/NNP Palvin./NNP) Also/RB there/EX are/VBP stores/NNS like/IN (NP Adidas,/NNP) (NP Nike,/NNP) (NP Reebok/NNP Center./NNP)) 

¿Qué debo escribir en la “gramática =” o puedo editar la salida como escribí anteriormente? Como puede ver, solo analizo los nombres propios de los proyectos de la entidad nombrada que me ayudan.

Use word_tokenize(string) lugar de string.split() :

 >>> import nltk >>> from nltk.chunk.util import tagstr2tree >>> from nltk import word_tokenize, pos_tag >>> text = "John Rose Center is very beautiful place and i want to go there with Barbara Palvin. Also there are stores like Adidas ,Nike ,Reebok Center." >>> tagged_text = pos_tag(word_tokenize(text)) >>> >>> grammar = "NP:{+}" >>> >>> cp = nltk.RegexpParser(grammar) >>> result = cp.parse(tagged_text) >>> >>> print(result) (S (NP John/NNP Rose/NNP Center/NNP) is/VBZ very/RB beautiful/JJ place/NN and/CC i/NN want/VBP to/TO go/VB there/RB with/IN (NP Barbara/NNP Palvin/NNP) ./. Also/RB there/EX are/VBP stores/NNS like/IN (NP Adidas/NNP) ,/, (NP Nike/NNP) ,/, (NP Reebok/NNP Center/NNP) ./.)