Python の言語検出ガイド

MediaPipe 言語検出タスクを使用すると、テキストの言語を識別できます。ここでは、Python で言語検出機能を使用する方法について説明します。この手順で説明するコードサンプルは、GitHub で入手できます。

このタスクの実際の動作は、デモで確認できます。このタスクの機能、モデル、構成オプションの詳細については、概要をご覧ください。

サンプルコード

参照用に、言語検出ツールのサンプルコードには、このタスクの完全な実装が Python で用意されています。このコードは、このタスクをテストし、独自の言語検出機能の構築を始めるのに役立ちます。ウェブブラウザを使用して、Language Detector のサンプルコードを表示、実行、編集できます。

セットアップ

このセクションでは、言語検出ツールを使用するように開発環境とコード プロジェクトを設定する際の主な手順について説明します。プラットフォームのバージョン要件など、MediaPipe タスクを使用するための開発環境の設定に関する一般的な情報については、Python の設定ガイドをご覧ください。

パッケージ

言語検出機能は mediapipe pip パッケージを使用します。この依存関係は、次のコマンドでインストールできます。

$ python -m pip install mediapipe

インポート

Language Detector タスク関数にアクセスするには、次のクラスをインポートします。

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 スコアが上位の言語予測を返す場合の最大数を設定します(省略可)。この値が 0 未満の場合、利用可能なすべての結果が返されます。 任意の正の数 -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 サンプルアプリをご覧ください。