使用預先訓練的模型
Watson Natural Language Processing 提供 20 種以上語言的預先訓練模型。 他們由專門的專家團隊負責策劃,並評估每種特定語言的品質。 這些預先訓練的模型可以在正式作業環境中使用,而無需擔心授權或智慧財產權違規。
載入並執行模型
若要載入模型,您首先需要知道其名稱。 模型名稱遵循標準慣例來編碼模型類型 (例如分類或實體擷取)、演算法類型 (例如 BERT 或 SVM)、語言碼及類型系統的詳細資料。
若要尋找符合您需求的模型,請使用作業型錄。 請參閱 Watson NLP 作業型錄。
您可以在區塊類別 run() 方法上使用 help() ,來尋找給定區塊類別 (例如「實體提及」模型) 的預期輸入:
import watson_nlp
help(watson_nlp.blocks.keywords.TextRank.run)
Watson Natural Language Processing 會透過區塊和工作流程封裝自然語言功能。 每一個區塊或工作流程都支援下列功能:
load(): 載入模型run(): 對輸入引數執行模型train(): 根據您自己的資料訓練模型 (並非所有區塊及工作流程都支援訓練)save(): 儲存已根據您自己的資料訓練的模型
區塊數目
有兩種類型的區塊:
工作流程 在管線中對輸入文件執行多個區塊。
直接在輸入文件上運作的區塊
直接在輸入文件上運作的區塊範例是「語法」區塊,它會執行自然語言處理作業,例如記號化、詞形還原化、詞性標記或相依關係剖析。
範例: 對文字 Snippet 執行語法分析:
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)
相依於其他區塊的區塊
無法直接在輸入文件上套用相依於其他區塊的區塊。 它們會套用在一個以上前置區塊的輸出上。 例如,「關鍵字擷取」區塊取決於「語法和名詞詞組」區塊。
這些區塊可以載入,但只能在輸入文件上以特定順序執行。 例如:
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)
工作流程
工作流程是從原始文件到最終區塊的預先定義端對端管線,其中所有必要區塊都會鏈結為工作流程管線的一部分。 例如,執行時期 22.2 中提供的「實體提及項目」區塊需要語法分析結果,因此端對端處理程序會是: 輸入文字-> 語法分析-> 實體提及項目-> 實體提及項目結果。 從執行時期 23.1開始,您可以呼叫「實體提及」工作流程。 請參閱下列範例:
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")