تتيح لك مهمة MediaPipe Text Embedder إنشاء تمثيل رقمي لبيانات نصية بهدف تسجيل معناها الدلالي. توضّح لك هذه التعليمات كيفية استخدام أداة Text Embedder لتطبيقات الويب وتطبيقات JavaScript.
لمزيد من المعلومات حول إمكانات هذه المهمة ونماذجها وخيارات إعداداتها، يُرجى الاطّلاع على نظرة عامة.
مثال على الرمز
يقدّم نموذج الرمز البرمجي الخاص بأداة Text Embedder عملية تنفيذ كاملة لهذه المهمة بلغة JavaScript يمكنك الرجوع إليها. يساعدك هذا الرمز البرمجي في اختبار هذه المهمة والبدء في إنشاء تطبيقك الخاص لتضمين النصوص. يمكنك عرض مثال "أداة تضمين النصوص" وتشغيله وتعديله باستخدام متصفّح الويب فقط.
الإعداد
يوضّح هذا القسم الخطوات الرئيسية لإعداد بيئة التطوير ومشاريع الرموز البرمجية خصيصًا لاستخدام Text Embedder. للحصول على معلومات عامة حول إعداد بيئة التطوير لاستخدام مهام MediaPipe، بما في ذلك متطلبات إصدار النظام الأساسي، يُرجى الاطّلاع على دليل الإعداد للويب.
حِزم JavaScript
يتوفّر رمز Text Embedder من خلال حزمة
@mediapipe/tasks-text. يمكنك العثور على هذه المكتبات وتنزيلها من الروابط المتوفّرة في دليل الإعداد الخاص بالمنصة.
يمكنك تثبيت الحِزم المطلوبة باستخدام الرمز التالي للتجهيز المحلي باستخدام الأمر التالي:
npm install @mediapipe/tasks-text
إذا أردت نشر المحتوى على خادم، يمكنك استخدام خدمة شبكة توصيل المحتوى (CDN)، مثل jsDelivr، لإضافة الرمز مباشرةً إلى صفحة HTML، كما يلي:
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
crossorigin="anonymous"></script>
</head>
الطراز
تتطلّب مهمة "تضمين النص" في MediaPipe نموذجًا مدرَّبًا متوافقًا مع هذه المهمة. لمزيد من المعلومات حول النماذج المدرَّبة المتوفّرة لأداة Text Embedder، يُرجى الاطّلاع على قسم "النماذج" في نظرة عامة على المهمة.
اختَر نموذجًا ونزِّله، ثم خزِّنه في دليل مشروعك:
<dev-project-root>/app/shared/models
إنشاء المهمة
استخدِم إحدى دوال Text Embedder createFrom...() لإعداد المهمة من أجل تنفيذ عمليات الاستدلال. يمكنك استخدام الدالة createFromModelPath() مع مسار نسبي أو مطلق لملف النموذج المدرَّب. يوضّح مثال الرمز البرمجي أدناه كيفية استخدام الدالة createFromOptions(). لمزيد من المعلومات حول خيارات الإعداد المتاحة، يُرجى الاطّلاع على خيارات الإعداد.
يوضّح الرمز البرمجي التالي كيفية إنشاء هذه المهمة وضبطها:
async function createEmbedder() {
const textFiles = await FilesetResolver.forTextTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
textEmbedder = await TextEmbedder.createFromOptions(
textFiles,
{
baseOptions: {
modelAssetPath: `https://storage.googleapis.com/mediapipe-tasks/text_embedder/universal_sentence_encoder.tflite`
},
quantize: true
}
);
}
createEmbedder();
خيارات الإعداد
تتضمّن هذه المهمة خيارات الإعداد التالية لتطبيقات الويب وJavaScript:
| اسم الخيار | الوصف | نطاق القيم | القيمة التلقائية |
|---|---|---|---|
l2Normalize |
تحديد ما إذا كان سيتم تسوية متجه الميزات الذي تم إرجاعه باستخدام قاعدة L2. استخدِم هذا الخيار فقط إذا كان النموذج لا يحتوي على عملية L2_NORMALIZATION TFLite الأصلية. في معظم الحالات، يكون هذا هو الحال، وبالتالي يتم تحقيق تسوية L2 من خلال استنتاج TFLite بدون الحاجة إلى هذا الخيار. | Boolean |
False |
quantize |
لتحديد ما إذا كان يجب تحويل التضمين الذي تم عرضه إلى وحدات بايت من خلال التحويل الكمي العددي. يُفترض ضمنيًا أنّ التضمينات ذات معيار الوحدة، وبالتالي، يُضمن أنّ أي سمة لها قيمة في النطاق [-1.0, 1.0]. استخدِم الخيار l2Normalize إذا لم يكن الأمر كذلك. | Boolean |
False |
إعداد البيانات
يعمل Text Embedder مع بيانات النص (string). تتعامل المهمة مع المعالجة المسبقة لمدخلات البيانات، بما في ذلك التقسيم إلى رموز مميّزة والمعالجة المسبقة للموتر. تتم معالجة جميع عمليات المعالجة المسبقة ضِمن الدالة embed. ولا حاجة إلى إجراء أي معالجة مسبقة إضافية للنص المدخل.
const inputText = "The input text to be embedded.";
تنفيذ المهمة
يستخدم Text Embedder الدالة embed لتشغيل الاستنتاجات. بالنسبة إلى تضمين النص، يعني ذلك عرض متّجهات التضمين للنص المُدخَل.
يوضّح الرمز التالي كيفية تنفيذ المعالجة باستخدام نموذج المهمة.
// Wait to run the function until inner text is set
const embeddingResult = textEmbedder.embed(
inputText
);
التعامل مع النتائج وعرضها
تنتج أداة Text Embedder TextEmbedderResult تحتوي على قائمة بالتضمينات (إما نقطة عائمة أو كمية قياسية) للنص المدخل.
في ما يلي مثال على بيانات الإخراج من هذه المهمة:
TextEmbedderResult:
Embedding #0 (sole embedding head):
float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
head_index: 0
يمكنك مقارنة التشابه الدلالي لعمليتَي تضمين باستخدام الدالة TextEmbedder.cosineSimilarity. اطّلِع على الرمز التالي للاستفادة من مثال.
// Compute cosine similarity.
const similarity = TextEmbedder.cosineSimilarity(
embeddingResult.embeddings[0],
otherEmbeddingResult.embeddings[0]);
يوضّح رمز المثال الخاص بأداة Text Embedder كيفية عرض نتائج الأداة التي تم إرجاعها من المهمة، ويُرجى الاطّلاع على المثال للحصول على التفاصيل.