מדריך להטמעת טקסט באינטרנט

המשימה 'הטמעת טקסט ב-MediaPipe' מאפשרת ליצור ייצוג מספרי של נתוני טקסט, כדי להבין את המשמעות הסמנטית שלהם. בהוראות אלה מוסבר כיצד להשתמש ב-Text Implementder באפליקציות אינטרנט ו-JavaScript.

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

קוד לדוגמה

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

הגדרה

בקטע הזה מתוארים שלבים עיקריים להגדרת סביבת הפיתוח ופרויקטים של קוד במיוחד לשימוש ב-Text Implementder. למידע כללי על הגדרת סביבת הפיתוח לשימוש במשימות 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 נדרש מודל מאומן שתואם למשימה הזו. למידע נוסף על המודלים הזמינים להטמעת טקסט, עיינו בסקירה הכללית על המשימות בקטע Models.

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

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

יצירת המשימה

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

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

async function createEmbedder() {
  const textFiles = await FilesetResolver.forTextTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  textEmbedder = await TextEmbedder.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-tasks/text_embedder/universal_sentence_encoder.tflite`
      },
      quantize: true
    }
  );
}
createEmbedder();

אפשרויות הגדרה

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

שם האפשרות תיאור טווח ערכים ערך ברירת מחדל
l2Normalize האם לנרמל את וקטור התכונה שמוחזר עם נורמת L2. יש להשתמש באפשרות הזו רק אם המודל עדיין לא מכיל L2_NORMALIZATION TFLite Op. . ברוב המקרים, זה כבר המצב, וכתוצאה מכך מתקבל מסקנות של TFLite, ללא צורך באפשרות הזו. Boolean False
quantize האם יש לכמת את ההטמעה שמוחזרת לבייטים באמצעות קוונטיזציה סקלרית. ההנחה היא שההטמעות הן נורמת יחידה, ולכן לכל מאפיין מובטח שיהיה ערך [ -1.0, 1.0]. אם זה לא המצב, מומלץ להשתמש באפשרות l2Normalize. Boolean False

הכנת הנתונים

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

const inputText = "The input text to be embedded.";

מריצים את המשימה.

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

הקוד הבא מדגים איך מבצעים את העיבוד באמצעות מודל המשימה.

// Wait to run the function until inner text is set
const embeddingResult = textEmbedder.embed(
  inputText
);

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

הטמעת הטקסט מפיק TextEmbedderResult שמכיל רשימה של הטמעות (floating-point או סקלריים) לטקסט הקלט.

דוגמה לנתוני הפלט מהמשימה הזאת:

TextEmbedderResult:
  Embedding #0 (sole embedding head):
    float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
    head_index: 0

אפשר להשוות את הדמיון הסמנטי בין שתי הטמעות באמצעות הפונקציה TextEmbedder.cosineSimilarity. ראו דוגמה בקוד הבא.

// Compute cosine similarity.
const similarity = TextEmbedder.cosineSimilarity(
  embeddingResult.embeddings[0],
  otherEmbeddingResult.embeddings[0]);

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