Ich benutze mehrere NER-Tools, um die Named Entities in einem Korpus zu extrahieren und ich möchte ihre Genauigkeit mit dem NLTK Python-Modul testen.Wie berechnet man die Genauigkeit des NER-Systems?
Einige der Werkzeuge, die ich verwendet habe, sind:
NTLK
Stanford NER: https://nlp.stanford.edu/software/CRF-NER.shtml
MeaningCloud: https://www.meaningcloud.com/products/topics-extraction
Um das zu erhalten, System Genauigkeit, NLTK accuracy
Funktion nimmt zwei Argumente: das korrekt annotierte Dataset (enthält alle Token im Korpus zusammen mit ihrer Klassifikation (PERSON, LOCATION, ORGANIZATION oder 'O' [was bedeutet, dass das Token keine benannte Entität ist]) und die Ausgabe des NER-System.
Dies ist in Ordnung, wenn der NER eine Liste aller Token mit ihrer Klassifizierung zurückgibt. Einige Tools wie MeaningCloud geben jedoch nur die Klassifizierung für die benannten Entitäten zurück, die im Korpus erkannt werden. Dies macht die Genauigkeit unmöglich zu erhalten (um es zu erhalten, sollte die vollständige Liste der Wörter für den Vergleich zwischen beiden Anmerkungen zurückgegeben werden, um machbar zu sein).
Was ist der Ansatz hier dann? Was kann ich tun, um in solchen Fällen die Genauigkeit zu erhalten?