文字分類工作指南

MediaPipe 文字分類器工作可讓您將文字歸類到一組已定義的類別,例如正面或負面情緒。這些類別會在模型訓練期間定義這項工作會使用機器學習 (ML) 模型做為靜態資料來處理文字資料,並輸出類別清單及其可能性分數。

試試看!

開始使用

根據目前使用的平台,按照下列其中一項實作指南開始使用這項工作:

這些平台專用指南將逐步引導您完成這項工作的基本實作方式,包括建議的模型,以及含有建議設定選項的程式碼範例。

任務詳細資料

本節說明這項工作的功能、輸入、輸出和設定選項。

功能

  • 輸入文字處理 - 針對不含圖內代碼化的模型,支援圖形外的權杖化
  • 多個分類標頭:每個標頭都可以使用專屬的類別組合
  • 標籤地圖語言代碼 - 設定顯示名稱所使用的語言
  • 分數門檻:根據預測分數篩選結果
  • Top-K 分類結果:篩選偵測結果的數量
  • 標籤許可清單和拒絕清單:指定偵測到的類別
工作輸入內容 工作輸出內容
文字分類器接受下列輸入資料類型:
  • 字串
文字分類器會輸出包含以下內容的類別清單:
  • 類別索引:模型輸出的類別索引
  • 分數:這個類別的信心分數,以 0 與 1 之間的機率表示浮點值。
  • 類別名稱 (選填):TensorFlow Lite 模型中繼資料中指定的類別名稱 (如有)。
  • 類別顯示名稱 (選填):TensorFlow Lite 模型中繼資料中指定的類別顯示名稱,採用透過顯示名稱語言代碼選項指定的語言 (如有)。

設定選項

這項工作有以下設定選項:

選項名稱 說明 值範圍 預設值
displayNamesLocale 設定標籤語言,用於工作模型中繼資料內的顯示名稱 (如有)。英文的預設值是 en。您可以使用 TensorFlow Lite Metadata Writer API,在自訂模型的中繼資料中加入本地化標籤。語言代碼 en
maxResults 設定要傳回的最高評分分類結果數量上限 (選用)。如果小於 0,系統會傳回所有可用的結果。 任何正數 -1
scoreThreshold 設定預測分數門檻,覆寫模型中繼資料 (如有) 中提供的分數門檻。這個值下方的結果遭到拒絕。 不限浮點值 未設定
categoryAllowlist 設定允許的類別名稱 (選用)。如果不是空白,系統會篩除類別名稱不在這個組合中的分類結果。系統會忽略重複或不明的類別名稱。這個選項與 categoryDenylist 互斥,且同時使用兩者會導致錯誤。 任何字串 未設定
categoryDenylist 設定不允許使用的類別名稱清單。如果不是空白,系統會篩除類別名稱在此集合中的分類結果。系統會忽略重複或不明的類別名稱。這個選項與 categoryAllowlist 互斥,且同時使用兩者會導致錯誤。 任何字串 未設定

模型

文字分類器可與多個機器學習模型搭配使用。開始使用這項工作進行開發時,請先針對目標平台採用的預設建議模型。其他可用的模型通常會在效能、準確率、解析度和資源需求之間取得取捨,在某些情況下還包括其他功能。

預先訓練模型的訓練用了情緒分析,並預測輸入文字的情緒。模型是在 SST-2 (Stanford Sentiment Treebank) 資料集上訓練而成,其中包含標示為正面或負面的電影評論。請注意,這些模型僅支援英文。由於這些模型使用電影評論資料集來訓練,因此涵蓋其他主題區域的文字品質可能會降低。

這個模型使用 BERT 架構 (特別是 MobileBERT 模型),由於準確度高,因此建議使用。其中包含可讓工作執行超出圖形 BERT 權杖化的中繼資料。

模型名稱 輸入形狀 量化類型 版本
BERT 分類器 [1x128]、[1x128]、[1x128] 動態範圍 最新

平均字詞嵌入模型

這個模型使用一般的字詞嵌入架構。與 BERT 分類器相比,這個模型能減少模型大小並縮短延遲時間,但預測準確率較低。透過額外訓練來自訂這個模型,速度也比針對 BERT 分類器的訓練更快。這個模型包含的中繼資料,可讓工作執行超出圖表的規則運算式權杖化。

模型名稱 輸入形狀 量化類型 版本
平均字詞嵌入 1 張 256 張 無 (float32) 最新

工作基準

以下為整個管道根據上述預先訓練模型所產生的工作基準。延遲時間結果是 Pixel 6 使用 CPU / GPU 的平均延遲時間。

模型名稱 CPU 延遲時間 GPU 延遲時間
平均字詞嵌入 0.14 毫秒 -
BERT 分類器 57.68 毫秒 -

自訂模型

如要改善或變更所提供模型的功能,您可以在這項工作中使用自訂機器學習模型。您可以使用 Model Maker 修改現有模型,或使用 TensorFlow 等工具建構模型。與 MediaPipe 搭配使用的自訂模型必須採用 TensorFlow Lite 格式,且必須包含說明模型操作參數的特定中繼資料。建議您先使用 Model Maker 修改這項工作提供的模型,再建構自己的模型。