تشخیص زبان

ویژگی‌های وب: تشخیص‌دهنده زبان

‫Language Detector API یک میانای برنامه‌سازی کاربردی وب سمت کارخواه است که برای شناسایی زبان رشته نوشتاری داده‌شده طراحی شده است. با انجام تشخیص به‌صورت محلی در مرورگر، حریم خصوصی کاربر بهبود می‌یابد و نیاز به کتابخانه‌های خارجی سنگین یا تماس‌های پرهزینه سمت سرور کاهش می‌یابد.

موارد استفاده کلیدی

  • آماده‌سازی ترجمه: شناسایی زبان مبدأ قبل‌از ارسال نوشتار به مترجم.
  • ایمنی و فیلتر کردن: بار کردن مدل‌های خاص برای تکالیفی مثل تشخیص سمیت.
  • دسترس‌پذیری: برچسب‌گذاری محتوا با مشخصه lang صحیح برای صفحه‌خوان‌ها.
  • بومی‌سازی میانای کاربر: تنظیم کردن میاناهای برنامه براساس زبان ورودی کاربر.

الزامات سخت‌افزار و سیستم

  • سیستم‌عامل: Windows 10/11،‏ macOS 13+‎،‏ Linux، یا Chromebook Plus.
  • فضای ذخیره‌سازی: ۲۲ گیگابایت فضای آزاد (اگر فضا به کمتر از ۱۰ گیگابایت برسد، مدل برداشته می‌شود).
  • حافظه دسترسی تصادفی/واحد پردازش مرکزی: ۱۶ گیگابایت حافظه دسترسی تصادفی و ۴ هسته واحد پردازش مرکزی یا بیشتر.
  • VRAM:‏ ۴ گیگابایت یا بیشتر درصورت استفاده از GPU.

راهنمای پیاده‌سازی

۱. Model Management & User Activation

قبل‌از تلاش برای نمونه‌سازی آشکارساز یا راه‌اندازی بارگیری، دردسترس بودن مدل را بررسی کنید.

اجباری: نمونه‌سازی تشخیص‌دهنده زبان یا راه‌اندازی بارگیری مدل با LanguageDetector.create() باید توسط اشاره کاربر (مانند کلیک روی دکمه) آغاز شود تا از NotAllowedError زمانی که مدل در حالت downloadable یا downloading است جلوگیری شود.

// Check if the model is available or downloadable
const availability = await LanguageDetector.availability();

if (availability !== 'unavailable') {
  button.addEventListener('click', async () => {
    const detector = await LanguageDetector.create({
      monitor(m) {
        m.addEventListener('downloadprogress', (e) => {
          console.log(`Downloaded ${e.loaded * 100}%`);
        });
      },
    });
  });
}

۲. تشخیص دویدن

میانای برنامه‌سازی کاربردی فهرست رتبه‌بندی‌شده‌ای از زبان‌های احتمالی را با امتیاز اطمینان بین 0.0 و 1.0 برمی‌گرداند.

const someUserText = 'Hallo und herzlich willkommen!';
const results = await detector.detect(someUserText);

for (const result of results) {
  // result.detectedLanguage (e.g., 'de')
  // result.confidence (e.g., 0.999)
  console.log(result.detectedLanguage, result.confidence);
}

از آشکارساز برای عبارت‌های بسیار کوتاه یا تک‌واژه‌ها استفاده نکنید، زیرا دقت آن به‌طور قابل‌توجهی کاهش می‌یابد.

امنیت و محیط

  • Iframe: Iframe میان‌مبدئی برای دسترسی به API به «خط‌مشی اجازه‌های» صریح نیاز دارد.

    <iframe
      src="https://cross-origin.example.com/"
      allow="language-detector"
    ></iframe>
    
  • Web Workers: این میانای برنامه‌سازی کاربردی درحال‌حاضر به‌دلیل پیچیدگی‌های «خط‌مشی اجازه» در Web Workers دردسترس نیست.

  • حریم خصوصی: درطول فرایند تشخیص، هیچ داده‌ای به Google یا اشخاص ثالث ارسال نمی‌شود.

راهبرد جایگزین

قبل‌از استفاده، بررسی کنید که آیا شیء LanguageDetector در دامنه جهانی دردسترس است یا نه:

if ('LanguageDetector' in self) {
  // The Language Detector API is supported.
} else {
  // Execute fallback strategy
}

اگر میانای برنامه‌سازی کاربردی LanguageDetector پشتیبانی نمی‌شود یا بررسی‌های دردسترس بودن 'unavailable' را برمی‌گرداند، باید به‌طور مناسب به حالت قبلی برگردید:

  1. جایگزین میانای برنامه‌سازی کاربردی ازراه‌دور: درخواست تشخیص را به نقطه پایانی سرور یا میانای برنامه‌سازی کاربردی ابری (مانند Vertex AI Gemini API) هدایت کنید تا زبان را شناسایی کند.
  2. تنزل متین: عناصر/ دکمه‌های تشخیص زبان را غیرفعال کنید و به کاربر اطلاع دهید که تشخیص سمت کارخواه درحال‌حاضر در این مرورگر پشتیبانی نمی‌شود، تا از هرگونه استثنا یا خرابی مدیریت‌نشده جلوگیری شود.