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

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

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

קוד לדוגמה

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

הגדרה

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

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

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

יצירת המשימה

משתמשים באחת מהפונקציות createFrom...() של הכלי להטמעת טקסט כדי להכין את המשימה להפעלת ההסקה. אפשר להשתמש ב-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. ברוב המקרים, זה כבר המצב, כך מתקבלת נירמול L2 באמצעות הסקת TFLite ללא צורך לאפשרות הזו. Boolean False
quantize האם יש לכמת את ההטמעה שהוחזרה לבייטים באמצעות קוונטיזציה סקלרית. מניחים בהטמעות מרומזות שהן נורות-יחידה לכן מובטח שלכל מאפיין יהיה ערך ב-[-1.0, 1.0]. כדאי להשתמש אם זה לא המצב, תוכלו להשתמש באפשרות l2regularize. 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 שמכיל רשימה של הטמעות (נקודה צפה או כמות סקלרית) לטקסט הקלט.

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

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]);

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