Python 的語言偵測指南

MediaPipe 語言偵測工具工作可讓您找出一段文字的語言。這些 操作說明會示範如何搭配使用語言偵測器與 Python。程式碼範例 您可在 GitHub

您可以前往 demo」。 進一步瞭解功能、模型和設定選項 請參閱總覽

程式碼範例

語言偵測器的範例程式碼提供了 執行相關作業這個程式碼可協助您測試這項工作 您就可以開始打造自己的語言偵測功能您可以查看、執行 編輯語言偵測器 程式碼範例 只要使用網路瀏覽器即可。

設定

本節說明設定開發環境的重要步驟,以及 專門使用 Language Detector 的程式碼專案如需 設定開發環境以使用 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 語言偵測器工作需要一個與此相容的已訓練模型 工作。如要進一步瞭解語言偵測器可用的已訓練模型,請參閱: 工作總覽的「Models」(模型) 區段。

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

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) 資料。這個工作會處理資料輸入 預先處理作業,包括權杖化和 Tensor 預先處理所有語言 預先處理會在 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 範例應用程式