Wie werden Brocken aus BIO-Chunked-Sätzen extrahiert? - Python

8

Geben Sie einen Eingabesatz ein, der BIO-Chunk-Tags :

  

[('Was', 'B-NP'), ('ist', 'B-VP'), ('das', 'B-NP'), ('Fluggeschwindigkeit',   "I-NP", ("von", "B-PP"), ("an", "B-NP"), ("unladen", "I-NP"),   ('schlucken', 'I-NP'), ('?', 'O')]

Ich müsste die relevanten Ausdrücke herausziehen, z. Wenn ich 'NP' extrahieren möchte, müsste ich die Tupelfragmente extrahieren, die B-NP und I-NP enthalten.

[out]:

%Vor%

(Hinweis: Die Zahlen in den Tupel zum Extrahieren stellen den Token-Index dar.)

Ich habe versucht, es mit dem folgenden Code zu extrahieren:

%Vor%

Aber wenn ich angrenzende Stücke desselben Typs habe:

%Vor%

Gibt Folgendes aus:

%Vor%

Anstelle des gewünschten:

%Vor%

Wie kann dies aus dem obigen Code gelöst werden?

Gibt es eine bessere Lösung, um die gewünschten Teile eines bestimmten chunk_type zu extrahieren?

Anders als anhand des obigen Codes     
alvas 01.09.2015, 13:45
quelle

3 Antworten

1
%Vor%

Ausgabe:

%Vor%     
Padraic Cunningham 04.09.2015, 11:37
quelle
2

Probieren Sie das aus, es wird alle Arten von Brocken mit den Indizes ihrer jeweiligen Wörter extrahieren.

%Vor%

Demo:

%Vor%     
Riyaz 04.09.2015 07:29
quelle
0

Ich würde es so machen:

%Vor%

Sie können es an die Verwendung von Generatoren anpassen, anstatt die gesamte Ausgabe im Speicher zu erstellen, wie ich es mache, und es für eine bessere Leistung zu reaktivieren (ich habe es eilig, so dass der Code nicht optimal ist).

Ich hoffe, es hilft!

    
maccinza 01.09.2015 14:56
quelle