Erkennung benannter Entitäten und Produkterkennung

· Thomas Wood
Erkennung benannter Entitäten und Produkterkennung

Erweitern Sie Ihr Team mit NLP-Spezialisten

Entfesseln Sie das Potenzial Ihrer NLP-Projekte mit dem richtigen Talent. Veröffentlichen Sie Ihre Stelle bei uns und ziehen Sie Kandidaten an, die genauso leidenschaftlich über natürliche Sprachverarbeitung sind.

NLP-Experten einstellen

Named Entity Recognition oder Produkterkennung ist die Aufgabe, Eigennamen und Wörter aus einer speziellen Klasse in einem Dokument zu erkennen, beispielsweise Produktnamen, Standorte, Personen oder Krankheiten . Dies kann mit der verwandten Aufgabe des Named Entity Linking verglichen werden, bei der die Produkte mit einer eindeutigen ID verknüpft werden.

Stellen Sie sich vor, Sie haben einen großen Textdatensatz in einem bestimmten Bereich erhalten und möchten im Text Namen von Unternehmen oder Produkten identifizieren. Dies kann nützlich sein, wenn Sie Trends wie eine negative Stimmung gegenüber einem Produkt in einem bestimmten Kontext identifizieren müssen. Beispielsweise „gibt es einen wachsenden Trend negativer Stimmung rund um das Thema iPhone“.

Ein typisches Branchenbeispiel hierfür wäre die Pharmaindustrie, wo die Vertriebsmitarbeiter von Pharmaunternehmen riesige Mengen an Transkripten und Notizen von Besprechungen und Anrufen mit medizinischem Fachpersonal erstellen. Pharmaunternehmen sind an Erkenntnissen wie „x % der Erwähnungen eines bestimmten Arzneimittels durch Ärzte sind mit einer bestimmten Nebenwirkung verbunden“ interessiert, die nur aus einer detaillierten Analyse Tausender Textdokumente gewonnen werden können.

Die erste Stufe einer solchen Analyse wäre die Erkennung benannter Entitäten und die Verknüpfung benannter Entitäten, wobei ein System die betreffenden Entitäten erkennt. Medikamente würden identifiziert und mit einer ID verknüpft, und Krankheiten sollten mit einem bestimmten Krankheitswörterbuch wie MeSH-Begriffen verknüpft werden.

Beispiel für ein benanntes Entitätserkennungs-, Produkterkennungs- oder benanntes Entitätsverknüpfungssystem. Die Eingabe ist Rohtext und die Ausgabe ist eine Kennzeichnung aller relevanten Entitäten. Ein Erkennungsgerät für benannte Entitäten würde markieren, dass das 14. Token eine benannte Entität ist, und ein Linker für benannte Entitäten würde es auch mit einer ID in einer Datenbank abgleichen.

Standardmäßige benannte Entitätsbibliotheken

Es gibt eine Reihe handelsüblicher Bibliotheken zur Erkennung benannter Entitäten, wie z. B. SpaCy und die wissenschaftliche Domäne ScispaCy, die für die Erkennung benannter Entitäten verwendet werden können. Da sie jedoch auf Multi-Domain-Texte trainiert werden, kommt es häufig zu einer Übertriggerung, was dazu führen kann, dass das System unbrauchbar wird. CT ist beispielsweise sowohl ein medizinischer Begriff als auch der Bundesstaat Connecticut, und Texte mit Adressen können zu vielen Fehlalarmen führen.

Der Vorteil der Verwendung einer Standardbibliothek liegt natürlich in der Benutzerfreundlichkeit. Sie können loslegen, ohne ein Modell trainieren zu müssen.

Viele Standardbibliotheken für die Erkennung benannter Entitäten, wie z. B. Microsoft Azure Cognitive Services Text Analytics oder AWS Comprehend Medical , sind cloudbasiert. Dies kann eine Überlegung sein, wenn Ihre Daten sensibel und vertraulich sind, da Sie regelmäßig Daten über das Internet an die Server des Cloud-Anbieters senden müssten.

Benutzerdefinierter Erkenner für benannte Entitäten

Abhängig von Ihrem Anwendungsfall und Budget kann es sich lohnen, einen maßgeschneiderten Erkenner für benannte Entitäten zu erstellen.

In den letzten Jahren wurde viel über den Einsatz von Deep Learning für jedes KI-Problem gesagt und geschrieben, von der Verarbeitung natürlicher Sprache bis hin zu Computer Vision.

Für das obige Beispiel in der Pharmaindustrie würde ich jedoch tatsächlich entgegen der vorherrschenden Meinung vorschlagen, dass Sie einen wissensbasierten Ansatz anstelle eines rein maschinellen Lernansatzes in Betracht ziehen.

Ontologie der Produkterkennung: Wissensbasierter Ansatz zur Erkennung benannter Entitäten

Aufbau eines Wörterbuchs mit Arzneimittelnamen zur Produkterkennung

Es ist relativ einfach, eine recht umfassende Liste gebräuchlicher Medikamentennamen, Abkürzungen und Markennamen zu erhalten. Beispielsweise verfügen sowohl Medlineplus als auch die FDA über aktualisierte Listen, die Sie durchsuchen oder herunterladen können.

Fast Data Science - London

Need product recognition?

Führend bei kundenspezifischen Lösungen zur Namenserkennung und Produkterkennung. Erkennung von Arzneimittelnamen, Erkennung von Ländernamen, Erkennung von Finanzunternehmen, Erkennung von Produktnamen …
Drug names for use in named entity recognition.

Eine sortierte Liste von Arzneimittelnamen, die in einem wörterbuchbasierten Ansatz zur Erkennung von Produkten oder benannten Entitäten verwendet werden könnten.

Sie können dies verwenden und es mit einem Wörterbuch gebräuchlicher englischer Wörter vergleichen. Jeder Arzneimittelname wie Minocyclin, der nicht mit dem englischen Wörterbuch übereinstimmt, kann als eindeutige Übereinstimmung in Ihr Wörterbuch eingegeben werden. Insbesondere Wörter oder Abkürzungen, die mit gebräuchlichen englischen Wörtern übereinstimmen, können als Treffer mit geringer Konfidenz in das Wörterbuch eingegeben werden.

Da viele Medikamente mit Abkürzungen bezeichnet werden, können Sie den Wörterbuchansatz in Kombination mit einigen Regeln verwenden, z. B. das Weglassen der letzten paar Buchstaben in einem Medikamentennamen, wenn das Ergebnis eindeutig wäre.

Erstellen eines Krankheitswörterbuchs zur Erkennung benannter Entitäten

Ebenso können Sie eine vollständige Liste der MeSH-Begriffe aus der NIH Library of Medicine als XML-Datei herunterladen und die Begriffe entfernen, die mit dem englischen Wörterbuch übereinstimmen.

MeSH terms for use in named entity recognition.

Screenshot der MeSH-Begriffsliste im XML-Format. Der Name einer Krankheit wird hervorgehoben.

Der oben genannte wörterbuchbasierte Ansatz deckt Ihren Anwendungsfall möglicherweise zu 95 % ab, und Sie müssen möglicherweise überhaupt kein maschinelles Lernen einbeziehen!

Wir haben diesen Ansatz ausprobiert und eine wörterbuchbasierte Bibliothek zur Erkennung von Arzneimitteln mit Namen auf Github hier als Open-Source-Lösung bereitgestellt: https://github.com/fastdatascience/drug_named_entity_recognition . Es kann mit dem Befehl von Pypi installiert werden

„ Pip installiert Drug-Named-Entity-Recognition „

Traditioneller maschineller Lernansatz zur Erkennung benannter Entitäten und Produkte

Ein besonders leistungsstarker Ansatz zur Produkterkennung besteht darin, den oben aufgeführten wörterbuchbasierten Ansatz mit einem maschinellen Lernansatz zu kombinieren, um alle Entitäten aufzusaugen, die nicht vom Wörterbuch erfasst wurden (Rechtschreibfehler, Medikamente, die nicht in der Liste enthalten waren usw.). ).

Ich würde eine Reihe von Schritten empfehlen, die wie folgt in einer NLP-Pipeline kombiniert werden:

  1. Teilen Sie den Eingabetext in Wörter und Leerzeichen auf (tokenisieren Sie ihn). Ich empfehle die Verwendung eines Regex-basierten Tokenizers, der an Wortgrenzen aufteilt.

  2. Wenden Sie die Wörterbucherkennung auf alle Wörter an und markieren Sie Wörter im Wörterbuch als Entitäten.

  3. (Optional) Wenden Sie die Kennzeichnung von Wortarten an (markieren Sie jedes Wort als Substantiv, Verb oder Adjektiv).

  4. Identifizieren Sie eine Reihe von Merkmalen jedes Wortes, z. B. „wird ausschließlich in Großbuchstaben geschrieben“, „vorangestellt ist ein Komma“ usw.

  5. Markieren Sie einige dieser Wörter auf der Grundlage eines Entscheidungsbaums oder eines trainierten maschinellen Lernmodells oder sogar einiger handcodierter Regeln als Einheiten mit geringer Konfidenz. Beispielsweise kann in der Eingabe ein Wort vorkommen, bei dem es sich aus dem umgebenden Kontext höchstwahrscheinlich um den Namen eines Medikaments handelt („Ich verschreibe meinen Patienten routinemäßig X“), das aber nicht im Wörterbuch enthalten ist. Es könnte sich um einen Rechtschreibfehler, eine unbekannte Abkürzung oder ein neues Medikament handeln. In diesen Fällen sollte das Modell es aufgreifen und dem Benutzer mitteilen.

Ein Standardansatz für das Tagging-Problem benannter Entitäten ist die Verwendung einer Notation namens IOB-Notation (Inside-Outside-Beginning). Daher ist jedes Token als „Innen“, „Außen“ oder „Anfang“ gekennzeichnet. Wenn wir uns also vorstellen, dass wir den Satz verarbeiten:

…Behandlung mit Dihydroartemisinin-Piperaquin und Primaqunin zur Abtötung von Malariaparasiten.

Dann würden wir Token mit B-DRUG (Beginn eines Arzneimittelnamens), I-DRUG (innerhalb eines Arzneimittelnamens) usw. kennzeichnen.

IOB notation in named entity recognition.

Dann können Sie entweder fest codierte Regeln festlegen („Behandlung mit“, die wahrscheinlich vor B-DRUG erfolgt), oder ein Modell für maschinelles Lernen kann einige Regeln lernen, die auf unsichtbare Texte angewendet werden.

Einer der am häufigsten verwendeten Algorithmen zur Erkennung benannter Entitäten, der die IOB-Notation verwendet, sind Conditional Random Fields (CRFs). Weitere Informationen zu CRFs und dem Training eines benannten Entitätserkennungsmodells auf diese Weise finden Sie auf der Scikit-Learn-Website, wo es auch ein Tutorial gibt.

Der Vorteil des regelbasierten Ansatzes oder sogar einiger einfacherer, auf maschinellem Lernen basierender Ansätze besteht darin, dass sie für Menschen relativ leicht zu verstehen sind. Insbesondere kann ein wissensbasiertes Wörterbuch bei Bedarf von technisch nicht versiertem Personal bearbeitet werden, sodass das Management nachvollziehen kann, warum bestimmte Wörter markiert oder übersehen wurden.

Manchmal kann mit modernsten Deep-Learning-Modellen eine höhere Leistung erbracht werden.

Deep-Learning-Ansatz zur Erkennung benannter Entitäten

ScispaCy used for named entity recognition in the biomedical domain.

Screenshot der ScispaCy-Ausgabe für einen Satz im biomedizinischen Bereich.

Es gibt eine Reihe ausgefeilterer Modelle zur Erkennung benannter Entitäten. Ein häufig verwendetes Paket in Python ist spaCy , das ein tiefes Faltungs-Neuronales Netzwerk verwendet, um Entitäten, typischerweise Personen, Organisationen und Orte, zu erkennen. Ein auf wissenschaftlichen Domänen trainiertes Modell namens ScispaCy ist ebenfalls verfügbar.

Modelle wie CRFs beschränken sich darauf, kleine Textfenster um eine Kandidatenentität herum zu betrachten, und Faltungsnetzwerke iterieren auch ein Fenster über dem Dokument. Etwas leistungsfähigere Modelle sind das Long Short Term Memory (LSTM), das in der Lage ist, den gesamten vorhergehenden Kontext eines Dokuments zu berücksichtigen.

Der aktuelle Stand der Technik ist die Familie transformatorbasierter neuronaler Netze wie BERT , die einen „Aufmerksamkeitsmechanismus“ verwenden, um sich auf bestimmte Wörter im Satz zu konzentrieren, die für das betreffende Wort besonders relevant sind.

Die Deep-Learning-Techniken zur Erkennung benannter Entitäten erfordern viel Rechenleistung. Daher müssen Sie möglicherweise einen Cloud-Anbieter wie Azure , AWS oder Google Cloud Services verwenden und benötigen außerdem viele getaggte Daten. Wenn Sie also beispielsweise eine große Liste von Medikamenten oder Molekülen als XML-Datei haben, die Sie auswählen möchten, ist es in den meisten Fällen besser, einen wörterbuchbasierten Ansatz zu verwenden, als direkt in Deep Learning einzusteigen.

Unsere bevorzugte Methode: der Hybridansatz zur Erkennung benannter Entitäten

Viele Kunden oder Entwickler haben möglicherweise das Gefühl, dass es sich um eine Entweder-Oder-Frage handelt: Nutzen wir reine Wissenstechnik oder entscheiden wir uns für das modernste Deep-Learning-Modell für unsere Produkterkennungsaufgabe?

Tatsächlich eignen sich viele NLP-Probleme für einen hybriden Ansatz, bei dem unabhängige Modelle zusammengefügt werden können, um das Beste aus beiden Welten zu nutzen.

Warum nicht einen Wörterbuchansatz verwenden, um mit hoher Sicherheit eindeutige Arzneimittelnamen, Produktnamen oder Standorte zu erhalten, kombiniert mit einem auf maschinellem Lernen basierenden probabilistischen Ansatz für potenzielle Mehrdeutigkeiten?

Das empfehlen wir Kunden oft und finden, dass es in der Praxis sehr gut funktioniert.

Auswahl des richtigen Ansatzes zur Erkennung benannter Entitäten oder Produkte

Die Wahl eines Algorithmus zur Erkennung benannter Entitäten hängt daher von ab

  • ob eine Erkennung benannter Entitäten erforderlich ist oder ob auch ein vollständiges System zur Verknüpfung benannter Entitäten erforderlich ist,

  • die Verfügbarkeit einer Liste von Entitäten,

  • die Verfügbarkeit eines getaggten Textdatensatzes,

  • das Bedürfnis des Unternehmens nach einem transparenten und rechenschaftspflichtigen Algorithmus – oder können wir mit einem Black-Box-Algorithmus durchkommen?

  • das Bedürfnis nach Privatsphäre (können Cloud-Dienste genutzt werden),

  • die Anzahl der Varianten jeder Entität – ist diese bekannt? Ist es wahrscheinlich, dass Entitäten falsch geschrieben werden?

  • die relativen Kosten von falsch-positiven und falsch-negativen Ergebnissen, die vom Erkenner zurückgegeben werden.

Wenn Sie einen großen Datensatz von Produkten, Arzneimitteln, Molekülen oder Ähnlichem erkennen müssen, wenden Sie sich bitte an unser Team von Fast Data Science. Wir verfügen über eine nachgewiesene Erfolgsbilanz bei der Bereitstellung von Lösungen zur Erkennung benannter Entitäten und können Ihnen bei der Entscheidung helfen, welcher der oben genannten Ansätze für Ihr Unternehmen der richtige ist, um Produktnamen in Dokumenten zu erkennen.

Ihre NLP-Karriere wartet!

Bereit für den nächsten Schritt in Ihrer NLP-Reise? Vernetzen Sie sich mit Top-Arbeitgebern, die Talente in der natürlichen Sprachverarbeitung suchen. Entdecken Sie Ihren Traumjob!

Finden Sie Ihren Traumjob

Big-Data-Beratung – 4 häufigste Probleme gelöst
Data scienceBig data

Big-Data-Beratung – 4 häufigste Probleme gelöst

Mittlerweile sind es Organisationen aller Größenordnungen und fast aller Sektoren werden zunehmend datengesteuert, insbesondere als größere Datenspeicher Systeme und schnellere Computer treiben die Leistungsgrenzen immer weiter voran.

Zwei Revolutionen im Abstand von 200 Jahren: die Datenrevolution und die industrielle Revolution
Ai and societyData science

Zwei Revolutionen im Abstand von 200 Jahren: die Datenrevolution und die industrielle Revolution

Aufgrund des umfangreichen Einsatzes von Technologie und der Arbeitsteilung hat die Arbeit des durchschnittlichen Gig-Economy-Arbeiters jeden individuellen Charakter und damit auch jeden Charme für den Arbeitnehmer verloren.

KI im Personalwesen: Die Zukunft der Arbeit verändern
Ai and societyData science

KI im Personalwesen: Die Zukunft der Arbeit verändern

Die Auswirkungen von KI auf die Humanressourcen Die Arbeitswelt verändert sich rasant, sowohl aufgrund der Einführung traditioneller Data-Science-Praktiken in immer mehr Unternehmen als auch aufgrund der zunehmenden Beliebtheit generativer KI-Tools wie ChatGPT und Googles BARD bei nicht-technischen Arbeitnehmern.

What we can do for you

Transform Unstructured Data into Actionable Insights

Contact us