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

MediaPipe テキスト分類タスクを使用すると、肯定的な感情や否定的な感情など、定義された一連のカテゴリにテキストを分類できます。カテゴリは、モデルのトレーニング中に定義されます。このタスクでは、機械学習(ML)モデルを静的データとしてテキストデータを操作し、カテゴリとその可能性スコアのリストを出力します。

試してみる

使ってみる

このタスクの使用を開始するには、作業中のプラットフォーム向けの次のいずれかの実装ガイドに従ってください。

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

タスクの詳細

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

機能

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

構成オプション

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

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

モデル

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

トレーニング済みのモデルは感情分析用にトレーニングされ、入力テキストの感情がポジティブかネガティブかを予測します。このモデルは、SST-2(Stanford Sentiment Treebank)データセットでトレーニングされました。このデータセットは、ポジティブまたはネガティブのラベルが付いた映画レビューで構成されています。モデルは英語にのみ対応しています。映画レビューのデータセットでトレーニングされているため、他のトピック領域をカバーするテキストの品質が低下する可能性があります。

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

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

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

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

モデル名 入力シェイプ 量子化タイプ バージョン
平均単語埋め込み 256 × 1 個 なし(float32) 最新

タスク ベンチマーク

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

モデル名 CPU レイテンシ GPU レイテンシ
平均単語埋め込み 0.14 ミリ秒 -
BERT 分類器 57.68 ミリ秒 -

カスタムモデル

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