Watson Natural Language Processing fornisce modelli pre - addestrati in oltre 20 lingue. Sono curati da un team dedicato di esperti e valutati per la qualità su ogni lingua specifica. Questi modelli pre - addestrati possono essere utilizzati in ambienti di produzione senza doversi preoccupare di violazioni della licenza o della proprietà intellettuale.
Caricamento ed esecuzione di un modello
Per caricare un modello, è necessario conoscerne il nome. I nomi dei modelli seguono una convenzione standard che codifica il tipo di modello (come la classificazione o l'estrazione delle entità), il tipo di algoritmo (come SVM o trasformatori), il codice lingua e i dettagli del sistema tipo.
Per individuare il modello che corrisponde alle proprie esigenze, utilizzare il catalogo attività. Vedi Watson NLP task catalog.
Puoi individuare l'input previsto per una determinata classe di blocco (ad esempio, per il modello Citazioni entità) utilizzando help()
nel metodo della classe di blocco run()
:
import watson_nlp
help(watson_nlp.blocks.keywords.TextRank.run)
Watson Natural Language Processing incorpora la funzionalità del linguaggio naturale tramite blocchi e flussi di lavoro. Ogni blocco o flusso di lavoro supporta funzioni per:
load()
: caricare un modellorun()
: eseguire il modello sugli argomenti di inputtrain()
: addestra il modello sui tuoi propri dati (non tutti i blocchi e i flussi di lavoro supportano la formazione)save()
: salva il modello che è stato preparato sui tuoi dati
Blocchi
Esistono due tipi di blocchi:
I flussi di lavoro eseguono uno o più blocchi sul documento di input, in una pipeline.
Blocchi che operano direttamente sul documento di input
Un esempio di un blocco che opera direttamente sul documento di input è il blocco Sintassi, che esegue operazioni di elaborazione del linguaggio naturale come la tokenizzazione, la lemmatizzazione, parte del tagging vocale o l'analisi delle dipendenze.
Esempio: esecuzione dell'analisi della sintassi su un frammento di testo:
import watson_nlp
# Load the syntax model for English
syntax_model = watson_nlp.load('syntax_izumo_en_stock')
# Run the syntax model and print the result
syntax_prediction = syntax_model.run('Welcome to IBM!')
print(syntax_prediction)
Blocchi che dipendono da altri blocchi
I blocchi che dipendono da altri blocchi non possono essere applicati direttamente al documento di input. Vengono applicati all'output di uno o più blocchi precedenti. Ad esempio, il blocco Keyword Extraction dipende dal blocco Sintassi e frasi del nome.
Questi blocchi possono essere caricati ma possono essere eseguiti solo in un ordine particolare sul documento di input. Ad esempio:
import watson_nlp
text = "Anna went to school at University of California Santa Cruz. \
Anna joined the university in 2015."
# Load Syntax, Noun Phrases and Keywords models for English
syntax_model = watson_nlp.load('syntax_izumo_en_stock')
noun_phrases_model = watson_nlp.load('noun-phrases_rbr_en_stock')
keywords_model = watson_nlp.load('keywords_text-rank_en_stock')
# Run the Syntax and Noun Phrases models
syntax_prediction = syntax_model.run(text, parsers=('token', 'lemma', 'part_of_speech'))
noun_phrases = noun_phrases_model.run(text)
# Run the keywords model
keywords = keywords_model.run(syntax_prediction, noun_phrases, limit=2)
print(keywords)
Flussi di lavoro
I flussi di lavoro sono pipeline end-to-end predefinite da un documento non elaborato a un blocco finale, in cui tutti i blocchi necessari sono concatenati come parte della pipeline del flusso di lavoro.
Per un esempio di come richiamare il flusso di lavoro Entity Mentions, consultare questo esempio:
import watson_nlp
# Load the workflow model
mentions_workflow = watson_nlp.load('entity-mentions_transformer-workflow_multilingual_slate.153m.distilled')
# Run the entity extraction workflow on the input text
mentions_workflow.run('IBM announced new advances in quantum computing', language_code="en")
Argomento principale: Watson Natural Language Processing library