מדריך לזיהוי שפה באינטרנט

המשימה 'מזהה שפה של MediaPipe' מאפשרת לכם לזהות את השפה של קטע טקסט. האלה הוראות לשימוש ב'מזהה השפה' באפליקציות אינטרנט ו-JavaScript. דוגמת הקוד שמתוארת בהוראות אלה זמינה במכשירים הבאים: GitHub.

אפשר לראות את המשימה הזו בפעולה: demo. מידע נוסף על היכולות, המודלים ואפשרויות ההגדרה במשימה הזאת, ראו סקירה כללית.

קוד לדוגמה

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

הגדרה

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

חבילות JavaScript

הקוד של גלאי השפה זמין דרך @mediapipe/tasks-text חבילה. ניתן למצוא ולהוריד את הספריות האלה בקישורים שנמצאים פלטפורמה מדריך ההגדרה.

ניתן להתקין את החבילות הנדרשות עם הקוד הבא לצורך Staging מקומי באמצעות הפקודה הבאה:

npm install @mediapipe/tasks-text

אם אתם רוצים לפרוס את השירות לשרת, תוכלו להשתמש בכלי להעברת תוכן. שירות רשת (CDN), כגון jsDelivr, ולהוסיף את הקוד ישירות לדף ה-HTML באופן הבא:

<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
    crossorigin="anonymous"></script>
</head>

דגם

למשימה 'מזהה שפה של MediaPipe' נדרש מודל מאומן שתואם למשימה הזו. לקבלת מידע נוסף על מודלים זמינים מאומנים של 'מזהה שפה', אפשר לעיין במאמר בסקירה הכללית על המשימה בקטע 'מודלים'.

בוחרים מודל ומורידים אותו, ולאחר מכן מאחסנים אותו בספריית הפרויקט:

<dev-project-root>/app/shared/models

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

baseOptions: {
        modelAssetPath: `/app/shared/models/language_detector.tflite`
      }

יצירת המשימה

אפשר להשתמש באחת מהפונקציות LanguageDetector.createFrom...() של 'מזהה השפה' כדי להכין את המשימה להפעלת ההסקה. אפשר להשתמש ב-createFromModelPath() בפונקציה עם נתיב יחסי או מוחלט לקובץ המודל שעבר אימון. הקוד הדוגמה הבאה ממחישה את השימוש בפונקציה createFromOptions(). לקבלת מידע נוסף מידע על הגדרת משימות, אפשרויות להגדרות.

הקוד הבא מדגים איך יוצרים ומגדירים את המשימה הזו.

async function createDetector() {
  const textFiles = await FilesetResolver.forTextTasks(
      "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  languageDetector = await languageDetector.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-models/language_detector/language_detector/float32/1/language_detector.tflite`
      },
    }
  );
}
createDetector();

אפשרויות תצורה

המשימה הזו כוללת את אפשרויות ההגדרה הבאות לאינטרנט ו-JavaScript אפליקציות:

שם האפשרות תיאור טווח ערכים ערך ברירת מחדל
maxResults מגדיר את המספר המקסימלי האופציונלי של חיזויים בשפה בעלת הדירוג הגבוה ביותר ל- החזרה. אם הערך הזה קטן מאפס, יוחזרו כל התוצאות הזמינות. מספרים חיוביים כלשהם -1
scoreThreshold הגדרת סף הציון של התחזית שמבטל את הסף שצוין ב את המטא-נתונים של המודל (אם יש). תוצאות מתחת לערך הזה נדחות. כל מספר ממשי (float) לא מוגדר
categoryAllowlist מגדיר את הרשימה האופציונלית של קודים של שפות מורשות. אם השדה לא ריק, הצעות שפה שקוד השפה שלהן לא כלול בקבוצה הזו יהיו מסונן. האפשרות הזו בלעדית לבעלי חשבונות אחרים categoryDenylist והשימוש בשתיהן יביאו לשגיאה. כל מחרוזת לא מוגדר
categoryDenylist מגדיר את הרשימה האופציונלית של קודי שפות אסורים. אם המיקום לא ריק, יסוננו חיזויים של שפות שקוד השפה שלהן נמצא בקבוצה הזו החוצה. האפשרות הזו קיימת רק בחשבונות של categoryAllowlist וגם השימוש בשתי התוצאות גורם לשגיאה. כל מחרוזת לא מוגדר

הכנת נתונים

גלאי השפה פועל עם נתוני טקסט (string). המשימה מטפלת עיבוד מראש של קלט נתונים, כולל יצירת אסימונים ועיבוד מראש של tensor. כל העיבוד מראש מטופל בתוך הפונקציה detect. אין צורך לעיבוד מראש נוסף של טקסט הקלט מראש.

const inputText = "The input text for the detector.";

הרצת המשימה

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

הקוד הבא מדגים איך מבצעים את העיבוד באמצעות המשימה :model

// Wait to run the function until inner text is set
const detectionResult = languageDetector.detect(inputText);

טיפול בתוצאות והצגתן

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

LanguageDetectorResult:
  LanguagePrediction #0:
    language_code: "fr"
    probability: 0.999781

התוצאה הזו התקבלה על ידי הרצת המודל על טקסט הקלט: "Il y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent."

לקבלת דוגמה לקוד הנדרש לעיבוד והצגת התוצאות של במשימה הזאת. אפליקציה לדוגמה מאתר.