NER Modell mit GND Starthilfe trainieren

Lupe auf alter Zeitung mit deutscher Schrift. Bild von Michaił Nowa auf Pixabay.

In diesem Artikel beschäftigen wir uns mit dem Thema Named Entity Recognition. Wir trainieren ein eigenes Modell zur Erkennung von Kunst- und Kulturobjekten in unseren Erschließungsdaten und verwenden als Starthilfe die Gemeinsame Normdatei.

NER und Erschließung

Ein Arbeitsschritt bei der Erschließung ist die Erstellung von Deskriptoren, also die Identifikation von relevanten Entitäten in den zu verzeichnenden Archivalien. Dazu gehören relevante Körperschaften, Personen, Orte und Dinge. Wenn möglich, werden die identifizierten Entitäten zusätzlich mit passenden IDs aus der Gemeinsamen Normdatei (GND) versehen und somit semantisch verknüpft (Linked Data). Im Bereich des maschinellen Lernens werden diese beiden Schritte Named Entity Recognition (NER) und Named Entity Linking (NEL) genannt.

Dieser Arbeitsschritt findet in der Realität nicht unbedingt direkt bei der initialen Erfassung statt. Wir haben im Landesarchiv noch analoge Findmittel, die wir Retrodigitalisieren, und digitale Findbücher, bei der die Schlagworte (Deskriptoren) fehlen oder unvollständig sind.

In einem Experiment zur Vorbereitung eines Projektes im Kontext der Provenienzforschung testeten wir verschiedene Möglichkeiten NER zur Identifikation von beschriebenen Kunst- und Kulturobjekten in unseren Erschließungsdaten zu verwenden. 1

NER im Kontext Archiv

Named Entity Recognition gehört zu den stabilen und gern genutzten KI Verfahren zur Extraktion von Informationen. Dafür gibt es schon vortrainierte Modelle, die innerhalb eines Natural Language Processing (NLP) Frameworks wie spaCy oder flair verwendet werden können. Für unser Experiment haben wir uns für spaCy als NLP Framework entschieden, da es ein für uns passendes Ökosystem mitbringt.

Hier ein mit NER verarbeiteter Beispieltext über das Landesarchiv Baden-Württemberg, welcher von der englischsprachigen Wikipedia angepasst wurde. 2


The State Archives ORG of Baden-Württemberg ( LABW ORG ) encompasses all state archives in Baden-Württemberg GPE .
The State Archives ORG of Baden-Württemberg is part of the portfolio of the Baden-Württemberg Ministry for Science, Research and Arts FAC .
It keeps historic documents that reach back to the middle ages DATE .
The current President of the State Archives ORG of Baden-Württemberg has been Prof. Dr. Gerald Maier PERSON since February 1st, 2018 DATE .
It employs around 250 CARDINAL people at 8 CARDINAL locations.

Das Model en_core_web_lg hat generell einen f-score von 0,85 und unterscheidet 18 Arten von Entitäten: CARDINAL, DATE, EVENT, FAC, GPE, LANGUAGE, LAW, LOC, MONEY, NORP, ORDINAL, ORG, PERCENT, PERSON, PRODUCT, QUANTITY, TIME und WORK_OF_ART. 3


Farblich hervorgehoben sind die vom Modell erkannten Entitäten und leicht abgesetzt der bestimmte Entitätentyp. Der f-score besagt in diesem Fall (vereinfacht!), dass in der Evaluation des Modells, von den gesuchten Entitäten etwa 85% gefunden wurden (Recall) und von den markierten Entitäten etwa 85% richtig markiert wurden (Precision). 4 In unserem von Wikipedia angepassten Beispieltext bestätigten sich diese Werte.

Hier ein mit NER verarbeiteter Beispieltext über das Landesarchiv Baden-Württemberg, welcher von der deutschsprachigen Wikipedia angepasst wurde. 5


Das Landesarchiv Baden-Württemberg LOC (LABW) umfasst alle baden-württembergischen MISC Staatsarchive.
Es gehört zum Geschäftsbereich des Ministeriums für Wissenschaft, Forschung und Kunst Baden-Württemberg. ORG
Es verwahrt historische Dokumente, die bis zum Mittelalter zurückreichen.
Der amtierende Präsident des Landesarchives PER ist seit dem 01. Februar 2018 Prof. Dr. Gerald Maier. PER
Es beschäftigt circa 250 Mitarbeiter an 8 Standorten.

Das Model de_core_news_lg hat einen f-score von 0,85 und unterscheidet 4 Arten von Entitäten: LOC, MISC, ORG, PER. 6


Das Modell für die deutsche Sprache erkennt und unterscheidet deutlich weniger Arten von Entitäten. Das hat damit zu tun, dass es für die deutsche Sprache keine so umfangreichen und frei verfügbaren Trainingsdaten gibt. Die Qualität der Erkennung (f-score) ist mit dem des englischsprachigen Modells vergleichbar. Aus Sicht deutschsprachiger Anwender ist es jedoch frustrierend sich auf vier Arten von Entitäten beschränken zu müssen.

Wenden wir das deutschsprachige Modell auf Texte in unseren Erschließungsdaten an, so gibt es noch ein weiteres Problem. 7


Besitzhinweis auf Mobiliar (hauptsächlich gekauft bei der Möbelfirma LOC Winfried Mueller, Stuttgart PER ), 1 vollständigen Silberkasten und mindestens 4 Silber-Becher.
Zahlung von 11100 fl. samt rückständigen neunjährigen Zinsen in Höhe von 4999 fl. oder Einsetzung in das adelige Gut Werenwag.
Gen. Forderung stammt aus Streit über Erbe des im November 1595 verst. K[C]aspar (von) Laubenberg. MISC
Entzug des ordentlichen Richters und Verstoß gegen Haigerlocher Evokationsprivileg PER durch Verschleppung kläg. Sohns gen. "junger Lenz" nach Sigmaringen, wo gegen ihn Kriminalprozeß PER angestrengt wurde.

Bei unseren Texten hat das Modell praktisch einen f-score von (nahe) 0. Das ist jedoch kein Problem des spaCy Modells, sondern ein generelles Problem von NER (Domänenproblem). Das auf allgemeinen Texten trainierte Modell funktioniert wie erwartet auf Wikipedia Texten, hat jedoch Probleme mit der speziellen Domäne der “Erschließungsdaten im LABW”.

Das bedeutet, dass wir für die meisten unserer Probleme keine vortrainierten Modelle verwenden können, sondern Modelle speziell für unsere Anwendungszwecke neu erstellen oder nachtrainieren müssen. Das erfordert aktuell

  • Technisch versierte Personen, die Daten Pipelines und Workflows erstellen können.
  • Fachpersonal, welches die entsprechenden Trainingsdaten erstellen kann.
  • Eine Softwareumgebung zur Erstellung der Trainingsdaten.
  • Eine Hardwareumgebung zum Trainieren der Modelle.

Da dies von den meisten kulturellen Einrichtungen nicht geleistet werden kann, arbeiten mehrere NFDI Konsortien, darunter NFDI4Culture und je nach Genehmigungsstatus ab nächstem Jahr NFDI4Memory daran, mögliche Lösungen für diese Anforderungen zu entwickeln und zur Verfügung zu stellen.

Da das FDMLab explizit dafür ausgelegt ist, solche Probleme zu untersuchen und damit wertvolle Vorarbeiten zu leisten, konnten wir uns dieses Problem ansehen und exemplarisch an einer konkreten Aufgabe durcharbeiten.

Trainieren eines NER Modells

Bei der Erstellung von Trainingsdaten für unser NER Modell waren wir mit dem so genannten “Kaltstart”-Problem konfrontiert. Das bedeutet, dass wir noch keine Trainingsdaten hatten und auch keine Möglichkeit diese auf einfache Art- und Weise zu “synthetisieren”. Da wir es in unserem speziellen Fall explizit mit Kunst- und Kulturobjekten zu tun haben und es in der GND einen umfangreichen Thesaurus mit Sachschlagworten gibt, hatten wir die Idee die Sachschlagworte in der GND als erste Grundlage zu verwenden und anschließend in einem aktiven Lernverfahren den Trainingsprozess für das Fachpersonal zu vereinfachen. 8

Vorbereitungen

Wir verwenden spaCy als NLP Framework und prodigy zur Erstellung der Trainingsdaten. Damit können wir basierend auf den Begriffen aus der GND eine Sammlung von Regeln hinterlegen, die automatisch Begriffe vorauswählen. 9

Dafür müssen die Daten aus der GND erst noch extrahiert und aufbereitet werden.

GND Daten extrahieren

Wie wir die GND in ihrer Linked Open Data (LOD) Form in einen lokalen Apache Jena Server laden, haben wir bereits ausführlich beschrieben. Die Schlagworte extrahieren wir anschließend via SPARQL zusammen mit ihren Varianten und GND Sachgruppen.

PREFIX gnd: <https://d-nb.info/gnd/>
PREFIX gndo: <https://d-nb.info/standards/elementset/gnd#>
PREFIX gndCat: <https://d-nb.info/standards/vocab/gnd/gnd-sc#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT DISTINCT ?gndID (SAMPLE(?namex) AS ?name) (SAMPLE(?variantsx) as ?variants) (GROUP_CONCAT(?categoryName; SEPARATOR="|") AS ?categories)
WHERE {
  ?gndID gndo:gndSubjectCategory ?category .
  ?category skos:prefLabel ?categoryName .
  FILTER ( lang(?categoryName) = "de")
  {
    SELECT DISTINCT ?gndID (SAMPLE(?prefName) AS ?namex) (GROUP_CONCAT(?variant; SEPARATOR="|") AS ?variantsx)
    WHERE {
      VALUES ?subjectType {
        gndo:SubjectHeading
        gndo:SubjectHeadingSensoStricto
        gndo:ProductNameOrBrandName
      }
      ?gndID rdf:type ?subjectType;
             gndo:preferredNameForTheSubjectHeading ?prefName .
      OPTIONAL { ?gndID gndo:variantNameForTheSubjectHeading ?variant } .
    }
    GROUP BY ?gndID
  }
}
GROUP BY ?gndID

Bei der Abfrage beschränken wir uns auf die Typen SubjectHeading, SubjectHeadingSensoStricto und ProductNameOrBrandName. Ein Begriff kann in der GND auch mit alternativen Benennungen gelistet werden (variants). Diese sind zwar hilfreich, jedoch nicht so umfassend wie die Daten im englischsprachen WordNet oder im lizenzpflichtigen deutschsprachigen GermaNet. Ein Begriff ist einer oder mehreren Sachgruppen zugeordnet.

In der folgenden Tabelle ist das Ergebnis der SPARQL-Abfrage mit fünf Ergebnissen gezeigt.

gndIDnamevariantscategories
4300598-6Tonnelierter RaumBarrelled spaces | Espace tonneléMathematik
4207912-3Götter <Motiv>Sachliche Motive in der Kunst | Literarische Motive, Stoffe, Gestalten
7528956-8PflanzenbeobachtungPflanzen / BeobachtungBotanik (Allgemeines)
4379234-0Freiwillige SelbstkontrolleFSK | Selbstkontrolle <Publizistik>Film | Presse | Rundfunk, Neue Medien
4173231-5PapstkrönungPapst / KrönungKirchengeschichte | Geschichte überregionaler Gebiete

GND Daten aufbereiten

Die in Tabellenform extrahierten Begriffe werden anschließend in OpenRefine aufbereitet und markiert. Dafür werden die mit | getrennten Varianten und Sachgruppen in einer Record-Struktur aufgelöst, sowie Ergänzungen in Klammern (<Motiv>, (Allgemeines), …) und Hierarchiezeichen (Papst / Krönung => Papst Krönung) mit regulären Ausdrücken entfernt.

Anschließend werden drei Datensätze erstellt:

  • GND ALL: enthält alle extrahierten Begriffe und Varianten
  • GND Groups: enthält alle Begriffe und Varianten in von uns markierten Sachgruppen
  • GND Selected: enthält alle separat von uns markierte Begriffe mit ihren Varianten
Bei der Identifikation von relevanten Sachgruppen ist unser Experiment zur GND Hierarchie Visualisierung eine große Hilfe.

Für jeden Datensatz wird mit Python anschließend ein einfacher Regelsatz (Simple) und ein komplexer Regelsatz (Complex) für spaCy erstellt.

Für den einfachen Regelsatz wird eine Regel mit dem Begriff in seiner bevorzugten Schreibweise erstellt. Besteht der Begriff aus mehreren Worten, so wird zusätzlich eine Regel für eine Schreibweise mit Bindestrichen und eine Regel für eine Schreibweise ohne Bindestriche oder Leerzeichen erstellt.

Hier am Beispiel des Begriffes Ludwigsburger Porzellan:

{"label": "OBJ", "pattern": "Ludwigsburger Porzellan"}
{"label": "OBJ", "pattern": "Ludwigsburger-Porzellan"}
{"label": "OBJ", "pattern": "Ludwigsburgerporzellan"}

Damit decken wir unterschiedliche Schreibweisen für zusammengesetzte Wörter und ggf. fehlende Leerzeichen ab. Tippfehler, andere grammatikalische Formen und Synonyme werden dadurch nicht gefunden.

Für den komplexen Regelsatz wird via regulären Ausdrücken zusätzlich die Option berücksichtigt, dass es weitere mit Bindestrich verbundene Wortbestandteile geben kann (Ludwigsburger-Porzellan-Tasse) und zusätzlich die Grundform des Wortes (Lemma) als Vergleichskriterium verwendet. 10

{"label": "OBJ", "pattern": [{"LEMMA": "Ludwigsburger"}, {"LEMMA": "Porzellan"}]}
{"label": "OBJ", "pattern": [{"LEMMA": {"REGEX": "Ludwigsburger\\-Porzellan((-|\\s)\\w+)?"}}]}
{"label": "OBJ", "pattern": [{"LEMMA": {"REGEX": "Ludwigsburgerporzellan((-|\\s)\\w+)?"}}]}

Durchführung

Annotation mit Regeln und aktivem Lernen

Mit dem Regelsatz GND Selected Simple wurden 1.000 Sätze mit regelbasierter Unterstützung manuell annotiert. 11 Mit diesen wurde anschließend ein temporäres Modell trainiert, welches dabei unterstützte weitere 2.000 Sätze zu annotieren.12

Je nach verwendeter Beschreibungsform im Findbuch (Fließtext, Aufzählung, Liste, Tabelle, …) kann ein Satz zwischen 0 und mehr als 30 Entitäten enthalten.

Auf Grund von Duplikaten entstanden dadurch etwa 2.600 annotierte Sätze für das Training.

Zusätzlich wurden aus jedem der 59 untersuchten Findbüchern 2 zufällig ausgewählte Findbuchbeiträge extrahiert, wodurch ein Evaluations Datenset mit 1.677 eindeutigen Sätzen entstand. Dieses wurde von 2 Personen getrennt annotiert und anschließend die Unterschiede noch einmal besprochen und aufgelöst. 13

Das NER Modell wurde anschließend auf den Trainingsbeispielen neu trainiert und gegen das Evaluationsdatenset evaluiert. 14

Evaluation regelbasierter “Modelle”

Aus jedem der 6 Regeldatensätze wurde eine eigene spaCy Pipeline mit einer EntityRuler Komponente erstellt. 15 Diese 6 Pipelines wurden anschließend gegen das Trainings- und Evaluationsdatenset evaluiert. 16

Ergebnisse

BegriffeGruppen
GND ALL143.064(100,00%)339(100,00%)
GND Groups33.461(23,39%)27(7,96%)
GND Selected604(0,42%)80(23,60%)

Insgesamt arbeiteten wir mit 143.061 Begriffen aus der GND (Varianten nicht mitgezählt). Bei der manuellen Auswahl der Sachgruppen wurden 27 Sachgruppen als relevant markiert. Bei der manuellen Auswahl der Begriffe wurden 604 Begriffe als relevant markiert.

Die 604 manuell markierten Begriffe sind insgesamt 80 unterschiedlichen Sachgruppen zugeordnet, wobei ein Begriff mehreren Sachgruppen zugeordnet werden kann.

Es war deutlich einfacher (und schneller) die 27 relevanten Sachgruppen zu identifizieren, als die 604 relevanten Begriffe herauszusuchen. Bei beiden Ansätzen war uns klar, dass wir aus Zeitgründen keine vollständige Auswahl treffen werden, so dass wir uns in der dafür aufgewendeten Zeit einschränkten.

DatasetPrecisionRecallF1DatasetPrecisionRecallF1
GND ALL Simple0,230,370,29Complex0,190,840,31
GND Groups Simple0,330,340,34Complex0,310,760,44
GND Selected Simple0,710,190,30Complex0,690,370,48
NER OBJ0,960,940,95

Die Ergebnisse der obigen Tabelle sind in Abbildung 1 visualisiert und werden dort besprochen.

Scatterplot für Precision und Recall für die einzelnen Datensätze.
Scatterplot für Precision und Recall für die einzelnen Datensätze.

In Abbildung 1 lässt sich ablesen, dass die Verwendung der komplexen im Vergleich zu den einfachen Regeln den Recall, also den Anteil gefundener Begriffe, deutlich erhöht, wobei die Precision, also der Anteil an falsch markierten Begriffen, im Vergleich nur unwesentlich sinkt.

Es lässt sich ebenfalls ablesen, dass die Verwendung aller Begriffe in der GND (ALL) im Vergleich zur Verwendung der Begriffe ausgewählter Gruppen (Groups) den Recall erhöht, aber nicht so wesentlich, als dass es die deutlich schlechtere Precision ausgleichen könnte.

Mit einem f1-score von 0,48 erhält der Ansatz mit den ausgewählten Begriffen (Selected) den besten Wert der regelbasierten Ansätze. Mit einem f1-score von 0,95 ist das NER Modell den regelbasierten Ansätzen jedoch weit überlegen.

Diskussion

Grundsätzlich lässt sich sagen, dass sich die Idee die GND als Starthilfe für das Anlernen eines neuen NER Models zu verwenden, als erfolgreich erwiesen hat. Mit einem Recall und einer Precision über 90 Prozent könnten wir das anschließend trainierte NER Modell direkt produktiv anwenden. Auch die Verwendung der Sachbegriffe in der GND als Starthilfe hat deutlich besser funktioniert, als wir das erwartet hatten.

Ein wesentlicher Faktor, den wir bei diesem Experiment bewusst nicht erfasst haben, ist der zeitliche Aufwand für die einzelnen manuellen oder automatisierten Arbeitsschritte.

Hier machte eine genaue Erfassung in unserem Fall von daher keinen Sinn, da bei den manuellen Aufgaben ein großer Faktor der einmalige Einarbeitungsaufwand darstellt und die automatisierten Schritte auf Grund unterschiedlicher Lasten auf unserem Testsystem nicht deterministisch waren. Außerdem durchliefen wir verschiedene Iterationen, bis wir einem für uns passenden Workflow gefunden hatten.

Generell würden wir nach unserer Erfahrung davon abraten alle Sachbegriffe der GND, oder mehr als die von uns verwendeten circa 33.500 Begriffe zur Regelgenerierung zu verwenden. Nach unserer Beobachtung ist bei diesen Mengen und bei der Verwendung von regulären Ausdrücken in den Regeln das Laufzeitverhalten der Regelauswertung nicht mehr linear.

Bei der Abwägung, ob mit ausgewählten Begriffen oder ausgewählten Sachgruppen gearbeitet wird, sollte auch die Präferenz des Fachpersonals im Annotationsprozess berücksichtigt werden. Bei einer hohen Precision müssen hauptsächlich zusätzliche Begriffe markiert werden. Bei einem hohen Recall (und niedriger Precision) müssen hauptsächlich falsch markierte Begriffe entfernt werden.

Außerdem haben wir uns bei der initialen Auswahl der Sachbegriffe aus der GND auf bestimmte Typen beschränkt (SubjectHeading, SubjectHeadingSensoStricto und ProductNameOrBrandName). Diese Einschränkung machte für uns Sinn, jedoch sind manche der von uns gesuchten Objekte auch unter den Typen Work bzw. dessen Unterklassen zu finden, oder in der GND als Corporate Body klassifiziert.

Die Entscheidung aus jedem Bestand 2 zufällige Findbucheinträge für das Evaluationsdatenset zu verwenden, sorgte für ein ungünstiges Größenverhältnis zwischen Trainings- und Evaluationsdatenset. Zum einen ist das Evaluationsdatenset recht groß im Vergleich zum Trainingsdatenset. Zum anderen ist es durch die Unterschiede zwischen den einzelnen Beständen nicht repräsentativ. So gibt es eine große Varianz in der Größe der einzelnen Bestände (1 - 1321 Findbucheinträge) und der unterschiedlichen Länge der einzelnen Findbucheinträge (6 - 47.249 Zeichen).

Bei der praktischen Anwendung des trainierten Modells konnten wir feststellen, dass die Performanz des Modells auf den größeren Beständen merkbar schlechter war, so dass wir in der praktischen Anwendung eher mit einer Precision und einem Recall im Bereich von etwa 90 Prozent rechnen.

Theoretisch könnte die Performanz des Modells noch deutlich verbessert werden, indem unter anderem weitere Trainingsbeispiele erstellt werden und zusätzlich eine Hyperparameteroptimierung durchgeführt wird.

Fazit

Named Entity Recognition kann bei der Erstellung von Metadaten von textbasierten Material eine große Hilfe sein. Leider lassen sich auf allgemeinen Texten trainierte Modelle meist nicht auf Texte im Archiv übertragen. Ein Trainieren von eigenen NER-Modellen ist mit guten Ergebnissen und vertretbarem Aufwand möglich. Dabei ist die Gemeinsame Normdatei eine hilfreiche Datenquelle. Jedoch fehlt es vielen kulturellen Institutionen an einem Zugang zu technischem Personal und Infrastruktur. Wir hoffen, dass Lösungen von der NFDI zukünftig diese Lücken schließen können.


  1. Da die bearbeiteten Daten teilweise noch einer Sperrfrist unterliegen, können wir zu diesem Zeitpunkt weder die Daten noch die Modelle bzw. konkrete Ergebnislisten veröffentlichen. Es macht daher auch keinen Sinn eine reproduzierbaren Workflow zu veröffentlichen. ↩︎

  2. Wikipedia Autoren, „Landesarchiv Baden-Württemberg“, Wikipedia – Die freie Enzyklopädie, https://de.wikipedia.org/w/index.php?title=Landesarchiv_Baden-W%C3%BCrttemberg&oldid=223510351 (aufgerufen am 20. Juli 2022). ↩︎

  3. NER erstellt mit spaCy 3.3 en_core_web_lg↩︎

  4. Siehe Wikipedia - Precision and recall für Details. ↩︎

  5. Wikipedia Autoren, „Landesarchiv Baden-Württemberg“, Wikipedia – Die freie Enzyklopädie, https://de.wikipedia.org/w/index.php?title=Landesarchiv_Baden-W%C3%BCrttemberg&oldid=223510351 (aufgerufen am 20. Juli 2022). ↩︎

  6. NER erstellt mit spaCy 3.3 de_core_news_lg↩︎

  7. NER erstellt mit spaCy 3.3 de_core_news_lg↩︎

  8. Siehe Wikipedia - Active Learning↩︎

  9. Siehe Rule-based matching und Manual annotation with patters↩︎

  10. Siehe Wikipedia - Lemma (Lexikographie) ↩︎

  11. Manual annotation with patters bzw. Prodigy Rezept ner.manual↩︎

  12. Manual annotation with suggestions from a model bzw. Prodigy Rezept ner.correct↩︎

  13. Prodigy Rezept review ↩︎

  14. spaCy CLI evaluate ↩︎

  15. Language Processing Pipelines bzw. Rule-based matching bzw. EntityRuler↩︎

  16. Bei dem regelbasierten Ansatz ist eine Überanpassung nicht zu befürchten, da es sich hier um keinen selbst lernenden Prozess handelt. ↩︎

Benjamin Rosemann
Benjamin Rosemann
Data Scientist

Ich evaluiere KI- und Software-Lösungen und integriere sie in den Archivalltag.

Katharina Hardt
Projektbearbeiterin

Themenorientierte Erschließung von Quellen zur Provenienzforschung.

Ähnliches