NLP Cloud is een API die het gemakkelijk maakt om Natural Language Processing in productie te gebruiken. De API is gebaseerd op de beste open-source voorgetrainde modellen. U kunt ook uw eigen modellen gebruiken of modellen trainen op het platform. NLP Cloud de meeste van de tekstbegrip en tekstgeneratie functies: entiteiten extractie (NER), sentiment analyse, tekstclassificatie, samenvatten van tekst, beantwoorden van vragen, tekstgeneratie, en Part-of-speech (POS) tagging ... en nog veel meer!
De API is gratis beschikbaar tot 3 verzoeken per minuut, wat een goede manier is om gemakkelijk de kwaliteit te testen van de modellen. Vervolgens kosten de eerste betaalde plannen $29 per maand (voor 15 verzoeken per minuut).
Laten we eens kijken hoe we de API in deze handleiding kunnen gebruiken.
Het uitrollen van AI-modellen naar productie is een frequente bron van projectmislukking. Natuurlijke taalverwerkingsmodellen zijn zeer intensief, en het garanderen van een hoge beschikbaarheid van deze modellen in productie, met een goede tijden, is een uitdaging. Het vergt een dure infrastructuur en geavanceerde DevOps-, programmeer- en AI vaardigheden.
Het doel van NLP Cloud is om bedrijven te helpen hun modellen snel in productie te nemen, zonder enig compromis aan kwaliteit, en tegen betaalbare prijzen.
Aanmelden gaat heel snel. Bezoek gewoon de registratie pagina en vul uw e-mail + wachtwoord (hier registreren).

U bent nu in uw dashboard en u kunt uw API token zien. Bewaar dit token veilig, u zult het nodig hebben nodig hebben voor alle API calls die u zult maken.
In uw dashboard vindt u verschillende codefragmenten, zodat u snel aan de slag kunt. Voor meer details, kunt u vervolgens de documentatie (zie de documentatie hier).

NLP Cloud biedt u, out-of-the-box, de meeste van de typische Natural Language Processing-functies, hetzij dankzij voorgetrainde spaCy- of Hugging Face-modellen, of door uw eigen spaCy-modellen te uploaden.
Om de API gebruiksvriendelijk te maken, voorziet NLP Cloud u van clientbibliotheken in verschillende talen (Python, Ruby, PHP, Go, Node.js). In de rest van deze tutorial gaan we de Python lib gebruiken.
Gebruik PIP om de Python lib te installeren:
pip install nlpcloud
Entiteiten extractie wordt gedaan via spaCy. Alle spaCy "grote" voorgetrainde modellen zijn beschikbaar, wat betekent dat 15 talen beschikbaar zijn (meer details over al deze modellen op de spaCy website). U kunt ook aangepaste spaCy-modellen uploaden die u zelf hebt ontwikkeld om ze in productie te gebruiken. Als dat is wat wilt, ga dan naar de sectie "Aangepaste modellen" in uw dashboard:
Stel u nu voor dat u entiteiten wilt extraheren uit de zin "John Doe werkt sinds 1999 voor Microsoft in Seattle sinds 1999." dankzij het voorgetrainde spaCy-model voor Engels ("en_core_web_lg"). Hier is hoe u te werk moet gaan:
import nlpcloud
client = nlpcloud.Client("en_core_web_lg", "")
client.entities("John Doe has been working for Microsoft in Seattle since 1999.")
Het zal de inhoud van elke geëxtraheerde entiteit en zijn positie in de zin teruggeven.
Sentimentanalyse wordt bereikt dankzij Hugging Face transformatoren en Distilbert Base Uncased Finetuned SST 2 English. Hier is een voorbeeld:
import nlpcloud
client = nlpcloud.Client("distilbert-base-uncased-finetuned-sst-2-english", "")
client.sentiment("NLP Cloud proposes an amazing service!")
Het zal u vertellen of het algemene sentiment in deze tekst eerder positief of negatief is, en de waarschijnlijkheid.
Tekstclassificatie wordt bereikt dankzij Hugging Face transformers en Facebook's Bart Large MNLI. Hier is een voorbeeld:
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)
Zoals u kunt zien, geven we een blok tekst door dat we proberen te classificeren, samen met mogelijke categorieën. Het laatste argument is een booleaans dat bepaalt of één enkele categorie of meerdere van toepassing kunnen zijn.
Het zal de waarschijnlijkheid voor elke categorie teruggeven.
Tekstsamenvatting wordt bereikt dankzij Hugging Face transformers en Facebook's Bart Large CNN. Hier is een voorbeeld:
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.""")
Het zal een samenvatting van het bovenstaande opleveren. Dit is een "abstracte" samenvatting, en niet een "extractieve" wat betekent dat nieuwe zinnen kunnen worden gegenereerd, en niet-belangrijke zinnen worden verwijderd. Maar niet-essentiële zinnen worden natuurlijk wel verwijderd.
Het beantwoorden van vragen wordt bereikt dankzij Hugging Face transformers en Deepset's Roberta Base Squad 2. Hier is een voorbeeld:
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 gaat het om het beantwoorden van een vraag dankzij een context.
Het bovenstaande voorbeeld zal bijvoorbeeld "Emmanuel Macron" opleveren.
Part-Of-Speech tagging wordt bereikt dankzij dezelfde spaCy-modellen als die welke worden gebruikt voor de extractie van entiteiten. Dus bijvoorbeeld als u bijvoorbeeld het vooraf getrainde Engelse model wilt gebruiken, moet u als volgt te werk gaan:
import nlpcloud
client = nlpcloud.Client("en_core_web_lg", "")
client.dependencies("John Doe is a Go Developer at Google")
Het geeft de part-of-speech van elk token in de zin, en zijn afhankelijkheid van andere tokens.
NLP Cloud is een API voor natuurlijke taalverwerking die gemakkelijk te gebruiken is en waarmee u veel tijd kunt besparen bij de productie.
Er zijn meer modellen beschikbaar, zoals vertalen, taalherkenning, tekstgeneratie... En nog veel meer.
Voor kritieke prestatiebehoeften worden ook GPU-plannen voorgesteld.
Ik hoop dat dit artikel nuttig was voor sommigen van jullie! Als je vragen hebt, aarzel dan niet om het me te laten weten.
Julien Salinas
CTO bij NLP Cloud