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

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

قبل ترجمة نص من لغة إلى أخرى، عليك أولاً تحديد اللغة المستخدَمة في النص المحدَّد. في السابق، كانت عملية الترجمة تتطلّبتحميل النص إلى خدمة السحابة الإلكترونية وإجراء الترجمة على الخادم ثم تنزيل النتائج.

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

مدى التوفّر

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

لبدء استخدام Language Detector API، اتّبِع الخطوات التالية:

  1. الموافقة على سياسة الاستخدامات المحظورة للذكاء الاصطناعي التوليدي من Google
  2. انتقِل إلى مرحلة التجربة والتقييم في Language Detector API.
  3. انقر على تسجيل واملأ النموذج.
    • في حقل مصدر الويب، أدخِل المصدر أو معرّف الإضافة، chrome-extension://YOUR_EXTENSION_ID.
  4. لإرسال الإضافة، انقر على تسجيل.
  5. انسخ الرمز المميّز المقدَّم وأضِفه إلى كل صفحة ويب على مصدرك أوملف الإضافة الذي تريد تفعيل الفترة التجريبية عليه.
  6. ابدأ باستخدام Language Detection API.

مزيد من المعلومات حول كيفية بدء استخدام ميزة "الإصدارات التجريبية من المصدر"

إضافة إمكانية استخدام localhost

للوصول إلى Language Detection API على localhost أثناء مرحلة التجربة والتقييم، يجب تحديث Chrome إلى أحدث إصدار. ثم اتبع الخطوات التالية:

  1. افتح Chrome على أحد الأنظمة الأساسية التالية: Windows أو Mac أو Linux.
  2. الانتقال إلى chrome://flags/#language-detection-api
  3. اختَر مفعّل.
  4. انقر على إعادة التشغيل أو أعِد تشغيل Chrome.

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

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

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

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

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

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 API، ولكنه يحتاج إلى تنزيل النموذج أولاً.

لبدء عملية التنزيل وإنشاء مثيل لبرنامج رصد اللغة، استخدِم الدالة 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 إلى مجموعة منتدى W3C Web Incubator بعد أن تلقّى الاقتراح المقابل دعمًا كافيًا. تشكّل واجهة برمجة التطبيقات جزءًا من اقتراح Translation API الأكبر.

طلب فريق Chrome ملاحظات من مجموعة الهندسة المعمارية التقنية في W3C وسأل Mozilla وWebKit عن مواقفهما بشأن المعايير.

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

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