Extrahieren Sie die Liste der Personen und Organisationen, die Stanford NER Tagger in NLTK verwenden.

Ich versuche, mit dem Stanford Named Entity Recognizer (NER) in Python NLTK eine Liste von Personen und Organisationen zu extrahieren. Wenn ich renne:

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) 

die Ausgabe ist:

[('Rami', 'PERSON'), ('Eid', 'PERSON'), ('is', 'O'), ('studying', 'O'),
('at', 'O'), ('Stony', 'ORGANIZATION'), ('Brook', 'ORGANIZATION'),
('University', 'ORGANIZATION'), ('in', 'O'), ('NY', 'LOCATION')]

Ich möchte aus dieser Liste alle Personen und Organisationen in dieser Form extrahieren:

Rami Eid
Sony Brook University

Ich habe versucht, die Liste der Tupel zu durchlaufen:

for x,y in i:
        if y == 'ORGANIZATION':
            print(x)

Aber dieser Code gibt nur eine Entität pro Zeile aus:

Sony 
Brook 
University

Bei realen Daten kann es mehr als eine Organisation geben, Personen in einem Satz. Wie kann ich die Grenzen zwischen verschiedenen Entitäten setzen?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage