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

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

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

مثال على الرمز

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

الإعداد

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

حِزم JavaScript

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

اختَر نموذجًا ونزِّله، ثم خزِّنه في دليل مشروعك:

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

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

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.".

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