Introduzione all'API NLP Cloud

NLP Cloud è un'API che rende facile l'uso del Natural Language Processing in produzione. L'API è basata sui migliori modelli open-source modelli pre-addestrati. È anche possibile utilizzare i propri modelli o addestrare modelli sulla piattaforma. NLP Cloud la maggior parte delle caratteristiche di comprensione e generazione del testo: estrazione di entità (NER), analisi del sentimento, classificazione del testo, riassunto del testo, risposta alle domande, generazione di testo e tagging Part-of-speech (POS) tagging... e altro ancora!

L'API è disponibile gratuitamente fino a 3 richieste al minuto, che è un buon modo per testare facilmente la qualità dei modelli. Poi il primo piano a pagamento costa 29 dollari al mese (per 15 richieste al minuto).

Vediamo come usare l'API in questo tutorial.

Perché NLP Cloud?

L'implementazione di modelli AI in produzione è una frequente fonte di fallimento del progetto. I modelli di elaborazione del linguaggio naturale sono molto e garantire un'alta disponibilità di questi modelli in produzione, pur avendo buoni tempi di risposta tempi di risposta, è una sfida. Ci vogliono infrastrutture costose e competenze avanzate di DevOps, programmazione e AI competenze.

L'obiettivo di NLP Cloud è quello di aiutare le aziende a sfruttare rapidamente i loro modelli in produzione, senza alcun compromesso sulla qualità e a prezzi accessibili.

Creare un account

L'iscrizione è molto veloce. Basta visitare la pagina di registrazione e inserisci la tua email + password (registrarsi qui).

Registrati su NLP Cloud

Ora sei nella tua dashboard e puoi vedere il tuo token API. Tieni questo token al sicuro, ti servirà per tutte le chiamate API che farai.

Diversi snippet di codice sono forniti nella vostra dashboard per permettervi di prendere rapidamente velocità. Per maggiori dettagli, puoi leggere la documentazione (vedere la documentazione qui).

Documentazione su NLP Cloud

NLP Cloud API Client Libs

NLP Cloud ti fornisce, out-of-the-box, la maggior parte delle caratteristiche tipiche del Natural Language Processing, sia grazie a modelli spaCy o Hugging Face pre-addestrati, oppure caricando i propri modelli spaCy.

Al fine di rendere l'API facile da usare, NLP Cloud fornisce librerie client in diversi linguaggi (Python, Ruby, PHP, Go, Node.js). Nel resto di questo tutorial, useremo la libreria Python.

Usare PIP per installare la libreria Python:

pip install nlpcloud

Estrazione di entità (NER)

L'estrazione delle entità è fatta tramite spaCy. Sono disponibili tutti i modelli "grandi" pre-addestrati di spaCy, il che significa che sono disponibili 15 lingue (maggiori dettagli su tutti questi modelli sul sito web di spaCy). Puoi anche caricare modelli in-house spaCy che hai sviluppato da solo per usarli in produzione. Se questo è ciò che Se è quello che si vuole, basta andare alla sezione "Modelli personalizzati" nel proprio cruscotto:

Caricare modelli personalizzati di elaborazione del linguaggio naturale

Ora immaginiamo di voler estrarre le entità dalla frase "John Doe lavora per Microsoft a Seattle dal 1999." grazie al modello spaCy preaddestrato per l'inglese ("en_core_web_lg"). Ecco come dovresti procedere:

import nlpcloud

client = nlpcloud.Client("en_core_web_lg", "")
client.entities("John Doe has been working for Microsoft in Seattle since 1999.")

Restituirà il contenuto di ogni entità estratta e la sua posizione nella frase.

Analisi del sentimento

L'analisi del sentimento è realizzata grazie ai trasformatori Hugging Face e Distilbert Base Uncased Finetuned SST 2 English. Ecco un esempio:

import nlpcloud

client = nlpcloud.Client("distilbert-base-uncased-finetuned-sst-2-english", "")
client.sentiment("NLP Cloud proposes an amazing service!")

Vi dirà se il sentimento generale in questo testo è piuttosto positivo o negativo, e la sua probabilità.

Classificazione del testo

La classificazione del testo si ottiene grazie ai trasformatori Hugging Face e Facebook's Bart Large MNLI. Ecco un esempio:

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)

Come potete vedere, stiamo passando un blocco di testo che stiamo cercando di classificare, insieme a possibili categorie. L'ultimo argomento è un booleano che definisce se si può applicare una sola categoria o più categorie.

Restituirà la probabilità per ogni categoria.

Riassunto del testo

Il riassunto del testo è ottenuto grazie ai trasformatori Hugging Face e Facebook's Bart Large CNN. Ecco un esempio:

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.""")

Restituirà un riassunto di quanto sopra. Questo è un riassunto "astrattivo" e non "estrattivo". il che significa che potrebbero essere generate nuove frasi e quelle non importanti vengono rimosse. Tuttavia le frasi non essenziali vengono rimosse, naturalmente.

Risposta alle domande

La risposta alle domande si ottiene grazie ai trasformatori Hugging Face e Deepset's Roberta Base Squad 2. Ecco un esempio:

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?")

Qui si tratta di rispondere a una domanda grazie a un contesto.

Per esempio l'esempio precedente restituirà "Emmanuel Macron".

Etichettatura part-of-Speech (POS)

L'etichettatura delle parti del discorso si ottiene grazie agli stessi modelli spaCy utilizzati per l'estrazione delle entità. Quindi per esempio, se si vuole utilizzare il modello pre-addestrato inglese, ecco come si dovrebbe fare:

import nlpcloud

client = nlpcloud.Client("en_core_web_lg", "")
client.dependencies("John Doe is a Go Developer at Google")

Restituirà la parte di parola di ogni token nella frase e la sua dipendenza da altri token.

Conclusione

NLP Cloud è un'API per l'elaborazione del linguaggio naturale che è facile da usare e che aiuta a risparmiare molto tempo nella produzione.

Sono disponibili altri modelli, come la traduzione, il rilevamento della lingua, la generazione di testo... E molto di più.

Si noti inoltre che, per esigenze di prestazioni critiche, vengono proposti anche piani GPU.

Spero che questo articolo sia stato utile a qualcuno di voi! Se avete qualche domanda, non esitate a farmelo sapere. sapere.

Julien Salinas
CTO di NLP Cloud