تسمح أدوات تضمين النص بتضمين النص في متجه ميزة عالية الأبعاد التي تمثِّل معناها الدلالي، والذي يمكن مقارنته بالخاصية المتجه للنصوص الأخرى لتقييم التشابه الدلالي.
على عكس البحث النصي، أداة تضمين النص تتيح احتساب التشابه بين النصوص بشكل فوري بدلاً من البحث من خلال فهرس محدد مسبقًا تم إنشاؤه من مجموعة كاملة.
استخدِم واجهة برمجة التطبيقات Task Library TextEmbedder
API لنشر أداة تضمين النص المخصّصة في
لتطبيقات الهاتف المحمول.
الميزات الرئيسية لواجهة برمجة التطبيقات TextEmbedder
معالجة النصوص المُدخَلة، بما في ذلك الإعلانات داخل الرسم البياني أو خارج الرسم البياني الكلمة النصية أو الجملة عمليات إنشاء رموز مميّزة على النص المُدخَل.
دالة فائدة مدمجة لحساب تشابه جيب التمام بين الخطوط المتجهة للخصائص.
نماذج تضمين النص المتوافقة
نؤكّد أنّ النماذج التالية متوافقة مع TextEmbedder
.
واجهة برمجة التطبيقات.
تشير رسالة الأشكال البيانية نموذج TFLite لبرنامج ترميز الجملة العالمي من TensorFlow Hub
تتوافق النماذج المخصصة التي تلبي متطلبات توافق النموذج.
تنفيذ الاستنتاج بلغة C++
// Initialization.
TextEmbedderOptions options:
options.mutable_base_options()->mutable_model_file()->set_file_name(model_path);
std::unique_ptr<TextEmbedder> text_embedder = TextEmbedder::CreateFromOptions(options).value();
// Run inference with your two inputs, `input_text1` and `input_text2`.
const EmbeddingResult result_1 = text_embedder->Embed(input_text1);
const EmbeddingResult result_2 = text_embedder->Embed(input_text2);
// Compute cosine similarity.
double similarity = TextEmbedder::CosineSimilarity(
result_1.embeddings[0].feature_vector()
result_2.embeddings[0].feature_vector());
يمكنك الاطّلاع على
رمز المصدر
لمزيد من الخيارات لضبط TextEmbedder
.
تنفيذ الاستنتاج في بايثون
الخطوة 1: تثبيت حزمة Pypi لدعم TensorFlow Lite
يمكنك تثبيت حزمة TensorFlow Lite Support Pypi باستخدام ما يلي: :
pip install tflite-support
الخطوة 2: استخدام النموذج
from tflite_support.task import text
# Initialization.
text_embedder = text.TextEmbedder.create_from_file(model_path)
# Run inference on two texts.
result_1 = text_embedder.embed(text_1)
result_2 = text_embedder.embed(text_2)
# Compute cosine similarity.
feature_vector_1 = result_1.embeddings[0].feature_vector
feature_vector_2 = result_2.embeddings[0].feature_vector
similarity = text_embedder.cosine_similarity(
result_1.embeddings[0].feature_vector, result_2.embeddings[0].feature_vector)
يمكنك الاطّلاع على
رمز المصدر
لمزيد من الخيارات لضبط TextEmbedder
.
أمثلة النتائج
يُرجع تشابه جيب التمام بين متجهات الخصائص التي تمت تسويتها درجة بين -1 و1. كلما كانت قيمة أعلى أفضل، أي أن تشابه جيب التمام 1 يعني أن الخطين المتجهين متطابقة.
Cosine similarity: 0.954312
جرب البساطة أداة العرض التوضيحي لواجهة سطر الأوامر (CLI) لـ TextEmbedder باستخدام نموذجك الخاص وبيانات الاختبار.
متطلبات توافق النموذج
تتوقع واجهة برمجة التطبيقات TextEmbedder
نموذج TFLite مع
البيانات الوصفية لنماذج TFLite:
تتوفر ثلاثة أنواع رئيسية من النماذج:
(يُرجى الاطّلاع على النماذج المستنِدة إلى نماذج BERT) رمز المصدر للمزيد من التفاصيل):
3 بالضبط موزّعات الإدخال (kTfLiteString)
- معرفات الشبكة، مع اسم البيانات الوصفية "ids"،
- أقنعة مترابطة تحمل اسم البيانات الوصفية "قناع".
- معرّف شرائح tensor مع اسم البيانات الوصفية "segment_ids"
وحدة متتابع إخراج واحد بالضبط (kTfLiteUInt8/kTfLiteFloat32)
- مع
N
مكوّنات تتوافق مع أبعادN
خط متجه الخصائص الذي تم إرجاعه لطبقة الإخراج هذه. - تحتوي على بُعدَين أو 4 سمات، أي
[1 x N]
أو[1 x 1 x 1 x N]
.
- مع
إدخال_عمليات_وحدة_لأداة إنشاء رمز مميّز لجملة الكلمات أو الجملة
النماذج المستنِدة إلى برنامج ترميز الجمل العالمي (راجِع رمز المصدر للمزيد من التفاصيل):
3 بالضبط موزّعات الإدخال (kTfLiteString)
- أداة كثافة نص طلب البحث التي تحمل اسم البيانات الوصفية "inp_text".
- أداة سياق سياق الاستجابة، واسم البيانات الوصفية "res_context".
- أداة تنس الاستجابة مع اسم البيانات الوصفية "res_text".
اثنان من ملفات متّزن الإخراج بالضبط (kTfLiteUInt8/kTfLiteFloat32)
- أمر ترميز طلب البحث tensor، مع اسم البيانات الوصفية "query_encoding".
- عامل تشغيل ترميز الاستجابة، مع اسم البيانات الوصفية "response_encoding".
- يحتوي كلاهما على مكوّنَين
N
يتوافقان مع سماتN
خط متجه الخصائص الذي تم إرجاعه لطبقة الإخراج هذه. - كلاهما باستخدام بُعدَين أو 4 سمات، أي
[1 x N]
أو[1 x 1 x 1 x N]
أي نموذج أداة تضمين النص مع:
- أداة مترابط النص المخصّص للإدخال (kTfLiteString)
أداة تنس بتضمين إخراج واحدة على الأقل (kTfLiteUInt8/kTfLiteFloat32)
- مع
N
مكوّنات تتوافق مع أبعادN
خط متجه الخصائص الذي تم إرجاعه لطبقة الإخراج هذه. - تحتوي على بُعدَين أو 4 سمات، أي
[1 x N]
أو[1 x 1 x 1 x N]
.
- مع