Extracto de la lista de personas y organizaciones que utilizan Stanford NER Tagger en NLTK
Estoy tratando de extraer una lista de personas y organizaciones que utilizan el Reconocimiento de entidad con nombre de Stanford (NER) en Python NLTK. Cuando corro:
from nltk.tag.stanford import NERTagger
st = NERTagger('/usr/share/stanford-ner/classifiers/all.3class.distsim.crf.ser.gz',
'/usr/share/stanford-ner/stanford-ner.jar')
r=st.tag('Rami Eid is studying at Stony Brook University in NY'.split())
print(r)
la salida es:
[('Rami', 'PERSON'), ('Eid', 'PERSON'), ('is', 'O'), ('studying', 'O'),
('at', 'O'), ('Stony', 'ORGANIZATION'), ('Brook', 'ORGANIZATION'),
('University', 'ORGANIZATION'), ('in', 'O'), ('NY', 'LOCATION')]
Lo que quiero es extraer de esta lista a todas las personas y organizaciones de esta forma:
Rami Eid
Sony Brook University
Traté de recorrer la lista de tuplas:
for x,y in i:
if y == 'ORGANIZATION':
print(x)
Pero este código solo imprime cada entidad una por línea:
Sony
Brook
University
Con datos reales puede haber más de una organización, personas en una oración, ¿cómo puedo poner los límites entre diferentes entidades?