MediaPipe Text Embedder タスクを使用すると、テキストデータの数値表現を作成して、 意味を取得します。ここでは、 Python を使用したテキスト エンベディング
機能、モデル、構成オプションの詳細については、 概要をご覧ください。
サンプルコード
テキスト埋め込みのサンプルコードは、このコードを完全に実装しています。 タスクを示しています。このコードは、このタスクをテストして、 独自のテキスト埋め込みツールの構築に着手しました。「新規顧客の獲得」目標を テキスト埋め込みの例 コード ウェブブラウザだけで Google Colab を 利用できますこのアプリケーションのソースコードを この例を GitHub。
セットアップ
このセクションでは、開発環境をセットアップする主な手順と テキスト エンベディングを使用するコード プロジェクトを作成することにしました。一般的な情報については、 MediaPipe タスクを使用するための開発環境の設定 プラットフォーム バージョンの要件については、 Python。
<ph type="x-smartling-placeholder">パッケージ
テキスト エンベディングは mediapipe pip パッケージを使用します。この依存関係をインストールすると、 次のように置き換えます。
$ python -m pip install mediapipe
インポート
次のクラスをインポートして、テキスト埋め込みタスクの関数にアクセスします。
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text
モデル
MediaPipe Text Embedder タスクには、この変換と互換性のあるトレーニング済みモデルが必要です タスクを実行します。テキスト エンベディングで利用可能なトレーニング済みモデルについて詳しくは、以下をご覧ください。 タスクの概要のモデル セクションをご覧ください。
モデルを選択してダウンロードし、ローカル ディレクトリに保存します。次を使用: 推奨される UniversalSentenceEncoder モデルです。
model_path = '/absolute/path/to/universal_sentence_encoder.tflite'
次に示すように、model_asset_path
パラメータ内にモデルのパスを指定します。
base_options = BaseOptions(model_asset_path=model_path)
タスクを作成する
MediaPipe Text Embedder タスクは、create_from_options
関数を使用して
タスクを実行します。create_from_options
関数は構成の値を受け入れます。
オプションを使用して埋め込みオプションを設定します。また、Terraform Registry の
create_from_model_path
ファクトリ関数。create_from_model_path
関数
は、トレーニング済みモデルファイルの相対パスまたは絶対パスを受け入れます。詳細
詳細については、このモジュールの
構成オプション。
次のコードは、このタスクをビルドして構成する方法を示しています。
import mediapipe as mp
BaseOptions = mp.tasks.BaseOptions
TextEmbedder = mp.tasks.text.TextEmbedder
TextEmbedderOptions = mp.tasks.text.TextEmbedderOptions
# For creating a text embedder instance:
options = TextEmbedderOptions(
base_options=BaseOptions(model_asset_path=model_path),
quantize=True)
text_embedder = TextEmbedder.create_from_options(options)
構成オプション
このタスクには、Python アプリケーション用の次の構成オプションがあります。
オプション名 | 説明 | 値の範囲 | デフォルト値 |
---|---|---|---|
l2_normalize |
返された特徴ベクトルを L2 ノルムで正規化するかどうか。 このオプションは、モデルにネイティブ L2_NORMALIZATION TFLite 演算ほとんどの場合はこれがすでに行われており、 そのため、L2 正規化は TFLite 推論によって実現され、 指定します。 | Boolean |
False |
quantize |
返されたエンベディングを、次を使用してバイトに量子化するかどうか スカラー量子化です。エンベディングは暗黙的にユニットノルムであると想定され、 したがって、どのディメンションも [-1.0, 1.0] の範囲の値を持つことが保証されます。使用 そうでない場合は l2_normalize オプションを使用します。 | Boolean |
False |
データの準備
テキスト エンベディングはテキスト(str
)データを処理します。タスクはデータ入力を処理し、
これにはトークン化やテンソルの前処理が含まれます。
すべての前処理は embed
関数内で処理されます。データ アナリストが
を使用して、入力テキストを事前に追加前処理します。
input_text = "The input text to be embedded."
タスクを実行する
テキスト エンベディングは、embed
関数を使用して推論をトリガーします。テキストの場合
エンべディングとは、入力テキストのエンべディング ベクトルを返すことを意味します。
次のコードは、タスクモデルを使用して処理を実行する方法を示しています。
# Perform text embedding on the provided input text.
embedding_result = text_embedder.embed(input_text)
結果の処理と表示
テキスト エンベディングは、テキスト エンベディングのリストを含む TextEmbedderResult
を出力します。
入力テキストのエンべディング(浮動小数点またはスカラー量子化)。
このタスクからの出力データの例を次に示します。
TextEmbedderResult:
Embedding #0 (sole embedding head):
float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
head_index: 0
2 つのエンベディングの意味的類似度は、
TextEmbedder.cosine_similarity
関数を使用します。詳細については、次のコードをご覧ください。
例です。
# Compute cosine similarity.
similarity = TextEmbedder.cosine_similarity(
embedding_result.embeddings[0],
other_embedding_result.embeddings[0])