NLP Cloud ist eine API, die den Einsatz von NLP in der Produktion erleichtert. Die API basiert auf den besten vortrainierten Open-Source-Modellen. Sie können auch Ihre eigenen Modelle verwenden oder Modelle auf der Plattform trainieren. NLP Cloud bietet die meisten Funktionen zum Textverständnis und zur Texterzeugung: Extraktion von Entitäten (NER), Stimmungsanalyse, Textklassifizierung, Textzusammenfassung, Beantwortung von Fragen, Texterzeugung und Part-of-Speech (POS) Tagging... und mehr!
Die API ist für bis zu 3 Anfragen pro Minute kostenlos verfügbar, was eine gute Möglichkeit ist, die Qualität der Modelle zu testen. Der erste kostenpflichtige Plan kostet 29 $ pro Monat (für 15 Anfragen pro Minute).
In diesem Tutorial wollen wir sehen, wie man die API verwendet.
Der Einsatz von KI-Modellen in der Produktion ist eine häufige Ursache für das Scheitern von Projekten. NLP-Modelle sind sehr ressourcenintensiv, und die Gewährleistung einer hohen Verfügbarkeit dieser Modelle in der Produktion bei gleichzeitig guten Reaktionszeiten ist eine Herausforderung. Dies erfordert eine teure Infrastruktur und fortgeschrittene DevOps-, Programmier- und KI-Kenntnisse.
Das Ziel von NLP Cloud ist es, Unternehmen dabei zu helfen, ihre Modelle schnell, ohne Qualitätseinbußen und zu erschwinglichen Preisen in die Produktion einzubringen.
Sign up is very quick. Besuchen Sie einfach die Registrierungsseite und geben Sie Ihre E-Mail und Ihr Passwort ein.

Sie befinden sich nun in Ihrem Dashboard und können Ihr API-Token sehen. Bewahren Sie dieses Token sicher auf, Sie benötigen es für alle API-Aufrufe, die Sie tätigen werden.
In Ihrem Dashboard finden Sie mehrere Codeschnipsel, mit denen Sie sich schnell zurechtfinden können. Für weitere Details können Sie die Dokumentation lesen.

NLP Cloud bietet Ihnen die meisten typischen NLP-Funktionen out-of-the-box, entweder dank vortrainierter spaCy- oder Hugging Face-Modelle oder durch Hochladen eigener spaCy-Modelle.
Um die Nutzung der API zu erleichtern, stellt NLP Cloud Client-Bibliotheken in verschiedenen Sprachen zur Verfügung (Python, Ruby, PHP, Go, Node.js). Im weiteren Verlauf dieses Tutorials werden wir die Python-Bibliothek verwenden.
Verwenden Sie PIP, um die Python-Bibliothek zu installieren:
pip install nlpcloud
Die Extraktion von Entitäten erfolgt über spaCy. Alle "großen" spaCy-Modelle, die im Voraus trainiert wurden, sind verfügbar, d. h. 15 Sprachen (weitere Einzelheiten zu all diesen Modellen auf der spaCy-Website). Sie können auch selbst entwickelte, benutzerdefinierte SpaCy-Modelle hochladen, um sie in der Produktion zu verwenden. Gehen Sie dazu einfach in Ihrem Dashboard in den Bereich "Eigene Modelle":

Stellen Sie sich nun vor, Sie möchten Entitäten aus dem Satz "John Doe arbeitet seit 1999 bei Microsoft in Seattle" mit Hilfe des vortrainierten spaCy-Modells für Englisch ("en_core_web_lg") extrahieren. So sollten Sie vorgehen:
import nlpcloud
client = nlpcloud.Client("en_core_web_lg", "")
client.entities("John Doe has been working for Microsoft in Seattle since 1999.")
Sie gibt den Inhalt jeder extrahierten Entität und ihre Position im Satz zurück.
Die Sentiment-Analyse wird dank der Hugging-Face-Transformatoren und das Distilbert Base Uncased Finetuned SST 2 English modell. Hier ein Beispiel:
import nlpcloud
client = nlpcloud.Client("distilbert-base-uncased-finetuned-sst-2-english", "")
client.sentiment("NLP Cloud proposes an amazing service!")
Sie wird Ihnen sagen, ob die allgemeine Stimmung in diesem Text eher positiv oder negativ ist und wie hoch die Wahrscheinlichkeit dafür ist.
Die Textklassifizierung erfolgt dank der Hugging-Face Transformers und das Facebook-Bart-Modell. Hier ein Beispiel:
import nlpcloud
client = nlpcloud.Client("bart-large-mnli", "")
client.classification("""John Doe is a Go Developer at Google.
He has been working there for 10 years and has been
awarded employee of the year.""",
["job", "nature", "space"],
True)
Wie Sie sehen, übergeben wir einen Textblock, den wir zu klassifizieren versuchen, zusammen mit möglichen Kategorien. Das letzte Argument ist ein Boolescher Wert, der angibt, ob eine einzige oder mehrere Kategorien zutreffen können.
Es wird die Wahrscheinlichkeit für jede Kategorie zurückgegeben.
Die Textzusammenfassung wird dank des Hugging Face Transformers und des Facebook Bart Large CNN-Modells erreicht.. Hier ein Beispiel:
import nlpcloud
client = nlpcloud.Client("bart-large-cnn", "")
client.summarization("""The tower is 324 metres (1,063 ft) tall,
about the same height as an 81-storey building, and the tallest structure in Paris.
Its base is square, measuring 125 metres (410 ft) on each side. During its construction,
the Eiffel Tower surpassed the Washington Monument to become the tallest man-made
structure in the world, a title it held for 41 years until the Chrysler Building
in New York City was finished in 1930. It was the first structure to reach a
height of 300 metres. Due to the addition of a broadcasting aerial at the top of
the tower in 1957, it is now taller than the Chrysler Building by 5.2 metres (17 ft).
Excluding transmitters, the Eiffel Tower is the second tallest free-standing structure
in France after the Millau Viaduct.""")
Es wird eine Zusammenfassung des oben genannten Textes zurückgegeben. Es handelt sich dabei um eine "abstrakte" und nicht um eine "extraktive" Zusammenfassung, d.h. es können neue Sätze entstehen, und unwichtige werden entfernt. Allerdings werden unwichtige Sätze natürlich entfernt.
Die Beantwortung der Fragen wird durch die Transformatoren Hugging Face und das Modell Deepset Roberta Base Squad 2 ermöglicht.. Hier ein Beispiel:
import nlpcloud
client = nlpcloud.Client("roberta-base-squad2", "")
client.question("""French president Emmanuel Macron said the country was at war
with an invisible, elusive enemy, and the measures were unprecedented,
but circumstances demanded them.""",
"Who is the French president?")
Hier geht es darum, eine Frage dank eines Kontextes zu beantworten.
Das obige Beispiel liefert zum Beispiel "Emmanuel Macron".
Das POS-Tagging wird mit denselben SpaCy-Modellen durchgeführt, die auch für die Extraktion von Entitäten verwendet werden. Wenn Sie zum Beispiel das vortrainierte englische Modell verwenden möchten, sollten Sie wie folgt vorgehen:
import nlpcloud
client = nlpcloud.Client("en_core_web_lg", "")
client.dependencies("John Doe is a Go Developer at Google")
Sie gibt das Part-of-Speech jedes Tokens im Satz und seine Abhängigkeit von anderen Tokens zurück.
NLP Cloud ist eine einfach zu bedienende API für NLP, die Ihnen hilft, in der Produktion viel Zeit zu sparen.
Weitere Modelle sind verfügbar, wie Übersetzung, Spracherkennung, Texterstellung... Und vieles mehr.
Beachten Sie auch, dass für kritische Leistungsanforderungen auch GPU-Pläne vorgeschlagen werden.
Ich hoffe, dieser Artikel war für einige von Ihnen nützlich! Wenn Sie Fragen haben, zögern Sie bitte nicht, mir diese mitzuteilen.
Julien Salinas
CTO bei NLP Cloud