Tugas MediaPipe Text Embedder memungkinkan Anda membuat representasi numerik data teks untuk menangkap makna semantiknya. Petunjuk ini menampilkan cara menggunakan Penyemat Teks dengan Python.
Untuk mengetahui informasi selengkapnya terkait kemampuan, model, dan opsi konfigurasi. tugas ini, lihat Ringkasan.
Contoh kode
Kode contoh untuk Text Embedder menyediakan implementasi lengkap dari proses ini di Python untuk referensi Anda. Kode ini membantu Anda menguji tugas ini dan mendapatkan mulai membuat sematan teks Anda sendiri. Anda dapat melihat, menjalankan, dan mengedit Contoh Penyemat Teks kode hanya dengan menggunakan browser web dengan Google Colab. Anda dapat melihat kode sumber untuk contoh ini di GitHub.
Penyiapan
Bagian ini menjelaskan langkah-langkah utama untuk menyiapkan lingkungan pengembangan dan membuat kode proyek secara khusus untuk menggunakan Text Embedder. Untuk informasi umum tentang menyiapkan lingkungan pengembangan untuk menggunakan tugas MediaPipe, termasuk persyaratan versi platform, lihat Panduan penyiapan untuk Python yang baru.
Paket
Text Embedder menggunakan paket pip mediapipe. Anda dapat menginstal dependensi dengan yang berikut:
$ python -m pip install mediapipe
Impor
Impor class berikut untuk mengakses fungsi tugas Text Embedder:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text
Model
Tugas MediaPipe Text Embedder memerlukan model terlatih yang kompatibel dengan tugas Anda. Untuk informasi selengkapnya tentang model terlatih yang tersedia untuk Text Embedder, lihat ringkasan tugas bagian Model.
Pilih dan download model, lalu simpan di direktori lokal. Anda dapat menggunakan yang direkomendasikan UniversalSentenceEncoder model transformer.
model_path = '/absolute/path/to/universal_sentence_encoder.tflite'
Tentukan jalur model dalam parameter model_asset_path
, seperti yang ditunjukkan di bawah ini:
base_options = BaseOptions(model_asset_path=model_path)
Membuat tugas
Tugas MediaPipe Text Embedder menggunakan fungsi create_from_options
untuk menyiapkan
tugas Anda. Fungsi create_from_options
menerima nilai untuk konfigurasi
opsi untuk mengatur opsi
penyemat. Anda juga bisa menginisialisasi tugas menggunakan
Fungsi factory create_from_model_path
. Fungsi create_from_model_path
menerima jalur relatif atau absolut ke file model terlatih. Untuk selengkapnya
informasi tentang opsi konfigurasi, lihat
Opsi konfigurasi.
Kode berikut menunjukkan cara membangun dan mengonfigurasi tugas ini.
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)
Opsi konfigurasi
Tugas ini memiliki opsi konfigurasi berikut untuk aplikasi Python:
Nama Opsi | Deskripsi | Rentang Nilai | Nilai Default |
---|---|---|---|
l2_normalize |
Menentukan apakah akan menormalisasi vektor fitur yang ditampilkan dengan norma L2. Gunakan opsi ini hanya jika model belum berisi L2_NORMALIZATION TFLite Op. Dalam kebanyakan kasus, hal ini sudah terjadi dan Dengan demikian, normalisasi L2 dicapai melalui inferensi TFLite tanpa memerlukan untuk opsi ini. | Boolean |
False |
quantize |
Apakah embedding yang dikembalikan harus dikuantisasi ke byte melalui kuantisasi skalar. Embedding secara implisit diasumsikan sebagai norma unit oleh karena itu, setiap dimensi dijamin memiliki nilai dalam [-1.0, 1.0]. Gunakan opsi {i>l2_normalize<i} jika tidak demikian. | Boolean |
False |
Menyiapkan data
Text Embedder berfungsi dengan data teks (str
). Tugas ini menangani input data
pra-pemrosesan, termasuk tokenisasi dan pra-pemrosesan tensor.
Semua pra-pemrosesan ditangani dalam fungsi embed
. Tidak perlu
untuk pra-pemrosesan tambahan terhadap teks input.
input_text = "The input text to be embedded."
Menjalankan tugas
Penyemat Teks menggunakan fungsi embed
untuk memicu inferensi. Untuk teks
embedding, ini berarti mengembalikan vektor embedding untuk teks input.
Kode berikut menunjukkan cara mengeksekusi pemrosesan dengan model tugas.
# Perform text embedding on the provided input text.
embedding_result = text_embedder.embed(input_text)
Menangani dan menampilkan hasil
Text Embedder menghasilkan TextEmbedderResult
yang berisi daftar
embedding (baik floating point maupun yang terkuantisasi skalar) untuk teks input.
Berikut ini contoh data output dari tugas ini:
TextEmbedderResult:
Embedding #0 (sole embedding head):
float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
head_index: 0
Anda dapat membandingkan kesamaan semantik dari dua embedding
Fungsi TextEmbedder.cosine_similarity
. Lihat kode berikut untuk
contoh.
# Compute cosine similarity.
similarity = TextEmbedder.cosine_similarity(
embedding_result.embeddings[0],
other_embedding_result.embeddings[0])