Python のテキスト分類ガイド

MediaPipe テキスト分類タスクを使用すると、テキストを一連の定義済みのカテゴリに分類できます。 否定的な感情などですカテゴリはモデルによって そのモデルのトレーニング方法が含まれますここでは、Google Chat で Python でのテキスト分類器です。

このタスクの動作を確認するには、 ウェブデモ。 機能、モデル、サービスについて詳しくは、 構成オプションの詳細については、概要をご覧ください。

サンプルコード

テキスト分類器のサンプルコードは、この実装の完全な実装を提供します。 タスクを示しています。このコードは、このタスクをテストして、 独自のテキスト分類アプリの構築に着手しました。特定のリソースを表示、実行、 テキスト分類器を編集する サンプルコード ウェブブラウザから操作できます。

Raspberry Pi 用のテキスト分類器を実装する場合は、 Raspberry Pi の例 アプリ

セットアップ

このセクションでは、開発環境をセットアップする主な手順と テキスト分類器を使用するコード プロジェクトです。一般的な情報については、 MediaPipe Tasks を使用するための開発環境の設定 プラットフォーム バージョンの要件については、 Python のセットアップ ガイド

<ph type="x-smartling-placeholder">

パッケージ

テキスト分類器は mediapipe pip パッケージを使用します。Google Cloud SDK を 次のように置き換えます。

$ python -m pip install mediapipe

インポート

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

from mediapipe.tasks import python
from mediapipe.tasks.python import text

モデル

MediaPipe テキスト分類器タスクには、これと互換性のあるトレーニング済みモデルが必要です タスクを実行します。テキスト分類器で使用可能なトレーニング済みモデルについて詳しくは、以下をご覧ください。 タスクの概要のモデル セクションをご覧ください。

モデルを選択してダウンロードし、ローカル ディレクトリに保存します。

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

BaseOptions オブジェクト model_asset_path を使用してモデルのパスを指定する 次のように指定します。

base_options = BaseOptions(model_asset_path=model_path)

タスクを作成する

MediaPipe テキスト分類タスクは、create_from_options 関数を使用して、 タスクを実行します。create_from_options 関数は構成の値を受け入れます。 オプションを使用して分類器のオプションを設定しますgcloud コマンドを使用してタスクを初期化することもできます。 create_from_model_path ファクトリ関数create_from_model_path トレーニング済みモデルファイルの相対パスまたは絶対パスを受け入れます。 構成オプションの詳細については、このモジュールの 構成オプション

次のコードは、このタスクをビルドして構成する方法を示しています。

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

with python.text.TextClassifier.create_from_options(options) as classifier:
  classification_result = classifier.classify(text)

構成オプション

このタスクには、Android アプリ用に次の構成オプションがあります。

オプション名 説明 値の範囲 デフォルト値
display_names_locale 指定された表示名に使うラベルの言語を設定します。 タスクのモデルのメタデータ(利用可能な場合)。デフォルトは en です。 英語。カスタムモデルのメタデータにローカライズされたラベルを追加できます。 TensorFlow Lite Metadata Writer API を使用 言語 / 地域コード en
max_results オプションの上位スコアの分類結果の最大数を設定します。 戻ります。<0 の場合、利用可能な結果がすべて返されます。 正の数 -1
score_threshold 予測スコアのしきい値を設定します。このしきい値は、 モデル メタデータ(存在する場合)この値を下回る結果は拒否されます。 任意の浮動小数点数 未設定
category_allowlist 許可するカテゴリ名のオプション リストを設定します。空でない場合、 カテゴリ名がこのセットにない分類結果は、 フィルタで除外されます重複または不明なカテゴリ名は無視されます。 このオプションは category_denylist とは相互に排他的であり、 どちらの結果もエラーになります 任意の文字列 未設定
category_denylist 許可されていないカテゴリ名のオプション リストを設定します。条件 空でない場合、カテゴリ名がこのセットに含まれている分類結果はフィルタされます できます。重複または不明なカテゴリ名は無視されます。このオプションは category_allowlist と排他的であり、両方を使用するとエラーになります。 任意の文字列 未設定

データの準備

テキスト分類器はテキスト(str)データを処理します。タスクはデータ入力を処理し、 これにはトークン化やテンソルの前処理が含まれます。

すべての前処理は classify 関数内で処理されます。データ アナリストが を使用して、入力テキストを事前に追加前処理します。

input_text = 'The input text to be classified.'

タスクを実行する

テキスト分類器は、classify 関数を使用して推論をトリガーします。テキストの場合 つまり、入力テキストに対して考えられるカテゴリを返します。

次のコードは、タスクで処理を実行する方法を示しています。 モデルです。

with python.text.TextClassifier.create_from_options(options) as classifier:
  classification_result = classifier.classify(text)

結果の処理と表示

テキスト分類器は、リストを含む TextClassifierResult オブジェクトを出力します。 カテゴリ候補のセットです。カテゴリは UDM イベントで ですから、異なるカテゴリが必要な場合は、別のモデルを選択します。 既存の画像を再トレーニングできます

このタスクからの出力データの例を次に示します。

TextClassificationResult:
  Classification #0 (single classification head):
    ClassificationEntry #0:
      Category #0:
        category name: "positive"
        score: 0.8904
        index: 0
      Category #1:
        category name: "negative"
        score: 0.1096
        index: 1

この結果は、入力テキストに対して BERT 分類器を実行することで取得されました。 "an imperfect but overall entertaining mystery"