Dies ist der Python-Client für die NLP Cloud API. Weitere Einzelheiten finden Sie in der Dokumentation.
NLP Cloud bietet vorab trainierte oder benutzerdefinierte Hochleistungsmodelle für NER, Stimmungsanalyse, Klassifizierung, Zusammenfassung, Dialogzusammenfassung, Paraphrasierung, Absichtsklassifizierung, Produktbeschreibung und Anzeigengenerierung, Chatbot, Grammatik- und Rechtschreibkorrektur, Extraktion von Schlüsselwörtern und Schlüsselphrasen sowie Textgenerierung , Bildgenerierung, Quellcodegenerierung, Fragebeantwortung, automatische Spracherkennung, maschinelle Übersetzung, Spracherkennung, semantische Suche, semantische Ähnlichkeit, Tokenisierung, POS-Tagging, Einbettungen, und Abhängigkeitsanalyse. Es ist produktionsbereit und wird über eine REST-API bereitgestellt.
Sie können entweder die vorab trainierten NLP Cloud-Modelle verwenden, Ihre eigenen Modelle optimieren oder Ihre eigenen Modelle bereitstellen.
Wenn Sie auf ein Problem stoßen, zögern Sie nicht, es als Github-Problem anzusprechen. Danke!
Per Pip installieren.
pip install nlpcloud
Hier ist ein vollständiges Beispiel, das einen Text unter Verwendung des Bart Large CNN-Modells von Facebook mit einem gefälschten Token zusammenfasst:
import nlpcloud
client = nlpcloud . Client ( "bart-large-cnn" , "4eC39HqLyjWDarjtT1zdp7dc" )
client . summarization ( """One month after the United States began what has become a
troubled rollout of a national COVID vaccination campaign, the effort is finally
gathering real steam. Close to a million doses -- over 951,000, to be more exact --
made their way into the arms of Americans in the past 24 hours, the U.S. Centers
for Disease Control and Prevention reported Wednesday. That s the largest number
of shots given in one day since the rollout began and a big jump from the
previous day, when just under 340,000 doses were given, CBS News reported.
That number is likely to jump quickly after the federal government on Tuesday
gave states the OK to vaccinate anyone over 65 and said it would release all
the doses of vaccine it has available for distribution. Meanwhile, a number
of states have now opened mass vaccination sites in an effort to get larger
numbers of people inoculated, CBS News reported.""" )
Hier ist ein vollständiges Beispiel, das dasselbe tut, jedoch auf einer GPU:
import nlpcloud
client = nlpcloud . Client ( "bart-large-cnn" , "4eC39HqLyjWDarjtT1zdp7dc" , True )
client . summarization ( """One month after the United States began what has become a
troubled rollout of a national COVID vaccination campaign, the effort is finally
gathering real steam. Close to a million doses -- over 951,000, to be more exact --
made their way into the arms of Americans in the past 24 hours, the U.S. Centers
for Disease Control and Prevention reported Wednesday. That s the largest number
of shots given in one day since the rollout began and a big jump from the
previous day, when just under 340,000 doses were given, CBS News reported.
That number is likely to jump quickly after the federal government on Tuesday
gave states the OK to vaccinate anyone over 65 and said it would release all
the doses of vaccine it has available for distribution. Meanwhile, a number
of states have now opened mass vaccination sites in an effort to get larger
numbers of people inoculated, CBS News reported.""" )
Hier ist ein vollständiges Beispiel, das dasselbe tut, jedoch mit einem französischen Text:
import nlpcloud
client = nlpcloud . Client ( "bart-large-cnn" , "4eC39HqLyjWDarjtT1zdp7dc" , True , "fra_Latn" )
client . summarization ( """Sur des images aériennes, prises la veille par un vol de surveillance
de la Nouvelle-Zélande, la côte d’une île est bordée d’arbres passés du vert
au gris sous l’effet des retombées volcaniques. On y voit aussi des immeubles
endommagés côtoyer des bâtiments intacts. « D’après le peu d’informations
dont nous disposons, l’échelle de la dévastation pourrait être immense,
spécialement pour les îles les plus isolées », avait déclaré plus tôt
Katie Greenwood, de la Fédération internationale des sociétés de la Croix-Rouge.
Selon l’Organisation mondiale de la santé (OMS), une centaine de maisons ont
été endommagées, dont cinquante ont été détruites sur l’île principale de
Tonga, Tongatapu. La police locale, citée par les autorités néo-zélandaises,
a également fait état de deux morts, dont une Britannique âgée de 50 ans,
Angela Glover, emportée par le tsunami après avoir essayé de sauver les chiens
de son refuge, selon sa famille.""" )
Ein JSON-Objekt wird zurückgegeben:
{
"summary_text" : " Over 951,000 doses were given in the past 24 hours. That's the largest number of shots given in one day since the rollout began. That number is likely to jump quickly after the federal government gave states the OK to vaccinate anyone over 65. A number of states have now opened mass vaccination sites. "
}
Übergeben Sie das Modell, das Sie verwenden möchten, und das NLP-Cloud-Token während der Initialisierung an den Client.
Das Modell kann entweder ein vorab trainiertes Modell wie en_core_web_lg
, bart-large-mnli
... sein, aber auch eines Ihrer benutzerdefinierten Modelle unter Verwendung von custom_model/<model id>
(z. B. custom_model/2568
). Eine umfassende Liste aller verfügbaren Modelle finden Sie in der Dokumentation.
Ihr Token kann von Ihrem NLP Cloud-Dashboard abgerufen werden.
import nlpcloud
client = nlpcloud . Client ( "<model>" , "<your token>" )
Wenn Sie eine GPU verwenden möchten, übergeben Sie gpu=True
.
import nlpcloud
client = nlpcloud . Client ( "<model>" , "<your token>" , gpu = True )
Wenn Sie das mehrsprachige Add-on nutzen möchten, um nicht-englische Texte zu verarbeiten, übergeben Sie lang="<your language code>"
. Wenn Sie beispielsweise französischen Text verarbeiten möchten, sollten Sie lang="fra_Latn"
einstellen.
import nlpcloud
client = nlpcloud . Client ( "<model>" , "<your token>" , lang = "<your language code>" )
Wenn Sie asynchrone Anfragen stellen möchten, übergeben Sie asynchronous=True
.
import nlpcloud
client = nlpcloud . Client ( "<model>" , "<your token>" , asynchronous = True )
Wenn Sie asynchrone Anfragen stellen, erhalten Sie immer eine schnelle Antwort mit einer URL. Anschließend sollten Sie diese URL regelmäßig (z. B. alle 10 Sekunden) mit async_result()
abfragen, um zu prüfen, ob das Ergebnis verfügbar ist. Hier ist ein Beispiel:
client . async_result ( "https://api.nlpcloud.io/v1/get-async-result/21718218-42e8-4be9-a67f-b7e18e03b436" )
Der obige Befehl gibt ein JSON-Objekt zurück, wenn die Antwort bereit ist. Ansonsten wird None
zurückgegeben.
Rufen Sie die Methode asr()
auf und übergeben Sie die folgenden Argumente:
url
: eine URL, unter der Ihre Audio- oder Videodatei gehostet wirdencoded_file
: eine Base-64-codierte Version Ihrer Dateiinput_language
: die Sprache Ihrer Datei als ISO-Code client . asr ( "Your url" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode chatbot()
auf und übergeben Sie Ihre Eingabe. Optional können Sie auch einen Kontext- und Konversationsverlauf übergeben, bei dem es sich um eine Liste von Wörterbüchern handelt. Jedes Wörterbuch besteht aus einer input
und einer response
des Chatbots.
client . chatbot ( "Your input" , "You context" , [{ "input" : "input 1" , "response" : "response 1" }, { "input" : "input 2" , "response" : "response 2" }, ...])
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode classification()
auf und übergeben Sie die folgenden Argumente:
multi_class
: Ob die Klassifizierung mehrere Klassen haben soll oder nicht, als boolescher Wert. Der Standardwert ist „true“. client . classification ( "<Your block of text>" , [ "label 1" , "label 2" , "..." ])
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode code_generation()
auf und übergeben Sie die Anweisung für das Programm, das Sie generieren möchten:
client . code_generation ( "<Your instruction>" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode dependencies()
auf und übergeben Sie den Text, für den Sie Part-of-Speech-Tagging (POS) + Arcs durchführen möchten.
client . dependencies ( "<Your block of text>" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode embeddings()
auf und übergeben Sie eine Liste der Textblöcke, aus denen Sie Einbettungen extrahieren möchten.
client . embeddings ([ "<Text 1>" , "<Text 2>" , "<Text 3>" , ...])
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode entities()
auf und übergeben Sie den Text, für den Sie die Erkennung benannter Entitäten (NER) durchführen möchten.
client . entities ( "<Your block of text>" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode generation()
auf und übergeben Sie die folgenden Argumente:
max_length
: Optional. Die maximale Anzahl an Token, die der generierte Text enthalten sollte. Maximal 256 Token für GPT-J auf der CPU, maximal 1024 Token für GPT-J und GPT-NeoX 20B auf der GPU und maximal 2048 Token für Fast GPT-J und Finetuned GPT-NeoX 20B auf der GPU. Wenn length_no_input
false ist, entspricht die Größe des generierten Texts der Differenz zwischen max_length
und der Länge Ihres Eingabetextes. Wenn length_no_input
wahr ist, beträgt die Größe des generierten Texts einfach max_length
. Der Standardwert ist 50.length_no_input
: Gibt an, ob min_length
und max_length
die Länge des Eingabetextes nicht als booleschen Wert enthalten sollen. Bei „false“ enthalten min_length
und max_length
die Länge des Eingabetexts. Wenn „true“, enthalten „min_length“ und max_length
nicht die Länge des Eingabetextes. Der Standardwert ist „false“.end_sequence
: Ein bestimmtes Token, das das Ende der generierten Sequenz sein soll, als Zeichenfolge. Zum Beispiel wenn es sein könnte .
oder n
oder ###
oder alles andere mit weniger als 10 Zeichen.remove_input
: Gibt an, ob Sie den Eingabetext aus dem Ergebnis entfernen möchten, als boolescher Wert. Der Standardwert ist „false“.num_beams
: Anzahl der Strahlen für die Strahlensuche. 1 bedeutet keine Strahlsuche. Dies ist eine ganze Zahl. Der Standardwert ist 1.num_return_sequences
: Die Anzahl der unabhängig berechneten zurückgegebenen Sequenzen für jedes Element im Stapel als Ganzzahl. Der Standardwert ist 1.top_k
: Die Anzahl der Vokabulartoken mit der höchsten Wahrscheinlichkeit, die für die Top-K-Filterung aufbewahrt werden sollen, als Ganzzahl. Maximal 1000 Token. Der Standardwert ist 0.top_p
: Wenn auf float < 1 eingestellt, werden nur die wahrscheinlichsten Token mit Wahrscheinlichkeiten, die sich zu top_p oder höher addieren, für die Generierung aufbewahrt. Das ist ein Schwimmer. Sollte zwischen 0 und 1 liegen. Der Standardwert ist 0,7.temperature
: Der Wert, der zum Modulieren der nächsten Token-Wahrscheinlichkeiten als Float verwendet wird. Sollte zwischen 0 und 1 liegen. Standardmäßig ist 1.repetition_penalty
: Der Parameter für die Wiederholungsstrafe als Float. 1,0 bedeutet keine Strafe. Standardmäßig ist 1.0.bad_words
: Liste der Token, die nicht generiert werden dürfen, als Liste von Zeichenfolgen. Der Standardwert ist null.remove_end_sequence
: Optional. Ob Sie die Zeichenfolge end_sequence
aus dem Ergebnis entfernen möchten. Der Standardwert ist „false“. client . generation ( "<Your input text>" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode gs_correction()
auf und übergeben Sie den zu korrigierenden Text:
client . gs_correction ( "<Your block of text>" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode image_generation()
auf und übergeben Sie die Textanweisung für das neue Bild, das Sie generieren möchten:
client . image_generation ( "<Your block of text>" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode intent_classification()
auf und übergeben Sie den Text, aus dem Sie Absichten extrahieren möchten:
client . intent_classification ( "<Your block of text>" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode kw_kp_extraction()
auf und übergeben Sie den Text, aus dem Sie Schlüsselwörter und Schlüsselphrasen extrahieren möchten:
client . kw_kp_extraction ( "<Your block of text>" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode langdetection()
auf und übergeben Sie den Text, den Sie analysieren möchten, um die Sprachen zu erkennen.
client . langdetection ( "<The text you want to analyze>" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode paraphrasing()
auf und übergeben Sie den Text, den Sie umschreiben möchten.
client . paraphrasing ( "<Your text to paraphrase>" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode question()
auf und übergeben Sie Folgendes:
client . question ( "<Your question>" , "<Your context>" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode semantic_search()
auf und übergeben Sie Ihre Suchabfrage.
client . semantic_search ( "Your search query" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode semantic_similarity()
auf und übergeben Sie eine Liste bestehend aus zwei Textblöcken, die Sie vergleichen möchten.
client . semantic_similarity ([ "<Block of text 1>" , "<Block of text 2>" ])
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode sentence_dependencies()
auf und übergeben Sie einen Textblock, der aus mehreren Sätzen besteht, für die Sie POS + Arcs ausführen möchten.
client . sentence_dependencies ( "<Your block of text>" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode sentiment()
auf und übergeben Sie Folgendes:
client . sentiment ( "<Your block of text>" , "<Your target element>" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode speech_synthesis()
auf und übergeben Sie den Text, den Sie in Audio konvertieren möchten:
client . speech_synthesis ( "<Your block of text>" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode summarization()
auf und übergeben Sie den Text, den Sie zusammenfassen möchten.
client . summarization ( "<Your text to summarize>" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die tokens()
Methode auf und übergeben Sie den Text, den Sie tokenisieren möchten.
client . tokens ( "<Your block of text>" )
Der obige Befehl gibt ein JSON-Objekt zurück.
Rufen Sie die Methode translation()
auf und übergeben Sie den Text, den Sie übersetzen möchten.
client . translation ( "<Your text to translate>" )
Der obige Befehl gibt ein JSON-Objekt zurück.