Python 的語言偵測指南

MediaPipe 語言偵測器工作可讓您識別一段文字的語言。這些操作說明會示範如何搭配 Python 使用語言偵測器。您可以前往 GitHub 取得這些操作說明所述的程式碼範例。

如要查看這項工作的運作情形,請查看示範。如要進一步瞭解這項工作的功能、模型和設定選項,請參閱總覽

程式碼範例

語言偵測工具的範例程式碼提供這項工作的完整實作 Python 供您參考。這段程式碼可協助您測試這項工作,並開始建構自己的語言偵測功能。只要使用網路瀏覽器,您就可以查看、執行及編輯語言偵測器程式碼範例

設定

本節說明設定開發環境的重要步驟,以及專門用來使用語言偵測工具的程式碼專案。如需瞭解如何使用 MediaPipe 工作設定開發環境的一般資訊,包括平台版本需求,請參閱 Python 設定指南

套裝組合

語言偵測器使用 Mediapipe pip 套件。您可以使用以下項目安裝依附元件:

$ python -m pip install mediapipe

匯入

匯入下列類別即可存取語言偵測工具工作函式:

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text

型號

MediaPipe Language Detector 工作需要使用與這項工作相容的已訓練模型。如要進一步瞭解語言偵測工具的可用訓練模型,請參閱工作總覽模型一節。

選取並下載模型,然後將其儲存在專案目錄中:

model_path = '/absolute/path/to/language_detector.tflite'

請使用 BaseOptions 物件 model_asset_path 參數指定模型路徑,如下所示:

base_options = BaseOptions(model_asset_path=model_path)

建立工作

MediaPipe 語言偵測工具工作會使用 create_from_options 函式設定工作。create_from_options 函式可接受設定選項的值,用來設定偵測工具選項。此外,您也可以使用 create_from_model_path 工廠函式來初始化工作。create_from_model_path 函式可接受已訓練模型檔案的相對或絕對路徑。如要進一步瞭解如何設定工作,請參閱「設定選項」。

下列程式碼示範如何建構及設定這項工作。

base_options = python.BaseOptions(model_asset_path=model_path)
options = text.LanguageDetectorOptions(base_options=base_options)

設定選項

這項工作的 Python 應用程式設定選項如下:

選項名稱 說明 值範圍 預設值
max_results 設定要傳回的得分最高語言預測結果 (選用) 數量上限。如果這個值小於零,系統會傳回所有可用的結果。 任何正數 -1
score_threshold 設定預測分數門檻,覆寫模型中繼資料 (如有) 中提供的分數門檻。這個值下方的結果遭到拒絕。 不限浮點值 未設定
category_allowlist 設定允許的語言代碼清單 (選用)。如果不是空白,系統會篩除語言代碼未在此組合中的語言預測。這個選項與 category_denylist 互斥,且同時使用兩者會導致錯誤。 任何字串 未設定
category_denylist 設定系統不接受的語言代碼清單 (選填)。如果不是空白,系統會篩除語言代碼在此組合中的語言預測。這個選項與 category_allowlist 互斥,且同時使用兩者會導致錯誤。 任何字串 未設定

準備資料

語言偵測工具處理文字 (str) 資料。這項工作會處理資料輸入預先處理作業,包括代碼化和張量預先處理。所有預先處理作業都會在 detect 函式中處理。不需要事先對輸入文字進行額外的預先處理。

input_text = 'The input text to be classified.'

執行工作

語言偵測工具使用 detect 函式觸發推論。針對語言偵測作業,這意味著傳回輸入文字的可能語言。

下列程式碼示範如何使用工作模型執行處理。

with python.text.LanguageDetector.create_from_options(options) as detector:
  detection_result = detector.detect(input_text)

處理並顯示結果

語言偵測工具會輸出 LanguageDetectorResult,其中包含語言預測結果清單和這些預測結果的機率。以下為這項工作的輸出資料範例:

LanguageDetectorResult:
  LanguagePrediction #0:
    language_code: "fr"
    probability: 0.999781

對輸入文字執行模型後,已取得這項結果:"Il y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent."

如需處理並以視覺化方式呈現這項工作結果所需的程式碼範例,請參閱 Python 範例應用程式