זיהוי שפה ב-Chrome באמצעות AI מובנה

תאריך הפרסום: 24 בספטמבר 2024

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

הצעה ל-Language Detector ו-Translator API נועדה לפתור את האתגר הזה על ידי שימוש ב-API מובנה בדפדפן כדי לשפר את המודל למשימות כאלה.

תרחישים לדוגמה

ממשק ה-API לזיהוי שפה שימושי בעיקר בתרחישים הבאים:

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

שימוש ב-Language Detector API

ה-API לזיהוי שפה הוא חלק מהמשפחה הרחבה יותר של Translator API. קודם כול מפעילים זיהוי תכונות כדי לראות אם הדפדפן תומך ב-Language Detector API.

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

הורדת דגם

זיהוי השפה תלוי במודל שעבר התאמה אישית למשימות ספציפיות של זיהוי שפות. למרות שה-API מובנה בדפדפן, הורדת המודל מתבצעת על פי דרישה בפעם הראשונה שאתר מנסה להשתמש ב-API. ב-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. מזינים טקסט שכתוב בשפות שונות באזור הטקסט.

הרשמה לגרסת המקור לניסיון

כדי להתחיל לבדוק את ה-API הזה עם המשתמשים שלכם, תוכלו להירשם לגרסת הניסיון של Language Detector API. גרסת המקור לניסיון היא בין Chrome 130 ל-135.

איך פועלות גרסאות המקור לניסיון

מאמץ סטנדרטיזציה

ה-Language Detector API הועבר לקבוצת הקהילה של W3C Web Incubator אחרי שההצעה המתאימה קיבלה מספיק תמיכה. ה-API הוא חלק מהצעה גדולה יותר ל-Translation API. צוות Chrome ביקש משוב מקבוצת הארכיטקטורה הטכנית של W3C, וביקשו מ-Mozilla ומ-WebKit את עמדות ספקי הדפדפנים לגבי התקנים.

שיתוף משוב

אם יש לכם משוב על ההטמעה ב-Chrome, תוכלו לשלוח דיווח על באג ב-Chromium. נשמח לקבל מכם משוב על צורת ה-API של Language Detector API: אתם יכולים להגיב על בעיה קיימת או לפתוח בעיה חדשה במאגר Translation API GitHub.

משאבים