دمج أدوات تضمين النص

تسمح أدوات تضمين النص بتضمين النص في متجه ميزة عالية الأبعاد التي تمثِّل معناها الدلالي، والذي يمكن مقارنته بالخاصية المتجه للنصوص الأخرى لتقييم التشابه الدلالي.

على عكس البحث النصي، أداة تضمين النص تتيح احتساب التشابه بين النصوص بشكل فوري بدلاً من البحث من خلال فهرس محدد مسبقًا تم إنشاؤه من مجموعة كاملة.

استخدِم واجهة برمجة التطبيقات Task Library TextEmbedder API لنشر أداة تضمين النص المخصّصة في لتطبيقات الهاتف المحمول.

الميزات الرئيسية لواجهة برمجة التطبيقات TextEmbedder

  • معالجة النصوص المُدخَلة، بما في ذلك الإعلانات داخل الرسم البياني أو خارج الرسم البياني الكلمة النصية أو الجملة عمليات إنشاء رموز مميّزة على النص المُدخَل.

  • دالة فائدة مدمجة لحساب تشابه جيب التمام بين الخطوط المتجهة للخصائص.

نماذج تضمين النص المتوافقة

نؤكّد أنّ النماذج التالية متوافقة مع TextEmbedder. واجهة برمجة التطبيقات.

تنفيذ الاستنتاج بلغة 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].