テキスト分類タスクガイド

ポジティブな映画レビューを入力として、5 つ星と高評価を出力として示す UI の例

MediaPipe Text Classifier タスクを使用すると、テキストをポジティブまたはネガティブの感情など、定義済みの一連のカテゴリに分類できます。カテゴリはモデルのトレーニング中に定義されます。このタスクは、機械学習(ML)モデルを静的データとして使用してテキストデータを処理し、カテゴリとその確率スコアのリストを出力します。

試してみる

使ってみる

このタスクを使用するには、作業しているプラットフォームの実装ガイドのいずれかを行います。

これらのプラットフォーム固有のガイドでは、推奨モデルや、推奨構成オプションを含むコード例など、このタスクの基本的な実装について説明します。

タスクの詳細

このセクションでは、このタスクの機能、入力、出力、構成オプションについて説明します。

機能

  • 入力テキスト処理 - グラフ内トークン化のないモデルのグラフ外トークン化をサポート
  • 複数の分類ヘッド - 各ヘッドは独自のカテゴリセットを使用できます。
  • ラベル地図の言語 / 地域 - 表示名に使用する言語を設定します。
  • スコアしきい値 - 予測スコアに基づいて結果をフィルタする
  • 上位 k 個の分類結果 - 検出結果の数をフィルタします。
  • ラベルの許可リストと拒否リスト - 検出されたカテゴリを指定します。
タスク入力 タスクの出力
Text Classifier は、次の入力データ型を受け入れます。
  • 文字列
テキスト分類器は、次のカテゴリを含むカテゴリのリストを出力します。
  • カテゴリ インデックス: モデル出力のカテゴリのインデックス
  • スコア: このカテゴリの信頼スコア。0 ~ 1 の確率として浮動小数点値で表されます。
  • カテゴリ名(省略可): TensorFlow Lite モデル メタデータで指定されているカテゴリの名前(利用可能な場合)。
  • カテゴリの表示名(省略可): TensorFlow Lite モデル メタデータで指定されたカテゴリの表示名。表示名のロケール オプションで指定された言語(利用可能な場合)で指定します。

設定オプション

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

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

モデル

Text Classifier は複数の ML モデルで使用できます。このタスクで開発を開始するときは、ターゲット プラットフォームのデフォルトの推奨モデルから始めます。その他の利用可能なモデルでは、通常、パフォーマンス、精度、解像度、リソース要件のトレードオフが行われます。また、追加機能が含まれている場合もあります。

事前トレーニング済みモデルは感情分析用にトレーニングされており、入力テキストの感情がポジティブかネガティブかを予測します。モデルは、ポジティブまたはネガティブとラベル付けされた映画レビューで構成される SST-2(スタンフォード センチメント ツリーバンク)データセットでトレーニングされました。なお、モデルは英語のみをサポートしています。映画レビューのデータセットでトレーニングされているため、他のトピック領域を扱うテキストの品質が低下する可能性があります。

このモデルは BERT ベースのアーキテクチャ(具体的には MobileBERT モデル)を使用します。精度が高いため推奨されます。タスクがグラフ外の BERT トークン化を実行できるようにするメタデータが含まれています。

モデル名 入力シェイプ 量子化のタイプ バージョン
BERT 分類器 [1x128],[1x128],[1x128] ダイナミック レンジ 最新

平均単語エンベディング モデル

このモデルは、平均単語エンベディング アーキテクチャを使用します。このモデルは、BERT 分類子に比べて予測精度が低下しますが、モデルサイズが小さくレイテンシが低くなります。追加のトレーニングでこのモデルをカスタマイズする方が、BERT ベースの分類器のトレーニングよりも高速です。このモデルには、タスクがグラフ外の正規表現トークン化を実行できるようにするメタデータが含まれています。

モデル名 入力シェイプ 量子化のタイプ バージョン
平均単語エンベディング 1 x 256 なし(float32) 最新

タスクのベンチマーク

上記の事前トレーニング済みモデルに基づくパイプライン全体のタスク ベンチマークは次のとおりです。レイテンシの結果は、CPU / GPU を使用した Google Pixel 6 の平均レイテンシです。

モデル名 CPU レイテンシ GPU レイテンシ
平均単語エンベディング 0.14ms -
BERT-classifier 57.68 ミリ秒 -

カスタムモデル

提供されているモデルの機能を改善または変更する場合は、このタスクでカスタマイズされた ML モデルを使用できます。Model Maker を使用して既存のモデルを変更したり、TensorFlow などのツールを使用してモデルを構築したりできます。MediaPipe で使用するカスタムモデルは TensorFlow Lite 形式で、モデルの動作パラメータを記述する特定のmetadataを含める必要があります。独自のモデルを構築する前に、Model Maker を使用してこのタスク用に提供されているモデルを変更することを検討してください。