Watson Natural Language Processing stellt vorab trainierte Modelle in über 20 Sprachen zur Verfügung. Sie werden von einem Team engagierter Fachleute kuratiert und in jeder unterstützten Sprache auf Qualität geprüft. Diese vorab trainierten Modelle können in Produktionsumgebungen ohne Bedenken im Hinblick auf Verstöße gegen Lizenzen oder geistiges Eigentum genutzt werden.
Modell laden und ausführen
Um ein Modell zu laden, müssen Sie zunächst seinen Namen kennen. Modellnamen folgen einer Standardkonvention, die den Typ des Modells (z. B. Klassifikation oder Entitätsextraktion), den Typ des Algorithmus (z. B. SVM oder Transformer), den Sprachencode und Details des Typsystems codiert.
Verwenden Sie den Taskkatalog, um das Modell zu finden, das Ihren Anforderungen entspricht. Siehe Watson NLP-Taskkatalog.
Die erwartete Eingabe für eine bestimmte Blockklasse (z. B. für das Modell 'Entitätserwähnungen') können Sie mithilfe von help()
in der Methode run()
der Blockklasse finden:
import watson_nlp
help(watson_nlp.blocks.keywords.TextRank.run)
Watson Natural Language Processing umfasst Funktionen für natürliche Sprache durch Blöcke und Workflows. Jeder Block oder Workflow unterstützt Funktionen für Folgendes:
load()
: Modell ladenrun()
: Modell für Eingabeargumente ausführentrain()
: Trainieren Sie das Modell mit Ihren eigenen Daten (nicht alle Blöcke und Workflows unterstützen das Training)save()
: Speichern Sie das Modell, das mit Ihren eigenen Daten trainiert wurde.
Blöcke
Es gibt zwei Typen von Blöcken:
Workflows führen einen weiteren Block für das Eingabedokument in einer Pipeline aus.
Blöcke, die direkt mit dem Eingabedokument arbeiten
Ein Beispiel für einen Block, der direkt am Eingabedokument arbeitet, ist der Syntaxblock, der Verarbeitungsoperationen für natürliche Sprache wie Zerlegung in Tokens, Reduktion auf Grundform, Wortarttagging oder Abhängigkeitsparsing ausführt.
Beispiel: Ausführen der Syntaxanalyse für ein Textsnippet:
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)
Blöcke, die von anderen Blöcken abhängen
Von anderen Blöcken abhängige Blöcke können nicht direkt auf das Eingabedokument angewendet werden. Sie werden auf die Ausgabe von mindestens einem vorhergehenden Block angewendet. Der Block für Schlüsselwortextraktion hängt beispielsweise vom Block für Syntax-und Nomen-Ausdrücke ab.
Diese Blöcke können geladen werden, aber sie können nur in einer bestimmten Reihenfolge auf das Eingabedokument angewendet werden. Beispiel:
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)
Workflows
Workflows sind vordefinierte End-to-End-Pipelines von einem unformatierten Dokument zu einem endgültigen Block, wobei alle erforderlichen Blöcke als Teil der Workflow-Pipeline verkettet werden.
Ein Beispiel für den Aufruf des Workflow Entity Mentions finden Sie in diesem Beispiel:
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")
Übergeordnetes Thema: Watson Natural Language Processing-Bibliothek