NLTK Benannte Entitätserkennung für eine Python-Liste

8

Ich habe NLTKs ne_chunk verwendet, um benannte Entitäten aus einem Text zu extrahieren:

%Vor%

Aber ich kann nicht herausfinden, wie diese Entitäten in einer Liste gespeichert werden? Z.B. -

%Vor%

Danke.

    
Zlo 05.08.2015, 14:58
quelle

6 Antworten

18

nltk.ne_chunk gibt ein verschachteltes nltk.tree.Tree -Objekt zurück, so dass Sie das Objekt Tree durchlaufen müssen, um zu den NEs zu gelangen.

Sehen Sie sich Benannte Entitätserkennung mit regulärem Ausdruck an: NLTK

%Vor%     
alvas 05.08.2015, 16:46
quelle
4

Da Sie einen tree als Rückgabewert erhalten, sollten Sie diese auswählen Teilbäume, die mit NE

gekennzeichnet sind

Hier ist ein einfaches Beispiel, um alle in einer Liste zu sammeln:

%Vor%

Dies ergibt:

%Vor%

oder als Liste von Listen:

%Vor%

Siehe auch: Wie navigiert man in einem nltk.tree.Tree?

    
b3000 05.08.2015 15:50
quelle
3

Sie können auch die label jeder Namensentität im Text mit diesem Code extrahieren:

%Vor%

Ausgabe:

%Vor%

Sie können Washington , New York und Brooklyn anzeigen. GPE bedeutet geopolitische Einheiten

und Loretta E. Lynch sind PERSON

    
imanzabet 16.08.2017 03:15
quelle
2

A Tree ist eine Liste. Chunks sind Teilbäume, nicht-chunked Wörter sind reguläre Strings. Gehen wir also die Liste runter, extrahieren Sie die Wörter aus jedem Block und verbinden Sie sie.

%Vor%     
alexis 31.05.2017 20:45
quelle
1

benutze tree2conlltags von nltk.chunk. Auch ne_chunk benötigt ein pos-tagging welches Word-Token markiert (benötigt also word_tokenize).

%Vor%

Damit erhalten Sie eine Liste von Tupeln: [(token, pos_tag, name_entity_tag)] Wenn diese Liste nicht genau das ist, was Sie wollen, ist es sicherlich einfacher, die Liste, die Sie wollen, aus dieser Liste als Nltk-Baum zu analysieren.

Code und Details aus diesem Link ; Weitere Informationen finden Sie unter

Bearbeiten Ausgabedokumentation wurde hinzugefügt

    
elwhite 12.02.2018 01:30
quelle
0

Sie können auch Spacy in Erwägung ziehen:

%Vor%     
Nicolas Joseph Scozzaro 16.03.2018 18:40
quelle