Named Entity Recognition (NER) ist der Prozess der Identifizierung bestimmter Wortgruppen, die gemeinsame semantische Merkmale aufweisen. Nehmen wir zum Beispiel die Namen von Organisationen. Sie mögen oberflächliche Unterschiede in ihrem Aussehen aufweisen, vermitteln aber alle die gleiche Art von Information. Außerdem treten sie in der Regel in vergleichbaren Kontexten auf. Dasselbe gilt für Personennamen, Orte oder Zeitangaben.
Die Suche nach dieser Art von Informationen trägt zur Verbesserung der Suchergebnisse und der Klassifizierung von Dokumenten bei. Sie ist auch der Grundstein für andere Techniken der natürlichen Sprachverarbeitung (NLP), wie z. B. die Disambiguierung von benannten Entitäten (Named Entity Disambiguation), bei der es darum geht, verschiedene Vorkommen mit derselben Entität zu verknüpfen. So würden beispielsweise "Mr. Page", "L. Page" oder "Page, Larry" alle auf dieselbe kanonische Entität, "Larry Page", verweisen.
NER wird manchmal als ein gelöstes Problem betrachtet. Zumindest können wir sagen, dass gut trainierte Systeme in der Tat extrem hohe Punktzahlen erreichen, die fast mit der menschlichen Leistung vergleichbar sind. Die Techniken haben sich von regelbasierten Systemen über statistische Modelle wie CRFs oder Maximum Entropy bis hin zu neuronalen Netzen weiterentwickelt, wobei die Lücke zur menschlichen Effizienz stets geschlossen wurde. Warum also einen Blogeintrag darüber schreiben?
NER hat sich mehr zu einem Datenproblem als zu einem Algorithmusproblem entwickelt
Das Training einer NER-Engine erfordert geeignete und kommentierte Daten.
Die Angemessenheit bezieht sich auf den Bereich, in dem die Dokumente erstellt werden. Anwaltskanzleien produzieren andere Dokumente als medizinische Unternehmen, und diese unterscheiden sich auch von Zeitungsartikeln. Der Trainingskorpus muss zu der Art von Dokument passen, die Sie analysieren wollen.
Annotiert bezieht sich auf die Tatsache, dass benannte Entitäten in der Trainingsmenge identifiziert werden müssen, und diese Annotationen müssen zuverlässig sein, um eine gut funktionierende Maschine zu erzeugen.
Die Erstellung von Trainingssätzen ist der kostspielige Teil der Entwicklung einer NER-Engine. Sie erfordert einen beträchtlichen Anteil an menschlicher Arbeit. Wir sollten uns immer vor Augen halten, dass viele maschinelle Lernverfahren letztlich auf von Menschen zusammengestellten Daten beruhen, sei es bei der Bilderkennung, der maschinellen Übersetzung oder natürlich bei der NER.
In der akademischen Welt werden solche Trainingsdatensätze für Evaluierungskampagnen erstellt, die jedoch nicht immer für Ihren Bereich oder Ihre Sprache relevant sind. Diese Datensätze werden oft mehrere Jahre lang wiederverwendet, während die Algorithmen immer effizienter werden.
Wir haben es also eher mit einem Datenproblem als mit einem Algorithmusproblem zu tun. Algorithmen werden sich im Laufe der Zeit weiterentwickeln und verbessern, aber sie werden immer auf hochwertiges Trainingsmaterial angewiesen sein, das schwierig und kostspielig zu produzieren ist.
Die Suche nach den Nadeln im Heuhaufen
An dieser Stelle kommt die Metapher vom Heuhaufen und der unbekannten Anzahl von Nadeln ins Spiel, und wir sollten ein paar Worte darüber verlieren, wie man eine NER-Engine (oder jede andere Klassifizierungsmaschine) bewertet.
Dabei sind zwei Faktoren zu berücksichtigen: Präzision und Wiedererkennungswert. Die Präzision gibt an, ob eine Suchmaschine Nadeln effizient erkennt. Der Rückruf gibt an, ob die Maschine alle Nadeln im Heuhaufen gefunden hat.
Der Rückruf ist auch der schwierigste Teil der Herausforderung. Solange man nicht jedes einzelne Dokument im Detail untersucht, kann man nicht wissen, wie viele Nadeln es enthält.
Nehmen wir an, es gibt 100 Nadeln in Ihrem Heuhaufen. Wenn die Maschine 1 Nadel findet, beträgt ihre Genauigkeit 100 %, da sie keinen Fehler gemacht hat, aber ihre Wiedererkennung beträgt 1 %, da sie 99 Nadeln übersehen hat.
Wenn die Maschine den ganzen Heuhaufen aufnimmt, beträgt ihre Wiedererkennung 100 % - sie hat alle Nadeln gefunden -, aber ihre Genauigkeit geht gegen Null, da sie auch alles andere aufgenommen hat. Sie müssen ein Gleichgewicht zwischen diesen beiden Faktoren finden.
Um eine aussagekräftige Punktzahl zu erhalten, müssen Präzision und Recall kombiniert werden. Dazu wird das F-Measure (auch als harmonisches Mittel bezeichnet) zwischen Precision und Recall berechnet. Je höher der F-Measure ist, desto besser ist die Engine.
Die Lösung von ProcessMaker IDP
ProcessMaker IDP ist eine intelligente Content-Management-Lösung. Wir bieten innovative Lösungen für das Management unstrukturierter Daten, und NER ist Teil der größeren Kette von Machine Learning-Technologien, die wir einsetzen.
Wir müssen für jeden Kunden relevante und verlässliche Anmerkungen erstellen, und zwar zeit- und kosteneffizient. Die manuelle Kommentierung von Tausenden von Dokumenten für jeden Kunden ist keine Option.
Dabei stützen wir uns auf einen halb-überwachten Ansatz.
Wir haben Regeln für die Mustererkennung entwickelt, um Elemente in den Dokumenten abzugleichen. Regeln zur Mustererkennung sind sehr effizient bei der genauen Identifizierung von Entitäten, während sie viele mehrdeutige Entitäten auslassen. Mit anderen Worten, ihre Genauigkeit ist extrem hoch, während ihre Wiederauffindbarkeit gering ist. Um die Genauigkeit weiter zu erhöhen, werden auch Wörterbücher verwendet. Die in jedem Dokument entdeckten Entitäten werden dann wiederverwendet, um den gesamten Korpus automatisch zu annotieren.
Dies ist der überwachte Teil der Ausbildung, und zu diesem Zeitpunkt ist unsere Präzision extrem hoch.
Um den Recall zu verbessern, wird eine NER-Engine auf den mit Regeln annotierten Daten trainiert. Anschließend wird die NER mit denselben Daten erneut durchgeführt. Die von der Maschine entdeckten zusätzlichen Entitäten werden dann verwendet, um dieselben Daten erneut zu annotieren und die Maschine erneut zu trainieren, bis sie sich stabilisiert.
Dies ist der unbeaufsichtigte Teil des Trainings.
Leider können wir uns der manuellen Annotation nicht völlig entziehen. Aber anstatt einen ganzen Korpus zu annotieren, reicht es aus, nur einen kleinen Teil zu annotieren, der zu unserem Bewertungsstandard wird. Die trainierte Engine wird auf die Auswertungsmenge angewendet und die Ergebnisse mit den manuellen Annotationen verglichen. Bei verschiedenen niederländischen Korpora erreichen wir stets eine Effizienz von über 90%.
Dieser Ansatz ermöglicht es uns, NER-Engines in wenigen Stunden statt in Wochen effizient zu booten.
Der nächste Schritt
Nach der Bereitstellung ist der Lebenszyklus einer Engine noch nicht abgeschlossen. Sie wird immer noch Fehler machen oder Objekte übersehen, die neue Funktionen aufweisen.
In diesen Fällen ist das menschliche Fachwissen von unschätzbarem Wert, und die Maschinen können von diesem Feedback profitieren. Wir wollen eine bessere Zusammenarbeit zwischen Maschine und menschlichem Experten ermöglichen.
Zu diesem Zweck führen wir ProcessMaker IDP Interactive Learning ein, eine integrierte Schnittstelle, die es menschlichen Experten ermöglicht, die Ausgaben unserer Engines zu korrigieren, mit sofortigen Feedbackschleifen für NER.