תאריך פרסום: 24 בספטמבר 2024, תאריך עדכון אחרון: 20 במאי 2025
הסבר | פיתוח אתרים | תוספים | סטטוס Chrome | כוונת רכישה |
---|---|---|---|---|
MDN | תצוגה | כוונת משלוח |
לפני שמתרגמים טקסט משפה אחת לאחרת, צריך קודם לזהות את השפה שבה נכתב הטקסט. בעבר, כדי לתרגם טקסט היה צריך להעלות אותו לשירות בענן, לבצע את התרגום בשרת ואז להוריד את התוצאות.
Language Detector API פועל מצד הלקוח, כך שתוכלו להגן על פרטיות המשתמשים. אפשר לשלוח ספרייה ספציפית שמבצעת את הפעולה הזו, אבל תצטרכו משאבים נוספים להורדה.
מתי כדאי להשתמש בזיהוי שפה
ממשק ה-API לזיהוי שפה שימושי בעיקר בתרחישים הבאים:
- קביעת שפת הטקסט להזנה, כדי שניתן יהיה לתרגם אותו.
- זיהוי השפה של טקסט הקלט, כדי שאפשר יהיה לטעון את המודל הנכון למשימות ספציפיות לשפה, כמו זיהוי תוכן רעיל.
- לקבוע את השפה של טקסט הקלט, כדי שאפשר יהיה לתייג אותו בצורה נכונה, למשל באתרי רשתות חברתיות אונליין.
- לקבוע את שפת הטקסט להזנה, כדי שאפשר יהיה לשנות את הממשק של האפליקציה בהתאם. לדוגמה, באתר בבלגיה, כדי להציג רק את הממשק הרלוונטי למשתמשים שדוברים צרפתית.
שנתחיל?
ה-API של הכלי לזיהוי שפות זמין בגרסת Chrome 138 היציבה. מריצים זיהוי תכונות כדי לבדוק אם הדפדפן תומך ב-Language Detector API.
if ('LanguageDetector' in self) {
// The Language Detector API is available.
}
בדיקת דרישות החומרה
ה-API של גלאי השפות ו-Translator API פועלים במחשב רק ב-Chrome.
ממשקי Prompt API, Summarizer API, Writer API ו-Rewriter API פועלים ב-Chrome כשמתקיימים התנאים הבאים:
- מערכת הפעלה: Windows 10 או 11, macOS מגרסה 13 ואילך (Ventura ואילך) או Linux. עדיין אין תמיכה ב-Chrome ל-Android, ל-iOS ול-ChromeOS בממשקי ה-API שלנו שמבוססים על Gemini Nano.
- אחסון: נפח אחסון של 22GB לפחות בנפח האחסון שמכיל את פרופיל Chrome שלכם.
- GPU: יותר מ-4GB של VRAM.
- רשת: נתונים ללא הגבלה או חיבור ללא חיוב לפי נפח.
הדרישות האלה קיימות עבורכם בתהליך הפיתוח ועבור המשתמשים שלכם שעובדים עם התכונות שאתם מפתחים.
הורדת המודל
זיהוי השפה מבוסס על מודל שתוקן בהתאם למשימות הספציפיות של זיהוי השפות. ה-API מובנה בדפדפן, אבל המודל מוריד על פי דרישה בפעם הראשונה שבה אתר מנסה להשתמש ב-API. ב-Chrome, המודל הזה קטן מאוד בהשוואה למודלים אחרים. יכול להיות שהיא כבר נמצאת שם, כי תכונות אחרות של Chrome משתמשות במודל הזה.
כדי לבדוק אם המודל מוכן לשימוש, צריך להפעיל את הפונקציה LanguageDetector.availability()
האסינכרונית ולבדוק את ההבטחה (promise) שנוצרת.
יש שלוש תשובות אפשריות:
"unavailable"
: אין תמיכה באפשרויות המבוקשות או שלא ניתן להציג בקשה לדגם."downloadable"
: הבקשה נתמכת, אבל צריך להוריד קבצים נוספים כדי ליצור סשן. ההורדות האלה עשויות לכלול את מודל השפה או את השיפורים."downloading"
: הבקשה נתמכת וההורדה נמשכת. צריך להשלים אותה לפני יצירת הסשן."available"
: הבקשה נתמכת וניתן ליצור סשן.
כדי להפעיל את ההורדה וליצור מופע של גלאי השפה, צריך להפעיל את הפונקציה האסינכרונית LanguageDetector.create()
. אם התגובה ל-availability()
הייתה 'downloadable'
או 'downloading'
, מומלץ להאזין להתקדמות ההורדה כדי שתוכלו להודיע למשתמש אם ההורדה נמשכת זמן רב.
הדוגמה הבאה ממחישה איך מאתחלים את גלאי השפה.
const availability = await LanguageDetector.availability();
let detector;
if (availability === 'unavailable') {
// The language detector isn't usable.
return;
}
if (availability === 'available') {
// The language detector can immediately be used.
detector = await LanguageDetector.create();
} else {
// The language detector can be used after model download.
detector = await LanguageDetector.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
},
});
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
// ...
זירת ניסוי ל-API
אפשר להתנסות ב-Language Detector API בסביבת ה-API שלנו. מזינים טקסט שנכתב בשפות שונות בתיבת הטקסט.
מאמץ סטנדרטיזציה
צוות Chrome ביקש משוב מקבוצת הארכיטקטורה הטכנית של W3C, וביקש מ-Mozilla ומ-WebKit את עמדותיהם בנושא התקנים.
שיתוף משוב
אנחנו רוצים לראות מה אתם יוצרים באמצעות Language Detector API. אתם יכולים לשתף איתנו את האתרים ואת אפליקציות האינטרנט שלכם ב-X, ב-YouTube וב-LinkedIn.
אם יש לכם משוב על ההטמעה ב-Chrome, תוכלו לשלוח דיווח על באג ב-Chromium.