تتيح لك مهمة MediaPipe Text inlineer إنشاء تمثيل رقمي للبيانات النصية لالتقاط معناها الدلالي. توضح لك هذه التعليمات كيفية استخدام أداة تضمين النص مع بايثون.
للحصول على مزيد من المعلومات حول الإمكانيات والنماذج وخيارات الإعداد لهذه المهمة، يُرجى الاطّلاع على نظرة عامة.
مثال الرمز البرمجي
يوفر مثال التعليمة البرمجية لأداة تضمين النص تنفيذًا كاملاً لهذه المهمة في بايثون كمرجع لك. تساعدك هذه التعليمات البرمجية في اختبار هذه المهمة والبدء في إنشاء أداة تضمين النص الخاصة بك. يمكنك عرض مثال رمز تضمين النص وتشغيله وتعديله باستخدام متصفح الويب فقط مع Google Colab. يمكنك الاطّلاع على رمز المصدر لهذا المثال على GitHub.
ضبط إعدادات الجهاز
يصف هذا القسم الخطوات الأساسية لإعداد بيئة التطوير ومشاريع التعليمات البرمجية على وجه التحديد لاستخدام أداة تضمين النص. للحصول على معلومات عامة حول إعداد بيئة التطوير لاستخدام مهام MediaPipe، بما في ذلك متطلبات إصدار النظام الأساسي، راجع دليل إعداد Python.
الطرود
تستخدم أداة تضمين النص حزمة الوسائط (pip) يمكنك تثبيت التبعية باستخدام ما يلي:
$ python -m pip install mediapipe
عمليات الاستيراد
يمكنك استيراد الفئات التالية للوصول إلى وظائف مهمة أداة تضمين النص:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text
الطراز
تحتاج مهمة أداة تضمين النص MediaPipe إلى نموذج مدرب متوافق مع هذه المهمة. للحصول على مزيد من المعلومات حول النماذج المدربة المتاحة لأداة تضمين النص، راجع النظرة العامة على المهمة إلى قسم النماذج.
اختَر النموذج ونزِّله، ثم خزِّنه في دليل محلي. يمكنك استخدام نموذج 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
قيمًا لخيارات الإعداد
لضبط خيارات أداة التضمين. يمكنك أيضًا إعداد المهمة باستخدام
وظيفة 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 |
إعداد البيانات
تعمل أداة تضمين النص مع البيانات النصية (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
يمكنك مقارنة التشابه الدلالي بين تضمينين باستخدام الدالة TextEmbedder.cosine_similarity
. انظر التعليمة البرمجية التالية للحصول على مثال.
# Compute cosine similarity.
similarity = TextEmbedder.cosine_similarity(
embedding_result.embeddings[0],
other_embedding_result.embeddings[0])