זיהוי שפה

תכונות באינטרנט: זיהוי שפה

‫Language Detector API הוא API לאינטרנט בצד הלקוח, שנועד לזהות את השפה של מחרוזת טקסט נתונה. הזיהוי מתבצע באופן מקומי בדפדפן, וכך משפר את פרטיות המשתמשים ומפחית את הצורך בספריות חיצוניות כבדות או בקריאות יקרות בצד השרת.

תרחישי שימוש עיקריים

  • הכנה לתרגום: זיהוי שפת המקור לפני ששולחים טקסט למתרגם.
  • בטיחות וסינון: טעינת מודלים ספציפיים למשימות כמו זיהוי תוכן פוגעני.
  • נגישות: הוספת תווית לתוכן עם המאפיין lang הנכון לקוראי מסך.
  • לוקליזציה של ממשק המשתמש: התאמת ממשקי האפליקציה על סמך שפת הקלט של המשתמש.

דרישות חומרה ומערכת

  • מערכת הפעלה: Windows 10/11,‏ macOS 13 ואילך, Linux או Chromebook Plus.
  • אחסון: 22GB של נפח אחסון פנוי (המודל יוסר אם נפח האחסון ירד מתחת ל-10GB).
  • RAM/CPU:‏ 16GB RAM ו-4 ליבות CPU או יותר.
  • ‫VRAM:‏ 4GB ומעלה אם משתמשים ב-GPU.

מדריך הטמעה

1. ניהול מודלים והפעלת משתמשים

לפני שמנסים ליצור מופע של הגלאי או להפעיל הורדה, צריך לבדוק אם המודל זמין.

חובה: כדי למנוע NotAllowedError כשהמודל במצב downloadable או downloading, חובה להפעיל את יצירת המופע של מזהה השפה או את ההורדה של המודל באמצעות LanguageDetector.create() על ידי תנועה של המשתמש (כמו לחיצה על כפתור).

// 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}%`);
        });
      },
    });
  });
}

2. זיהוי ריצה

ה-API מחזיר רשימה מדורגת של שפות אפשריות עם ציון מהימנות בין 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: ה-API לא זמין כרגע ב-Web Workers בגלל מורכבות של מדיניות ההרשאות.

  • פרטיות: לא נשלחים נתונים ל-Google או לצדדים שלישיים במהלך תהליך הזיהוי.

אסטרטגיית גיבוי

לפני השימוש, צריך לבדוק אם האובייקט LanguageDetector זמין בהיקף הגלובלי:

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

אם ה-API של LanguageDetector לא נתמך או שבדיקות הזמינות מחזירות את הערך 'unavailable', צריך להשתמש באפשרות חלופית:

  1. חלופה ל-API מרוחק: הפניית בקשת הזיהוי לנקודת קצה של שרת או ל-Cloud API (כמו Vertex AI Gemini API) כדי לזהות את השפה.
  2. הפחתה חיננית (graceful degradation): משביתים את הרכיבים או הלחצנים של זיהוי השפה ומודיעים למשתמש שהדפדפן הזה לא תומך כרגע בזיהוי בצד הלקוח, כדי למנוע קריסות או חריגות שלא מטופלות.