Panduan penyematan teks untuk Python

Tugas MediaPipe Text Embedder memungkinkan Anda membuat representasi numerik dari data teks untuk menangkap makna semantiknya. Petunjuk ini menunjukkan cara menggunakan Text Embedder dengan Python.

Untuk mengetahui informasi selengkapnya tentang kemampuan, model, dan opsi konfigurasi tugas ini, lihat Ringkasan.

Contoh kode

Kode contoh untuk Text Embedder menyediakan implementasi lengkap tugas ini di Python sebagai referensi Anda. Kode ini membantu Anda menguji tugas ini dan mulai membuat penyemat teks Anda sendiri. Anda dapat melihat, menjalankan, dan mengedit kode contoh Penyemat Teks hanya 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 project kode khusus untuk menggunakan Text Embedder. Untuk mengetahui informasi umum tentang menyiapkan lingkungan pengembangan Anda untuk menggunakan tugas MediaPipe, termasuk persyaratan versi platform, lihat Panduan penyiapan untuk Python.

Paket

Penyemat Teks menggunakan paket pip mediapipe. Anda dapat menginstal dependensi dengan kode 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 ini. Untuk mengetahui informasi selengkapnya tentang model terlatih yang tersedia untuk Penyemat Teks, lihat bagian Model ringkasan tugas.

Pilih dan download model, lalu simpan di direktori lokal. Anda dapat menggunakan model UniversalSentenceEncoder yang direkomendasikan.

model_path = '/absolute/path/to/universal_sentence_encoder.tflite'

Tentukan jalur model dalam parameter model_asset_path, seperti yang ditunjukkan di bawah:

base_options = BaseOptions(model_asset_path=model_path)

Membuat tugas

Tugas MediaPipe Text Embedder menggunakan fungsi create_from_options untuk menyiapkan tugas. Fungsi create_from_options menerima nilai untuk opsi konfigurasi guna menyetel opsi penyemat. Anda juga dapat menginisialisasi tugas menggunakan fungsi factory create_from_model_path. Fungsi create_from_model_path menerima jalur relatif atau absolut ke file model yang dilatih. Untuk mengetahui informasi selengkapnya 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 Apakah akan menormalisasi vektor fitur yang ditampilkan dengan norma L2. Gunakan opsi ini hanya jika model belum berisi TFLite Op L2_NORMALIZATION native. Dalam kebanyakan kasus, hal ini sudah terjadi dan normalisasi L2 dicapai melalui inferensi TFLite tanpa memerlukan opsi ini. Boolean False
quantize Apakah embedding yang ditampilkan harus dikuantisasi ke byte melalui kuantisasi skalar. Embedding secara implisit diasumsikan sebagai norma satuan dan oleh karena itu, setiap dimensi dijamin memiliki nilai dalam [-1.0, 1.0]. Gunakan opsi l2_normalize jika tidak demikian. Boolean False

Menyiapkan data

Penyemat Teks berfungsi dengan data teks (str). Tugas ini menangani pra-pemrosesan input data, termasuk tokenisasi dan pra-pemrosesan tensor.

Semua pra-pemrosesan ditangani dalam fungsi embed. Tidak perlu pemrosesan teks input tambahan terlebih dahulu.

input_text = "The input text to be embedded."

Menjalankan tugas

Penyemat Teks menggunakan fungsi embed untuk memicu inferensi. Untuk penyematan teks, ini berarti menampilkan 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 output TextEmbedderResult yang berisi daftar embedding (baik floating point atau 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 kemiripan semantik dua embedding menggunakan fungsi TextEmbedder.cosine_similarity. Lihat kode berikut sebagai contoh.

# Compute cosine similarity.
similarity = TextEmbedder.cosine_similarity(
  embedding_result.embeddings[0],
  other_embedding_result.embeddings[0])