التعرّف على اللغة في Chrome من خلال ميزات الذكاء الاصطناعي المدمَجة

تاريخ النشر: 24 أيلول (سبتمبر) 2024

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

يهدف اقتراح واجهة برمجة التطبيقات لرصد اللغة وترجمة النصوص إلى حلّ هذا التحدي من خلال تحسين نموذج لهذه المهمة، مع واجهة برمجة تطبيقات مضمّنة في المتصفّح.

أمثلة على حالات الاستخدام

تكون واجهة برمجة التطبيقات Language Detector API مفيدة بشكل أساسي في السيناريوهات التالية:

  • حدِّد لغة النص الذي يتم إدخاله حتى تتمكّن من ترجمته.
  • تحديد لغة النص الذي يتم إدخاله، حتى يمكن تحميل النموذج الصحيح للمهام المتعلّقة باللغة، مثل رصد اللغة السامة
  • تحديد لغة نص الإدخال، حتى يمكن تصنيفه بشكل صحيح، مثلاً في مواقع التواصل الاجتماعي على الإنترنت
  • تحديد لغة نص الإدخال، حتى يمكن تعديل واجهة التطبيق وفقًا لذلك على سبيل المثال، في موقع إلكتروني بلجيكي لعرض الواجهة الملائمة فقط للمستخدمين الذين يتحدثون الفرنسية.

استخدام واجهة برمجة التطبيقات Language Detector API

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

if ('translation' in self && 'canDetect' in self.translation) {
  // The Language Detector API is available.
}  

تنزيل النموذج

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

لمعرفة ما إذا كان النموذج جاهزًا للاستخدام، استخدِم الدالة غير المتزامنة translation.canDetect(). هناك ثلاثة ردود محتملة:

  • 'no': يتيح المتصفّح الحالي استخدام واجهة برمجة التطبيقات Language Detector API، ولكن لا يمكن استخدامها في الوقت الحالي. على سبيل المثال، بسبب عدم وجود مساحة خالية كافية على القرص لتنزيل النموذج.
  • 'readily': يتيح المتصفّح الحالي استخدام واجهة برمجة التطبيقات Language Detector API، ويمكن استخدامها على الفور.
  • 'after-download': يتوافق المتصفّح الحالي مع واجهة برمجة التطبيقات Language Detector، ولكن يجب تنزيل النموذج أولاً.

لبدء عملية التنزيل وإنشاء مثيل أداة رصد اللغة، يمكنك طلب دالة translation.createDetector() غير المتزامنة. إذا كان الردّ على canDetect() هو 'after-download'، من أفضل الممارسات الاستماع إلى مستوى تقدّم عملية التحميل، حتى تتمكّن من إبلاغ المستخدم في حال استغراق عملية التنزيل بعض الوقت.

يوضّح المثال التالي كيفية إعداد أداة رصد اللغة.

const canDetect = await translation.canDetect();
let detector;
if (canDetect === 'no') {
  // The language detector isn't usable.
  return;
}
if (canDetect === 'readily') {
  // The language detector can immediately be used.
  detector = await translation.createDetector();
} else {
  // The language detector can be used after model download.
  detector = await translation.createDetector();
  detector.addEventListener('downloadprogress', (e) => {
 console.log(e.loaded, e.total);
  });
  await detector.ready;
}

تشغيل أداة رصد اللغة

تستخدِم واجهة برمجة التطبيقات Language Detector API نموذج ترتيب لتحديد اللغة التي يُرجَّح استخدامها في جزء معيّن من النص. الترتيب هو نوع من أنواع التعلم الآلي، يكون الهدف فيه ترتيب قائمة من العناصر. في هذه الحالة، ترتّب واجهة برمجة التطبيقات Language Detector API اللغات من الأعلى إلى الأقل احتمالًا.

يمكن للدالة detect() عرض النتيجة الأولى أو الإجابة الأكثر احتمالاً أو التكرار التحسيني للمرشحين المرتَّبين بمستوى ثقة معيّن. ويتم عرضها على شكل قائمة تضم {detectedLanguage, confidence} عناصر. يتم التعبير عن مستوى confidence كقيمة تتراوح بين 0.0 (أدنى مستوى ثقة) و1.0 (أعلى مستوى ثقة).

const someUserText \= 'Hallo und herzlich willkommen\!';
const results \= await detector.detect(someUserText);
for (const result of results) {
  // Show the full list of potential languages with their likelihood, ranked
  // from most likely to least likely. In practice, one would pick the top
  // language(s) that cross a high enough threshold.
  console.log(result.detectedLanguage, result.confidence);
}
// (Output truncated):
// de 0.9993835687637329
// en 0.00038279531872831285
// nl 0.00010798392031574622
// ...

عرض توضيحي

يمكنك معاينة Language Detector API في الإصدار التجريبي. أدخِل نصًا مكتوبًا بلغات مختلفة في مربّع النص.

الاشتراك في الفترة التجريبية الأصلية

سجِّل للحصول على إصدار تجريبي من Language Detector API لبدء اختبار هذه الواجهة مع المستخدمين. تمتدّ مرحلة تجربة وتقييم Topics هذه من الإصدار 130 إلى الإصدار 135 من Chrome.

مزيد من المعلومات حول آلية عمل الفترات التجريبية للإصدارات الأصلية

جهود التوحيد

تم نقل واجهة برمجة التطبيقات Language Detector API إلى مجموعة منتدى W3C Web Incubator بعد أن تلقّى الاقتراح المقابل دعمًا كافيًا. تشكّل واجهة برمجة التطبيقات جزءًا من اقتراح Translation API الأكبر. طلب فريق Chrome ملاحظات من مجموعة الهندسة المعمارية التقنية في W3C، كما طلب من Mozilla وWebKit معرفة مواقف مورّدي المتصفّحات المحدّدة بشأن المعايير.

مشاركة ملاحظاتك

إذا كانت لديك ملاحظات حول تنفيذ Chrome، يُرجى إرسال تقرير عن خلل في Chromium. شارك ملاحظاتك حول شكل واجهة برمجة التطبيقات Language Detector API من خلال التعليق على مشكلة حالية أو فتح مشكلة جديدة في مستودع Translation API في GitHub.

الموارد