MediaPipe 語言偵測工具工作可讓您找出一段文字的語言。這些 操作說明,示範如何搭配使用語言偵測器與 Android 應用程式。程式碼 您可在 GitHub。
您可以前往 demo」。 進一步瞭解功能、模型和設定選項 請參閱總覽。
程式碼範例
語言偵測器的範例程式碼提供了一項簡單的實作 做為參考的任務這個程式碼可協助您測試這項工作並開始進行 建構自己的語言偵測功能您可以瀏覽 語言偵測工具範例程式碼 。
下載程式碼
如要下載範例程式碼,請按照下列步驟操作:
- 使用下列指令複製 git 存放區:
git clone https://github.com/google-ai-edge/mediapipe-samples
- 您也可以選擇設定 Git 執行個體,以使用稀疏結帳功能。
因此,您僅使用語言偵測器範例應用程式的檔案:
cd mediapipe git sparse-checkout init --cone git sparse-checkout set examples/languagedetector/android
如需使用 Android Studio 設定及執行範例的操作說明, 請參閱「 Android 設定指南。
重要元件
以下檔案包含有關文字分類的重要程式碼 範例應用程式:
- LanguageDetectorHelper.kt - 初始化語言偵測工具並處理模型選取作業。
- ResultsAdapter.kt: 處理偵測結果並設定格式。
- MainActivity.kt:
實作應用程式,包括呼叫
LanguageDetectorHelper
和ResultsAdapter
。
設定
本節說明設定開發環境的重要步驟,以及 專門使用 Language Detector 的程式碼專案如需 設定開發環境以使用 MediaPipe 工作,包括: 平台版本需求,請參閱 Android 設定指南。
依附元件
語言偵測器會使用 com.google.mediapipe:tasks-text
程式庫。新增此項目
Android 應用程式開發專案的 build.gradle
檔案的依附元件。
您可以使用下列程式碼匯入必要的依附元件:
dependencies {
implementation 'com.google.mediapipe:tasks-text:latest.release'
}
型號
MediaPipe 語言偵測器工作需要一個與此相容的已訓練模型 工作。如要進一步瞭解語言偵測器可用的已訓練模型,請參閱: 工作總覽的「模型」一節。
選取並下載模型,然後將模型儲存在專案目錄中:
<dev-project-root>/src/main/assets
在 ModelName
參數中指定模型的路徑。
建立工作
您可以使用其中一個 createFrom...()
函式建立工作。
createFromOptions()
函式接受設定選項的語言
偵測工具。您也可以使用 createFromFile()
工廠初始化工作
函式。createFromFile()
函式可接受
訓練好的模型檔案如需更多關於設定工作的資訊,請參閱
設定選項。
下列程式碼示範如何建立及設定這項工作。
// For creating a language detector instance:
LanguageDetectorOptions options =
LanguageDetectorOptions.builder()
.setBaseOptions(
BaseOptions.builder()
.setModelAssetPath(modelPath)
.build()
)
.build();
LanguageDetector languageDetector = LanguageDetector.createFromOptions(context, options);
您可以在程式碼範例中查看如何建立任務的範例
LanguageDetectorHelper
initDetector()
類別函式。
設定選項
這項工作有下列 Android 應用程式設定選項:
選項名稱 | 說明 | 值範圍 | 預設值 |
---|---|---|---|
maxResults |
將最高分數的語言預測結果 (選用) 設為 傳回。如果此值小於零,則會傳回所有可用的結果。 | 任何正數 | -1 |
scoreThreshold |
設定預測分數門檻,此門檻會覆寫 模型中繼資料 (如有)低於這個值的結果遭到拒絕。 | 任何浮點值 | 未設定 |
categoryAllowlist |
設定允許的語言代碼清單 (選用)。如果非空白
如果語言代碼中沒有對應的語言代碼,則系統會
過濾掉。這個選項會與
categoryDenylist 和同時使用這兩種方法都會發生錯誤。 |
任何字串 | 未設定 |
categoryDenylist |
設定不允許的語言代碼清單 (選用)。如果
非空白的語言預測結果如果包含此集合中的語言代碼,系統就會加以篩選
。這個選項與 categoryAllowlist 和
同時使用這兩種方法都會發生錯誤。 |
任何字串 | 未設定 |
準備資料
語言偵測工具支援文字 (String
) 資料。這個工作會處理資料輸入
預先處理作業,包括符記化和張量預先處理。所有語言
預先處理會在 detect()
函式中處理。不需要使用
預先處理輸入文字的額外內容
String inputText = "Some input text for the language detector";
執行工作
語言偵測器使用 LanguageDetector.detect()
方法處理輸入
並且預測文字的語言您應該
執行偵測以避免封鎖 Android 使用者的執行緒
與應用程式的介面執行緒互動
下列程式碼示範如何使用 工作執行處理程序 建構機器學習模型
// Predict the language of the input text.
fun classify(text: String) {
executor = ScheduledThreadPoolExecutor(1)
executor.execute {
val results = languageDetector.detect(text)
listener.onResult(results)
}
}
您可以在程式碼範例中查看如何執行工作的範例
LanguageDetectorHelper
detect()
類別函式。
處理及顯示結果
語言偵測器會輸出 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."
。
您可以在程式碼範例中查看如何顯示結果的範例
ResultsAdapter
類別和 ViewHolder
內部類別。