SpaCy ist seit mehreren Jahren ein De-facto-Standard für jedes Unternehmen, das ein Projekt zur Entitätsextraktion starten will. Was hat spaCy so beliebt gemacht? Und gibt es im Jahr 2023 gute SpaCy-Alternativen für alle, die ein Entitätsextraktionsprojekt starten wollen? Lassen Sie uns diese Punkte in diesem Artikel diskutieren.

Die erste spaCy-Version wurde 2015 veröffentlicht und entwickelte sich schnell zu einem Standard-Framework für die Entitätsextraktion in Unternehmen (auch bekannt als NER).
Wenn Sie einen unstrukturierten Text (z. B. aus dem Internet) haben und daraus strukturierte Daten wie Daten, Namen, Orte usw. extrahieren möchten, ist spaCy eine sehr gute Lösung.
SpaCy ist interessant, weil mehrere vortrainierte Modelle in rund 20 Sprachen verfügbar sind (mehr dazu hier). Das bedeutet, dass Sie nicht unbedingt Ihr eigenes Modell für die Entitätsextraktion trainieren müssen. Es bedeutet auch, dass Sie, wenn Sie Ihr eigenes Modell trainieren wollen, von einem bereits trainierten Modell ausgehen können, anstatt bei Null anzufangen, was Ihnen viel Zeit sparen kann.
SpaCy gilt als "produktionsreifes" Framework, weil es sehr schnell und zuverlässig ist und eine umfassende Dokumentation enthält.
Wenn die von spaCy unterstützten Standardentitäten jedoch nicht ausreichen, müssen Sie die Daten annotieren (auch als "data labelling" bezeichnet), um Ihr eigenes Modell zu trainieren. Dieser Prozess ist extrem zeitaufwendig und viele Projekte zur Entitätsextraktion in Unternehmen scheitern an dieser Herausforderung.
Nehmen wir an, Sie möchten aus einem Text (z.B. aus einem Lebenslauf oder einer Firmenwebseite) Stellenbezeichnungen extrahieren. Da die von spaCy trainierten Modelle eine solche Entität nicht standardmäßig unterstützen, müssen Sie spaCy beibringen, wie man Stellenbezeichnungen erkennt. Dazu müssen Sie einen Trainingsdatensatz mit mehreren Tausend Beispielen für die Erkennung von Berufsbezeichnungen erstellen (und vielleicht sogar noch viel mehr!). Sie können eine kostenpflichtige Annotationssoftware wie Prodigy (vom spaCy-Team entwickelt) verwenden, aber es ist immer noch viel menschliche Arbeit erforderlich. Es ist durchaus üblich, dass Unternehmen eine Reihe von Auftragnehmern für mehrere Monate einstellen, um ein Projekt zur Datenannotation durchzuführen. Eine solche Arbeit ist so repetitiv und langweilig, dass die resultierenden Datensätze oft eine Menge Fehler enthalten...

Mal sehen, welche alternativen Lösungen Sie im Jahr 2023 ausprobieren könnten!

Die erste Version von Stanford CoreNLP wurde im Jahr 2013 veröffentlicht. Es handelt sich um ein Java-Framework (während spaCy ein Python-Framework ist), mit dem Sie Entitätsextraktion mit sehr guten Ergebnissen durchführen können.
Stanford CoreNLP schlägt ebenfalls vortrainierte Modelle vor, aber weniger als spaCy (mehr dazu hier).
Die Genauigkeit dieses Frameworks ist ähnlich wie bei SpaCy, hängt aber von den zu analysierenden Daten ab. Stanford CoreNLP liefert zum Beispiel bessere Ergebnisse bei juristischen Daten. Es ist auch erwähnenswert, dass einige Entitäten im Vergleich zu spaCy etwas anders adressiert werden (dies ist zum Beispiel bei der Entität GPE der Fall).
In Bezug auf die Leistung scheint Stanford deutlich langsamer zu sein als SpaCy, was ein Problem darstellen könnte, wenn man einen sehr hohen Durchsatz erreichen will.

Flair ist ein neueres Python-Framework (veröffentlicht 2018), das auf dem Deep-Learning-Framework PyTorch basiert.
Es erfreut sich großer Beliebtheit, da es im Vergleich zu spaCy in vielen Sprachen eine höhere Genauigkeit erreicht. Es werden mehrere vortrainierte Modelle vorgeschlagen (mehr dazu hier).
Diese Verbesserung der Genauigkeit geht jedoch auf Kosten der Geschwindigkeit. Ihr Durchsatz wird im Vergleich zu SpaCy deutlich geringer sein.
Vor ein paar Jahren tauchte eine neue Art von KI-Modellen auf: generative Modelle. Diese Modelle wurden ursprünglich für die Texterstellung entwickelt (man schreibt den Anfang eines Textes und lässt das Modell den Rest generieren), aber man erkannte schnell, dass diese Modelle sehr gut für alle möglichen Anwendungsfälle der Verarbeitung natürlicher Sprache geeignet sind, einschließlich der Extraktion von Entitäten.
Die derzeit beliebtesten generativen Modelle sind GPT-3, GPT-J, GPT-NeoX, T5 und Bloom. Alle diese Deep-Learning-Modelle verwenden die Transformer-Architektur, die 2017 von Google erfunden wurde.
Diese neue Generation von KI-Modellen ist sehr schwer und teuer in der Ausführung. Sie erfordern in der Regel High-End-Hardware, die auf einem oder mehreren Grafikprozessoren basiert. Außerdem sind sie langsamer als Frameworks wie SpaCy. Aber dank dieser Modelle ist es jetzt möglich, jede Art von Entität zu extrahieren, ohne ein spezielles Modell zu trainieren!
Das Extrahieren beliebiger Entitäten ohne Erstellung eines eigenen Modells ist dank des "few-shot learning" möglich. Bei dieser Technik geht es darum, dem Modell schnell zu zeigen, was man tun will, indem man zur Laufzeit nur ein paar Beispiele macht. Erfahren Sie hier mehr über das Lernen mit wenigen Schüssen.
Um auf unser Beispiel der Extraktion von Berufsbezeichnungen zurückzukommen: Wenn Sie Berufsbezeichnungen mit einem Modell wie GPT-J extrahieren wollen, müssen Sie keine Daten annotieren. Das erspart Ihnen Wochen oder Monate an menschlicher Arbeit. Und die Genauigkeit wird höchstwahrscheinlich viel höher sein als bei der Extraktion von Entitäten mit SpaCy.
SpaCy ist ein großartiges Framework für die Verarbeitung natürlicher Sprache, das heute von vielen Unternehmen in der Produktion für Entitätsextraktionsaufgaben eingesetzt wird.
SpaCy und Alternativen wie Stanford CoreNLP oder Flair sind jedoch in Bezug auf die Genauigkeit begrenzt und erfordern langwierige Annotationsarbeiten, um neue Entitäten zu extrahieren. Im Jahr 2023 können mehrere alternative Modelle, die auf Textgenerierung basieren, für die Entitätsextraktion ohne jegliche Annotation verwendet werden, wie GPT-J, GPT-NeoX, GPT-3... Diese neuen Modelle werden immer mehr Unternehmen helfen, ihre Entitätsextraktionsprojekte erfolgreich durchzuführen.
Wenn Sie GPT-J und GPT-NeoX nutzen möchten, zögern Sie nicht, die NLP Cloud API auszuprobieren (Versuchen Sie es hier)!
Juliette
Marketingleiter bei NLP Cloud