MediaPipe テキスト分類タスクを使用すると、テキストを一連の定義済みのカテゴリに分類できます。 否定的な感情などですカテゴリはモデルによって そのモデルのトレーニング方法が含まれますここでは、Google Chat で ウェブアプリと JavaScript アプリ用のテキスト分類器です。
このタスクの動作を確認するには、 demo。 機能、モデル、サービスについて詳しくは、 構成オプションの詳細については、概要をご覧ください。
サンプルコード
テキスト分類器のサンプルコードは、この実装の完全な実装を提供します。 タスクを示しています。このコードは、このタスクのテストと 独自のテキスト分類アプリの構築を始めましょう。特定のリソースを表示、実行、 テキスト分類器のサンプルコードを編集する できます。
セットアップ
このセクションでは、開発環境をセットアップする主な手順と テキスト分類器を使用するコード プロジェクトです。一般的な情報については、 MediaPipe Tasks を使用するための開発環境の設定 プラットフォーム バージョンの要件については、 ウェブ用の設定ガイド
JavaScript パッケージ
テキスト分類器のコードは
@mediapipe/tasks-text
パッケージ化されています。これらのライブラリは、
プラットフォーム
設定ガイド
ローカル ステージング用に次のコードを使用して、必要なパッケージをインストールできます。 次のコマンドを使用します。
npm install @mediapipe/tasks-text
サーバーにデプロイする場合は、コンテンツ配信 ネットワーク(CDN)サービス(jsDelivr など)から 次のように、HTML ページに直接コードを追加します。
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@0.1/text-bundle.js"
crossorigin="anonymous"></script>
</head>
モデル
MediaPipe テキスト分類器タスクには、これと互換性のあるトレーニング済みモデルが必要です タスクを実行します。テキスト分類器で使用可能なトレーニング済みモデルについて詳しくは、以下をご覧ください。 タスクの概要のモデル セクションをご覧ください。
モデルを選択してダウンロードし、プロジェクト ディレクトリに保存します。
<dev-project-root>/assets/bert_text_classifier.tflite
baseOptions
オブジェクト modelAssetPath
を使用してモデルのパスを指定する
次のように指定します。
baseOptions: {
modelAssetPath: `/assets/bert_text_classifier.tflite`
}
タスクを作成する
テキスト分類器の TextClassifier.createFrom...()
関数のいずれかを使用して、次のことを行います。
タスクを準備します。createFromModelPath()
を使用できます。
トレーニング済みモデルファイルの相対パスまたは絶対パスで関数を呼び出します。コード
以下の例は TextClassifier.createFromOptions()
の使用方法を示しています。
使用します。使用可能な構成オプションの詳細については、このモジュールの
構成オプション。
次のコードは、このタスクをビルドして構成する方法を示しています。
async function createClassifier() {
const textFiles = await FilesetResolver.forTextTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
textClassifier = await TextClassifier.createFromOptions(
textFiles,
{
baseOptions: {
modelAssetPath: `https://storage.googleapis.com/mediapipe-tasks/text_classifier/bert_text_classifier.tflite`
},
maxResults: 5
}
);
}
createClassifier();
構成オプション
このタスクには、ウェブと JavaScript 用に次の構成オプションがあります。 アプリケーション:
オプション名 | 説明 | 値の範囲 | デフォルト値 |
---|---|---|---|
displayNamesLocale |
指定された表示名に使うラベルの言語を設定します。
タスクのモデルのメタデータ(利用可能な場合)。デフォルトは en です。
英語。カスタムモデルのメタデータにローカライズされたラベルを追加できます。
TensorFlow Lite Metadata Writer API を使用
| 言語 / 地域コード | en |
maxResults |
オプションの上位スコアの分類結果の最大数を設定します。 戻ります。<0 の場合、利用可能な結果がすべて返されます。 | 正の数 | -1 |
scoreThreshold |
予測スコアのしきい値を設定します。このしきい値は、 モデル メタデータ(存在する場合)この値を下回る結果は拒否されます。 | 任意の浮動小数点数 | 未設定 |
categoryAllowlist |
許可するカテゴリ名のオプション リストを設定します。空でない場合、
カテゴリ名がこのセットにない分類結果は、
フィルタで除外されます重複または不明なカテゴリ名は無視されます。
このオプションは categoryDenylist とは相互に排他的であり、
どちらの結果もエラーになります |
任意の文字列 | 未設定 |
categoryDenylist |
許可されていないカテゴリ名のオプション リストを設定します。条件
空でない場合、カテゴリ名がこのセットに含まれている分類結果はフィルタされます
できます。重複または不明なカテゴリ名は無視されます。このオプションは
categoryAllowlist と排他的であり、両方を使用するとエラーになります。 |
任意の文字列 | 未設定 |
データの準備
テキスト分類器はテキスト(String
)データを処理します。タスクは、
データ入力の前処理(トークン化やテンソルの前処理など)
すべての前処理は classify()
関数内で処理されます。データ アナリストが
を使用して、入力テキストを事前に追加前処理します。
const inputText = "The input text to be classified.";
タスクを実行する
テキスト分類器は、classify()
関数を使用して推論をトリガーします。テキストの場合
つまり、入力テキストに対して考えられるカテゴリを返します。
次のコードは、タスクで処理を実行する方法を示しています。 モデルです。
// Wait to run the function until inner text is set
const result: TextClassifierResult = await textClassifier.classify(
inputText
);
結果の処理と表示
テキスト分類器は、リストを含む 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"
。