وظیفه MediaPipe Text Embedder به شما امکان می دهد یک نمایش عددی از داده های متنی ایجاد کنید تا معنای معنایی آن را دریافت کنید. این دستورالعمل ها به شما نشان می دهد که چگونه از Text Embedder با پایتون استفاده کنید.
برای اطلاعات بیشتر در مورد قابلیتها، مدلها و گزینههای پیکربندی این کار، به نمای کلی مراجعه کنید.
نمونه کد
کد مثال برای Text Embedder اجرای کامل این کار را در پایتون برای مرجع شما فراهم می کند. این کد به شما کمک می کند تا این کار را آزمایش کنید و شروع به ساخت جاسازی متن خود کنید. میتوانید کد نمونه Text Embedder را فقط با استفاده از مرورگر وب خود با Google Colab مشاهده، اجرا و ویرایش کنید. می توانید کد منبع این مثال را در GitHub مشاهده کنید.
راه اندازی
این بخش مراحل کلیدی را برای راه اندازی محیط توسعه و پروژه های کد به طور خاص برای استفاده از Text Embedder توضیح می دهد. برای اطلاعات کلی در مورد تنظیم محیط توسعه خود برای استفاده از وظایف MediaPipe، از جمله الزامات نسخه پلت فرم، به راهنمای راه اندازی برای Python مراجعه کنید.
بسته ها
Text Embedder از بسته mediapipe pip استفاده می کند. می توانید وابستگی را با موارد زیر نصب کنید:
$ python -m pip install mediapipe
واردات
برای دسترسی به توابع وظیفه Text Embedder، کلاسهای زیر را وارد کنید:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text
مدل
وظیفه MediaPipe Text Embedder به یک مدل آموزش دیده نیاز دارد که با این کار سازگار باشد. برای اطلاعات بیشتر در مورد مدلهای آموزشدیده موجود برای 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
مقادیری را برای گزینه های پیکربندی برای تنظیم گزینه های embedder می پذیرد. همچنین می توانید کار را با استفاده از تابع factory 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)
گزینه های پیکربندی
این کار دارای گزینه های پیکربندی زیر برای برنامه های پایتون است:
نام گزینه | توضیحات | محدوده ارزش | مقدار پیش فرض |
---|---|---|---|
l2_normalize | آیا باید بردار ویژگی بازگشتی را با نرمال L2 عادی سازی کرد. فقط در صورتی از این گزینه استفاده کنید که مدل از قبل دارای یک L2_NORMALIZATION TFLite Op بومی نباشد. در بیشتر موارد، این قبلاً وجود دارد و بنابراین عادی سازی L2 از طریق استنتاج TFLite بدون نیاز به این گزینه حاصل می شود. | Boolean | False |
quantize | اینکه آیا تعبیه برگشتی باید از طریق کوانتیزه کردن اسکالر به بایت تبدیل شود یا خیر. تعبیهها به طور ضمنی واحد هنجار فرض میشوند و بنابراین هر بعد تضمین میشود که مقداری در [-1.0، 1.0] داشته باشد. اگر اینطور نیست از گزینه l2_normalize استفاده کنید. | Boolean | False |
داده ها را آماده کنید
Text Embedder با داده های متن ( str
) کار می کند. این وظیفه، پیش پردازش ورودی داده، از جمله پیش پردازش توکن و تانسور را انجام می دهد.
تمام پیش پردازش ها در تابع embed
انجام می شود. نیازی به پیش پردازش اضافی متن ورودی از قبل نیست.
input_text = "The input text to be embedded."
وظیفه را اجرا کنید
Text Embedder از تابع embed
برای استنتاج استفاده می کند. برای جاسازی متن، این به معنای برگرداندن بردارهای جاسازی برای متن ورودی است.
کد زیر نحوه اجرای پردازش با مدل وظیفه را نشان می دهد.
# Perform text embedding on the provided input text.
embedding_result = text_embedder.embed(input_text)
کنترل و نمایش نتایج
Text Embedder یک TextEmbedderResult
را خروجی میدهد که حاوی لیستی از جاسازیها (اعم از ممیز شناور یا اسکالر) برای متن ورودی است.
شکل زیر نمونه ای از داده های خروجی از این کار را نشان می دهد:
TextEmbedderResult:
Embedding #0 (sole embedding head):
float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
head_index: 0
می توانید شباهت معنایی دو جاسازی را با استفاده از تابع TextEmbedder.cosine_similarity
مقایسه کنید. برای نمونه کد زیر را ببینید.
# Compute cosine similarity.
similarity = TextEmbedder.cosine_similarity(
embedding_result.embeddings[0],
other_embedding_result.embeddings[0])