Detyra MediaPipe Text Embedder ju lejon të krijoni një paraqitje numerike të të dhënave të tekstit për të kapur kuptimin e tij semantik. Këto udhëzime ju tregojnë se si të përdorni Text Embedder me Python.
Për më shumë informacion rreth aftësive, modeleve dhe opsioneve të konfigurimit të kësaj detyre, shihni Përmbledhjen .
Shembull kodi
Shembulli i kodit për Text Embedder ofron një zbatim të plotë të kësaj detyre në Python për referencën tuaj. Ky kod ju ndihmon të testoni këtë detyrë dhe të filloni ndërtimin e ngulitësit tuaj të tekstit. Mund të shikoni, ekzekutoni dhe modifikoni kodin e shembullit të Text Embedder duke përdorur vetëm shfletuesin tuaj të internetit me Google Colab. Mund ta shikoni kodin burimor për këtë shembull në GitHub .
Konfigurimi
Ky seksion përshkruan hapat kryesorë për konfigurimin e mjedisit tuaj të zhvillimit dhe projekteve të kodit në mënyrë specifike për të përdorur Text Embedder. Për informacion të përgjithshëm mbi konfigurimin e mjedisit tuaj të zhvillimit për përdorimin e detyrave të MediaPipe, duke përfshirë kërkesat e versionit të platformës, shihni udhëzuesin e konfigurimit për Python .
Paketat
Teksti Embedder përdor paketën mediapipe pip. Mund ta instaloni varësinë me sa vijon:
$ python -m pip install mediapipe
Importet
Importoni klasat e mëposhtme për të hyrë në funksionet e detyrave të Text Embedder:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text
Model
Detyra MediaPipe Text Embedder kërkon një model të trajnuar që është në përputhje me këtë detyrë. Për më shumë informacion mbi modelet e trajnuara të disponueshme për Text Embedder, shihni seksionin Modelet e përmbledhjes së detyrave.
Zgjidhni dhe shkarkoni një model dhe më pas ruajeni në një direktori lokale. Ju mund të përdorni modelin e rekomanduar UniversalSentenceEncoder .
model_path = '/absolute/path/to/universal_sentence_encoder.tflite'
Specifikoni shtegun e modelit brenda parametrit model_asset_path
, siç tregohet më poshtë:
base_options = BaseOptions(model_asset_path=model_path)
Krijo detyrën
Detyra MediaPipe Text Embedder përdor funksionin create_from_options
për të konfiguruar detyrën. Funksioni create_from_options
pranon vlera për opsionet e konfigurimit për të vendosur opsionet e embedder-it. Ju gjithashtu mund të inicializoni detyrën duke përdorur funksionin e fabrikës create_from_model_path
. Funksioni create_from_model_path
pranon një shteg relative ose absolute drejt skedarit të modelit të trajnuar. Për më shumë informacion mbi opsionet e konfigurimit, shihni Opsionet e konfigurimit .
Kodi i mëposhtëm tregon se si të ndërtohet dhe konfigurohet kjo detyrë.
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)
Opsionet e konfigurimit
Kjo detyrë ka opsionet e mëposhtme të konfigurimit për aplikacionet Python:
Emri i opsionit | Përshkrimi | Gama e vlerave | Vlera e paracaktuar |
---|---|---|---|
l2_normalize | Nëse do të normalizohet vektori i tipareve të kthyera me normën L2. Përdoreni këtë opsion vetëm nëse modeli nuk përmban tashmë një L2_NORMALIZATION TFLite Op. Në shumicën e rasteve, ky është tashmë rasti dhe normalizimi i L2 arrihet në këtë mënyrë përmes përfundimit të TFLite pa pasur nevojë për këtë opsion. | Boolean | False |
quantize | Nëse futja e kthyer duhet të kuantizohet në bajt nëpërmjet kuantizimit skalar. Përfshirjet supozohen në mënyrë implicite si njësi-normë dhe për këtë arsye çdo dimension është i garantuar të ketë një vlerë në [-1.0, 1.0]. Përdorni opsionin l2_normalize nëse nuk është kështu. | Boolean | False |
Përgatitni të dhënat
Teksti Embedder punon me të dhëna teksti ( str
). Detyra trajton parapërpunimin e hyrjes së të dhënave, duke përfshirë parapërpunimin e tokenizimit dhe tensorit.
Të gjitha parapërpunimit trajtohen brenda funksionit embed
. Nuk ka nevojë për përpunim shtesë të tekstit të hyrjes paraprakisht.
input_text = "The input text to be embedded."
Drejtoni detyrën
Teksti Embedder përdor funksionin embed
për të nxjerrë përfundime. Për futjen e tekstit, kjo nënkupton kthimin e vektorëve të ngulitjes për tekstin hyrës.
Kodi i mëposhtëm tregon se si kryhet përpunimi me modelin e detyrës.
# Perform text embedding on the provided input text.
embedding_result = text_embedder.embed(input_text)
Trajtoni dhe shfaqni rezultatet
Text Embedder nxjerr një TextEmbedderResult
që përmban një listë të integruara (qoftë me pikë lundruese ose të kuantizuara në shkallë) për tekstin hyrës.
Më poshtë tregon një shembull të të dhënave dalëse nga kjo detyrë:
TextEmbedderResult:
Embedding #0 (sole embedding head):
float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
head_index: 0
Ju mund të krahasoni ngjashmërinë semantike të dy futjeve duke përdorur funksionin TextEmbedder.cosine_similarity
. Shih kodin e mëposhtëm për një shembull.
# Compute cosine similarity.
similarity = TextEmbedder.cosine_similarity(
embedding_result.embeddings[0],
other_embedding_result.embeddings[0])