spacy_ner

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

spacy_ner
Hallo ich habe ein paar Fragen bei der “Entity-Level evaluation”.

  1. wie soll eigentlich das Label in der for-loop benutzt werden?

sollen wir die train_data noch einmal so ändern, dass nur das ausgewählte Label bleibt… un dann das Modell neu trainieren… und endlich die Berechnung der Werte machen…

  1. ich verstehe nicht, wie man die werte von TP, FP, FN berechnen kann.

also mit der Methode make_bilou_df(nlp, resume) erhalten wir eigentlich eine Dataframe, deren die Länge gleich (TP + TN) ist.
aber wie kriegen wir die Werte eigentlich

Danke im voraus


gegeben ist ja folgendes:

  • für jeden Loop hat man ein eigenes Label, welches man betrachtet
  • du siehst oben wie data als eine leere Liste initialisiert wird, und bei jedem Loop wird eine Zeile (für das spätere dataframe/df) (eine row == ein Label) wird eine row an precision,recall und f1 berechnet und [m]append()[/m] aufgerufen
  • für jeden Loop sehe ich mir nur die Tokens an, die meinem Label entsprechen…
    row = [precision,recall,f1]
    data.append(row

bei mir sieht der dataframe so aus (werte bei jedem anders):

Ich denke nicht. Ich würde den dataframe filtern bzw. neue anlegen und die Anzahl der übrigen Zeilen als tp, fp und fn ansehen. Und dann die Formeln aus der verlinkten Webste hernehmen und die entsprechenden Metriken berechnen…

eh, die länge ist nur TP + TN wenn du perfekt klassifiziert hast (also kene FP, FN). also 100%. bezweifle ich stark…