دليل اكتشاف اللغة للويب

تتيح لك مهمة MediaPipe Language Detector التعرّف على لغة النص. وتوضح لك هذه التعليمات كيفية استخدام "أداة الكشف عن اللغة" لتطبيقات الويب وJavaScript. يتوفّر نموذج الرمز البرمجي الموضّح في هذه التعليمات على GitHub.

يمكنك الاطّلاع على هذه المهمة قيد التنفيذ من خلال عرض العرض التوضيحي. للحصول على مزيد من المعلومات حول الإمكانيات والنماذج وخيارات الإعداد لهذه المهمة، يُرجى الاطّلاع على نظرة عامة.

مثال الرمز البرمجي

يوفّر الرمز النموذجي لأداة رصد اللغة تنفيذًا كاملاً لهذه المهمة في JavaScript كمرجع لك. يساعدك هذا الكود في اختبار هذه المهمة والبدء في إنشاء ميزة اكتشاف اللغة الخاصة بك. يمكنك عرض مثال رمز أداة رصد اللغة وتشغيله وتعديله باستخدام متصفّح الويب فقط.

ضبط إعدادات الجهاز

يصف هذا القسم الخطوات الأساسية لإعداد بيئة التطوير ومشاريع الرموز البرمجية لاستخدام "أداة كشف اللغة" تحديدًا. للحصول على معلومات عامة حول إعداد بيئة التطوير لاستخدام مهام MediaPipe، بما في ذلك متطلبات إصدار النظام الأساسي، يُرجى الاطّلاع على دليل الإعداد للويب.

حِزم JavaScript

يمكن استخدام رمز أداة رصد اللغة من خلال حزمة @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 Language Detector نموذجًا مدرَّبًا متوافقًا مع هذه المهمة. للحصول على مزيد من المعلومات حول النماذج المدربة المتاحة لأداة رصد اللغة، يُرجى الاطّلاع على نظرة عامة على المهمة في قسم النماذج.

حدد نموذجًا ونزّله ثم خزنه في دليل المشروع:

<dev-project-root>/app/shared/models

حدِّد مسار النموذج باستخدام معلَمة modelAssetPath للعنصر baseOptions، كما هو موضّح أدناه:

baseOptions: {
        modelAssetPath: `/app/shared/models/language_detector.tflite`
      }

إنشاء المهمة

استخدِم إحدى وظائف أداة رصد اللغة LanguageDetector.createFrom...() لتجهيز المهمة لتشغيل الاستنتاجات. يمكنك استخدام الدالة createFromModelPath() مع مسار نسبي أو مطلق إلى ملف النموذج المدرَّب. يوضح مثال التعليمة البرمجية أدناه استخدام الدالة createFromOptions(). لمزيد من المعلومات حول تهيئة المهام، يمكنك الاطلاع على خيارات التهيئة.

يوضح الرمز التالي كيفية إنشاء هذه المهمة وتكوينها.

async function createDetector() {
  const textFiles = await FilesetResolver.forTextTasks(
      "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  languageDetector = await languageDetector.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-models/language_detector/language_detector/float32/1/language_detector.tflite`
      },
    }
  );
}
createDetector();

خيارات الضبط

تتضمن هذه المهمة خيارات التهيئة التالية لتطبيقات الويب وJavaScript:

اسم الخيار الوصف نطاق القيمة القيمة التلقائية
maxResults لضبط الحد الأقصى الاختياري لتوقعات اللغة ذات التقييم الأعلى للعرض. وإذا كانت هذه القيمة أقل من صفر، يتم عرض جميع النتائج المتاحة. أي أرقام موجبة -1
scoreThreshold لتعيين الحد الأدنى لدرجة التنبؤ الذي يتجاوز الحد المقدم في البيانات الوصفية للنموذج (إن يتوفر). يتم رفض النتائج التي تقلّ عن هذه القيمة. أي عائم لم يتم الضبط.
categoryAllowlist تحدِّد هذه السياسة القائمة الاختيارية لرموز اللغات المسموح بها. وإذا لم تكن هذه البيانات فارغة، فستتم فلترة عبارات البحث المقترَحة التي لا يكون رمز اللغة فيها ضمن هذه المجموعة. لا يمكن استخدام هذا الخيار مع categoryDenylist، ويؤدي استخدام كلا الخيارين إلى حدوث خطأ. أي سلاسل لم يتم الضبط.
categoryDenylist تحدِّد هذه السياسة القائمة الاختيارية لرموز اللغات غير المسموح بها. وإذا لم تكن هذه التوقعات فارغة، فستتم فلترة عبارات البحث المقترَحة التي تتضمن رمز اللغة في هذه المجموعة. لا يمكن استخدام هذا الخيار مع categoryAllowlist، ويؤدي استخدام كلا الخيارين إلى حدوث خطأ. أي سلاسل لم يتم الضبط.

إعداد البيانات

تعمل "أداة التعرّف على اللغة" مع البيانات النصية (string). تتعامل المهمة مع المعالجة المسبقة لإدخال البيانات، بما في ذلك إنشاء الرموز المميزة والمعالجة المسبقة للتوتر. وتتم معالجة كل عمليات المعالجة المسبقة ضمن دالة detect. ليست هناك حاجة إلى معالجة مسبقة إضافية للنص المدخل مسبقًا.

const inputText = "The input text for the detector.";

تنفيذ المهمة

تستخدم "أداة التعرّف على اللغة" الدالة detect لإيجاد الاستنتاجات. بالنسبة إلى التعرُّف على اللغة، يعني هذا عرض اللغات المحتملة لنص الإدخال.

توضح التعليمة البرمجية التالية كيفية تنفيذ المعالجة باستخدام نموذج المهمة:

// Wait to run the function until inner text is set
const detectionResult = languageDetector.detect(inputText);

التعامل مع النتائج وعرضها

عند الاستعانة بمهمة "أداة رصد اللغة"، يتم إنشاء LanguageDetectorResult مؤلفة من قائمة تتضمّن عبارات بحث مقترحة بالإضافة إلى الاحتمالات الخاصة بهذه عبارات البحث. يوضح ما يلي مثالاً على بيانات الإخراج من هذه المهمة:

LanguageDetectorResult:
  LanguagePrediction #0:
    language_code: "fr"
    probability: 0.999781

تم الحصول على هذه النتيجة من خلال تشغيل النموذج على نص الإدخال: "Il y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent.".

للحصول على مثال عن الرمز البرمجي المطلوب لمعالجة نتائج هذه المهمة وعرضها بيانيًا، يمكنك الاطّلاع على نموذج تطبيق الويب.