Zum Inhalt springen

Was ist Named Entity Recognition (NER)?

Die Named Entity Recognition (deutsch: Erkennung benannter Entitäten) ist ein Anwendungsfall innerhalb des Natural Language Processings, bei dem ein Modell erlernt bestimmt Wörter zu kennzeichnen, die einer gewissen Gruppe angehören.

Was ist die Named Entity Recognition?

Wenn wir Menschen versuchen einen Satz zu verstehen, dann erkennen schnell einzelne Wörter, die einer bestimmten Klasse angehören, wie beispielsweise eine Ortsangabe, eine Zeitangabe oder Wörter, die eine Person kennzeichnen. Named Entity Recognition bezeichnet genau solche Modelle, die bestimmte Wörter in einem Satz oder Paragraph kennzeichnet und ihnen die richtige Klasse zuordnet.

Named Entity Recognition Beispiel | Quelle: Analytics Vidhya

Diese Informationen sind unverzichtbar, um den Inhalt des Satzes richtig zu verstehen und sollten deshalb richtig erkannt werden. Die richtige Klassifizierung der Wörter und Satzbausteine werden in verschiedenen Stufen gefunden.

Was sind die Herausforderungen von NER?

Die Problematik beim Natural Language Processing ist, dass wir alle seit früher Kindheit eine natürliche Sprache fließend sprechen und ohne nachzudenken verstehen. Deshalb ist es umso schwieriger zu formulieren, wie wir Entitäten in einem Text erkennen. Für das Modell gilt es dabei einige Herausforderungen zu bewältigen, die für uns selbstverständlich erscheinen:

  • Erkennen von Varianten: Namen, Ortsangaben oder Unternehmensbezeichnung können in verschiedenen Varianten auftreten. Eine Person kann entweder mit vollem Namen angesprochen werden oder lediglich mit dem Nachnamen. Das Modell muss erkennen, dass beides mal möglicherweise die gleiche Person gemeint ist. Gleiches gilt für die Bezeichnungen „New York“, „NYC“ und „New York City“, die alle dieselbe amerikanische Großstadt benennen.
  • Normalisierung: Zeit- oder Geldangaben können in verschiedenen Formaten auftreten und trotzdem dasselbe meinen. Auch diese Unterschiede muss ein NER Modell erlernen, um beispielsweise zu verstehen, dass „10.000 €“ und „10,000 €“ dasselbe meinen und lediglich im englischen Sprachgebrauch das Komma zur Tausendertrennung genutzt wird.
  • Abgrenzung der Entitäten: Schlussendlich müssen auch die Abgrenzungen zwischen Entitäten erkannt werden. Dabei kann es vorkommen, dass eine Entity nur aus einem einzelnen Wort besteht, während eine andere in den meisten Fällen vier Wörter besitzt.

Welche Stufen werden zur Named Entity Erkennung genutzt?

Wenn wir eine Named Entity Recognition trainieren wollen benötigen wir ausreichend Trainingsdaten, die wir dem Modell füttern können. Um diese automatisiert zu erhalten und die Entitäten nicht von Hand klassifizieren zu müssen, können wir die folgenden Schritte nutzen:

  1. Erkennung von Substantiven: Bei unseren Named Entities muss es sich Substantive handeln, deshalb filtern wir den gegebenen Text, sodass nur die Substantive übrig bleiben. Dafür gibt es in vielen Sprachen bereits austrainierte Modelle, beispielsweise zum Part of Speech Tagging.
  2. Klassifizierung der Wörter: Nachdem wir die Substantive gefiltert haben, können wir diese in die von uns gewünschten Klassen einteilen. Dafür lassen sich verschiedene kostenlose Datenbanken nutzen, um diesen Schritt so weit wie möglich zu automatisieren. Um Ortsangaben zu klassifizieren, können wir beispielsweise die Datenbank von Google Maps per API abfragen.

Wie funktioniert NER?

In den Python Modulen Spacy und NLTK kann man ohne weiteres austrainierte Named Entity Recognition Modelle laden, welche für die Standardsprachen auch schon gut funktionieren. Jedoch kann man auch darauf angewiesen sein, ein eigenens NER Modell zu trainieren, um es für den eigenen Anwendungsfall besser abstimmen zu können.

Bevor wir mit dem eigentlichen Training starten können, benötigen wir einen Trainingsdatensatz mit genügend Beispielen von Texten und den zu findenden Entitäten innerhalb des Textes. Wenn man das Modell auf Spezialfälle trainieren will, führt häufig auch kein Weg daran vorbei, den Datensatz selbst zu erzeugen und die Wörter oder Phrasen von Hand zu benennen.

Anschließend kann man ein sogenanntes Conditional Random Field (CRF) für die Named Entity Recognition trainieren. Es ist ein statistisches Modell, welches sich besonders gut für die Erkennung von Schemata eignet und dabei auch Kontextinformationen mit in die Vorhersage mit einbezieht.

In einfachen Worten erklärt trainiert das Conditional Random Field Logistische Regressionen für einzelne Sequenzen. Als Input Variablen werden die folgenden Werte genutzt:

  • Set von Input Vektoren
  • Position des Wortes, das aktuell vorhergesagt werden soll
  • Label des vorherigen Wortes
  • Label des aktuellen Wortes

Dadurch kann dann beispielsweise erlernt werden, dass Verben oft nach Substantiven folgen und daraus Rückschlüsse auf das mögliche Label erlernen.

Wofür nutzt man NER?

Die Named Entity Recognition kann in vielen Gebieten eingesetzt werden. Deshalb sind die folgenden Beispiele nur ein Auszug möglicher Anwendungsfälle:

  • Human Ressources: Spezielle Modelle können dafür genutzt werden, um schnell Informationen aus Lebensläufen von Bewerbern ausgelesen zu werden.
  • Suchalgorithmen: Beispielsweise bei der Produktsuche können Produkteigenschaften und Produktnamen erkannt und differenziert gesucht werden. Dadurch wird das Suchergebnis geschärft, indem beispielsweise die Zahl zwölf im Suchterm „iPhone 12“ in Produkttiteln gesucht wird und nicht als Produkteigenschaft.
  • Kundenservice: Anfragen von Kunden können auch durch die Erkennung von Schlagworten besser klassifiziert und gefiltert werden. Dadurch verringert sich die Antwortzeit des Mitarbeiters.

Das solltest Du mitnehmen

  • Named Entity Recognition Modelle erlernen einzelne Wörter oder Sequenzen einer Gruppe zuzuordnen.
  • Dazu werden sogenannte Conditional Random Fields trainiert, die die Klassifizierung sequenzabhängig vornehmen.
  • Ein gutes NER Modell zeichnet sich durch die Erkennung von Varianten und die gute Abgrenzung von Entitäten aus.

Andere Beiträge zum Thema Named Entity Recognition

  • Weiterführende Informationen zum Thema Named Entity Recognition findest Du hier.
Cookie Consent mit Real Cookie Banner