Watson Natural Language Processing 程式庫

Watson Natural Language Processing 程式庫提供基本自然語言處理功能,可針對各種文字處理作業 (例如觀感分析、關鍵字擷取及向量化) 進行語法分析及現成的預先訓練模型。 Watson Natural Language Processing 程式庫僅適用於 Python 。

使用 Watson Natural Language Processing ,您可以將非結構化資料轉換為結構化資料,讓資料更容易瞭解並可轉移,特別是如果您使用非結構化與結構化資料的混合。 這類資料的範例有客服中心記錄、客戶抱怨、社交媒體貼文或問題報告。 非結構化資料通常是包含具有結構化資料之直欄的較大資料記錄的一部分。 從非結構化資料擷取意義和結構,並將此資訊與結構化資料直欄中的資料相結合,可讓您更深入瞭解輸入資料,並可協助您做出更好的決策。

Watson Natural Language Processing 提供 20 種以上語言的預先訓練模型。 他們由專門的專家團隊負責策劃,並評估每種特定語言的品質。 這些預先訓練的模型可以在正式作業環境中使用,而無需擔心授權或智慧財產權違規。

雖然您可以建立自己的模型,但開始使用 Watson Natural Language Processing 最簡單的方法是對非結構化文字執行預先訓練模型,以執行語言處理作業。

以下是 Watson Natural Language Processing 預先訓練模型中可用的語言處理作業範例:

  • 語法: 記號化、詞形還原化、詞性標記及相依關係剖析
  • 實體擷取: 尋找實體的提及項目 (例如人員、組織或日期)
  • 關鍵字擷取: 擷取輸入文字中相關的名詞詞組
  • 文字分類: 分析文字,然後根據其內容指派一組預先定義的標籤或種類
  • 觀感分類: 輸入文件是正面、負面或中立?
  • 音調分類: 分類輸入文件中的音調 (例如興奮、沮喪或悲傷)
  • 情緒分類: 分類輸入文件的情緒 (例如憤怒或厭惡)
  • 關鍵字擷取: 擷取輸入文字中相關的名詞詞組
  • 內嵌: 將個別單字或較大的文字 Snippet 對映至向量空間

在 Notebook 中使用 Watson Natural Language Processing

服務 只有在安裝 Jupyter Notebooks with Python 3.10 或 Python 3.9 服務時,才能使用 Watson Natural Language Processing 程式庫。 此外,必須在 IBM Cloud Pak for Data 平台上安裝預先訓練的 Natural Language Processing 模型。 請參閱 指定預設執行時期的其他安裝選項 (適用於 Python 3.10 ) 及 指定其他安裝選項 (適用於 Python 3.9)。

您可以在下列提供的預設環境中使用 Watson Natural Language Processing 程式庫來執行 Python Notebook。

* Runtime 22.1 已淘汰。

包含 Watson Natural Language Processing 程式庫的環境範本
名稱 硬體配置
Python 3.9 * 上的執行時期 22.1 1 顆 vCPU 和 2 GB RAM
Python 3.10 上的 執行時期 22.2 1 顆 vCPU 和 2 GB RAM

執行時期 22.x 環境不夠大,無法執行使用預先建置模型的 Notebook。 例如,若要執行「語法」及「觀感」模型,您需要具有 1 vCPU 及 4 GB RAM 的環境。 若要使用較大的環境,您必須建立預設 (僅限 CPU) 或 GPU 類型的自訂環境範本。 當您建立此範本時,請考量下列事項:

  • 環境必須至少具有 4 GB 記憶體,以及下列其中一個軟體版本:

    • Python 3.9 * 上的執行時期 22.1
    • Python 3.10 上的執行時期 22.2
    • Python 3.9 * 上的 JupyterLab with Runtime 22.1
    • Python 3.10 上 JupyterLab with Runtime 22.2
  • 如果具有 Python for GPU 服務的 Jupyter Notebook 安裝在 IBM Cloud Pak for Data 平台上,則您只能在建立自訂範本時選取類型 GPU。 依預設無法使用 GPU 環境。 如需詳細資料,請參閱 GPU 環境

使用預先訓練的模型

Watson Natural Language Processing 會透過 區塊 封裝自然語言功能,其中每一個區塊支援下列功能:

  • load(): 載入區塊模型。
  • run(): 對輸入引數執行區塊。
  • train(): 根據您自己的資料訓練區塊。 並非所有區塊都支援訓練。
  • save(): 儲存您根據自己的資料所訓練的區塊模型。

有兩種類型的區塊:

直接在輸入文件上運作的區塊

直接在輸入文件上運作的區塊範例是「語法」區塊,它會執行自然語言處理作業,例如記號化、詞形還原化、詞性標記或相依關係剖析。

此區塊可以直接載入並在輸入文件上執行。 例如:

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

# Load Syntax and a Entity Mention model for English
syntax_model = watson_nlp.load('syntax_izumo_en_stock')
entity_model = watson_nlp.load('entity-mentions_bert_multi_stock')

# Run the syntax model on the input text
syntax_prediction = syntax_model.run('IBM announced new advances in quantum computing')

# Now run the entity mention model on the result of syntax
entity_mentions = entity_model.run(syntax_prediction)
print(entity_mentions)

載入並執行模型

Watson Natural Language Processing 包含 load() 函數,可讓您將預先訓練模型快速載入至 Notebook。 若要載入模型,您首先需要知道其名稱。 模型名稱遵循標準慣例來編碼模型類型 (例如分類或實體擷取)、演算法類型 (例如 BERT 或 SVM)、語言碼及類型系統的詳細資料。

若要尋找要使用的正確區塊,請使用區塊型錄。 請參閱 Watson NLP 區塊型錄

您可以在區塊類別 run() 方法上使用 help() ,來尋找給定區塊類別 (例如「實體提及」模型) 的預期輸入:

import watson_nlp

help(watson_nlp.blocks.entity_mentions.BERT.run)

專案和 Notebook 範例

為了協助您開始使用 Watson Natural Language Processing 程式庫,您可以從 Notebook 和專案中的 Data Science 範例 GitHub 儲存庫下載範例專案和 Notebook。 範例專案中的 Notebook 示範如何使用不同的 Watson Natural Language Processing 區塊,以及如何訓練您自己的模型。

請注意,您需要針對要在其中執行 Notebook 的執行時期環境,下載範例專案及 Notebook。

樣本記事本

範例專案

如果您不想將範例 Notebook 個別下載至專案,則可以下載整個範例專案。

範例專案包含前一節中列出的範例 Notebook ,包括:

  • 使用 Watson Natural Language Processing 分析旅館評論

    此筆記本顯示如何使用語法分析從旅館檢閱中擷取最常用的名詞,分類檢閱的觀感,以及針對最常擷取的層面使用面向層面的觀感分析。 此 Notebook 所使用的資料檔案作為資料資產包含在專案中。

範例專案包含範例 Notebook 的自訂環境範本。 如果您想要建立自己的範本,請確定它們至少有 4 GB 記憶體。 Complaint classification with Watson Natural Language processing 記事本需要具有至少 8 GB 記憶體的自訂範本。

進一步瞭解

上層主題: Notebook 的程式庫及 Script