"NLP Cloud" - tai API, leidžianti lengvai naudoti natūralios kalbos apdorojimą gamyboje. API pagrįsta geriausiais atvirojo kodo iš anksto parengtais modeliais. Taip pat galite naudoti savo modelius arba mokyti modelius platformoje. NLP Cloud dauguma teksto supratimo ir teksto kūrimo funkcijų: esybių išskyrimas (NER), nuotaikų analizė, teksto klasifikavimą, teksto apibendrinimą, atsakymą į klausimus, teksto generavimą ir kalbos dalių (angl. Part-of-speech, POS) žymėjimas... ir dar daugiau!
API galima naudotis nemokamai iki 3 užklausų per minutę - tai geras būdas lengvai išbandyti kokybę. modelių. Tada pirmieji mokami planai kainuoja 29 JAV dolerius per mėnesį (15 užklausų per minutę).
Pažiūrėkime, kaip šioje pamokoje naudoti API.
AI modelių diegimas gamyboje yra dažnas projekto nesėkmės šaltinis. Natūralios kalbos apdorojimo modeliai yra labai imlūs ištekliams daug, todėl užtikrinant didelį šių modelių prieinamumą gamyboje ir gerą atsako laiką, yra iššūkis. Tam reikia brangios infrastruktūros ir pažangių DevOps, programavimo ir dirbtinio intelekto įgūdžių.
"NLP Cloud" tikslas - padėti įmonėms greitai panaudoti savo modelius gamyboje be jokių kompromisų. kokybės ir už prieinamą kainą.
Užsiregistruoti galima labai greitai. Tiesiog apsilankykite registracijos puslapį ir užpildykite savo el. pašto adresą + slaptažodį (registruokitės čia).

Dabar esate savo prietaisų skydelyje ir matote savo API simbolį. Saugokite šį simbolį, nes jums jo prireiks visiems API skambučiams, kuriuos atliksite.
Keletas kodo fragmentų pateikiama prietaisų skydelyje, kad galėtumėte greitai pradėti dirbti. daugiau informacijos, galite perskaityti dokumentaciją (žr. dokumentaciją čia).

"NLP Cloud" suteikia daugumą tipinių natūralios kalbos apdorojimo funkcijų, nes iš anksto apmokytus spaCy ar Hugging Face modelius arba įkeliant savo spaCy modelius.
Kad API būtų lengva naudoti, "NLP Cloud" pateikia klientų bibliotekas keliomis kalbomis. (Python, Ruby, PHP, Go, Node.js). Likusioje šios pamokos dalyje naudosime Python lib.
Norėdami įdiegti "Python" lib, naudokite PIP:
pip install nlpcloud
Subjektų išskyrimas atliekamas naudojant spaCy. Galima naudotis visais spaCy "dideliais" iš anksto apmokytais modeliais, kurie tai reiškia, kad galima naudotis 15 kalbų (daugiau informacijos apie visus šiuos modelius rasite spaCy svetainėje). Taip pat galite įkelti pasirinktinius savo sukurtus vidaus spaCy modelius, kad galėtumėte juos naudoti gamyboje. Jei tai norite, tiesiog eikite į prietaisų skydelio skyrių "Custom Models" (pasirinktiniai modeliai):
Dabar įsivaizduokime, kad norite išskirti esybes iš sakinio "Johnas Doe dirbo "Microsoft" Sietle nuo 1999 m." pagal iš anksto apmokytą anglų kalbos spaCy modelį ("en_core_web_lg"). Štai kaip turėtumėte elgtis:
import nlpcloud
client = nlpcloud.Client("en_core_web_lg", "")
client.entities("John Doe has been working for Microsoft in Seattle since 1999.")
Jis grąžins kiekvieno išskleisto objekto turinį ir jo vietą sakinyje.
Sentimentų analizė atliekama naudojant "Hugging Face" transformatorius ir Distilbert Base Uncased Finetuned SST 2 English. Štai pavyzdys:
import nlpcloud
client = nlpcloud.Client("distilbert-base-uncased-finetuned-sst-2-english", "")
client.sentiment("NLP Cloud proposes an amazing service!")
Jis parodys, ar bendra šio teksto nuotaika yra labiau teigiama, ar neigiama, ir jos tikimybė.
Tekstas klasifikuojamas naudojant "Hugging Face" transformatorius ir Facebook's Bart Large MNLI. Štai pavyzdys:
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)
Kaip matote, perduodame teksto bloką, kurį norime klasifikuoti, ir galimas kategorijas. Paskutinis argumentas yra loginis veiksnys, kuris apibrėžia, ar gali būti taikoma viena kategorija, ar kelios.
Bus grąžinta kiekvienos kategorijos tikimybė.
Teksto apibendrinimas atliekamas naudojant "Hugging Face" transformatorius ir Facebook's Bart Large CNN. Štai pavyzdys:
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.""")
Bus grąžinta pirmiau pateiktų duomenų santrauka. Tai "abstrakti" santrauka, o ne "ištraukiamoji". tai reiškia, kad gali būti sukurti nauji sakiniai, o nesvarbūs pašalinami. Tačiau nereikšmingi sakiniai, žinoma, pašalinami.
Atsakyti į klausimus padeda "Hugging Face" transformatoriai ir Deepset's Roberta Base Squad 2. Čia yra pavyzdys:
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?")
Šiuo atveju kalbama apie atsakymą į klausimą dėl konteksto.
Pavyzdžiui, pirmiau pateiktame pavyzdyje bus grąžinta "Emmanuel Macron".
Dalies kalbos žymėjimas atliekamas naudojant tuos pačius spaCy modelius, kurie naudojami išskiriant esybes. Taigi pavyzdžiui, jei norite naudoti iš anksto parengtą anglų kalbos modelį, turėtumėte elgtis taip:
import nlpcloud
client = nlpcloud.Client("en_core_web_lg", "")
client.dependencies("John Doe is a Go Developer at Google")
Ji grąžins kiekvieno sakinio simbolio kalbos dalį ir jo priklausomybę nuo kitų simbolių.
"NLP Cloud" - tai natūralios kalbos apdorojimo API, kuria lengva naudotis ir kuri padeda sutaupyti daug laiko.
Yra ir daugiau modelių, pavyzdžiui, vertimo, kalbos nustatymo, teksto generavimo... Ir dar daugiau.
Taip pat atkreipkite dėmesį, kad, esant kritiniams našumo poreikiams, taip pat siūlomi GPU planai.
Tikiuosi, kad šis straipsnis buvo naudingas kai kuriems iš jūsų! Jei turite kokių nors klausimų, nedvejodami praneškite man praneškite.
Julien Salinas
NLP Cloud techninis direktorius