המשימה 'כלי להטמעת טקסט של MediaPipe' מאפשרת ליצור ייצוג מספרי של נתוני טקסט לתעד את המשמעות הסמנטית שלו. ההוראות האלה מדגימות איך להשתמש כלי להטמעת טקסט באמצעות Python.
מידע נוסף על היכולות, המודלים ואפשרויות ההגדרה במשימה הזאת, ראו סקירה כללית.
קוד לדוגמה
הקוד לדוגמה של כלי הטמעה של טקסט מספק יישום מלא של ב-Python, לעיונך. הקוד הזה עוזר לכם לבדוק את המשימה הזו ולקבל התחלתם ליצור כלי הטמעה משלכם של טקסט. ניתן להציג, להריץ ולערוך דוגמה של כלי להטמעת טקסט קוד באמצעות דפדפן האינטרנט בלבד, עם Google Colab. אפשר להציג את קוד המקור עבור בדוגמה הזאת GitHub.
הגדרה
בקטע הזה מתוארים השלבים העיקריים להגדרת סביבת הפיתוח פרויקטי קוד שמיועדים באופן ספציפי לשימוש בכלי להטמעת טקסט. למידע כללי על להגדיר את סביבת הפיתוח לשימוש במשימות של MediaPipe, כולל הדרישות לגרסאות הפלטפורמה זמינות במדריך ההגדרה עבור Python.
חבילות
כלי להטמעת טקסט משתמש בחבילת ה-Mediapipe Pip. אפשר להתקין את מערכת התלות עם:
$ python -m pip install mediapipe
יבוא
כדי לגשת לפונקציות המשימה של כלי הטמעת הטקסט, מייבאים את המחלקות הבאות:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text
דגם
למשימה של MediaPipe Text Embedder נדרש מודל מאומן שתואם למשימה הזו. לקבלת מידע נוסף על מודלים זמינים מאומנים של כלי להטמעת טקסט, אפשר לעיין במאמר בסקירה הכללית על המשימה בקטע 'מודלים'.
בוחרים מודל ומורידים אותו, ולאחר מכן שומרים אותו בספרייה מקומית. אפשר להשתמש המומלצים UniversalSentenceEncoder מודל טרנספורמר.
model_path = '/absolute/path/to/universal_sentence_encoder.tflite'
צריך לציין את הנתיב של המודל בתוך הפרמטר model_asset_path
, כפי שמוצג למטה:
base_options = BaseOptions(model_asset_path=model_path)
יצירת המשימה
המשימה של MediaPipe Text Embedder משתמשת בפונקציה create_from_options
כדי להגדיר
למשימה הזו. הפונקציה create_from_options
מקבלת ערכים להגדרה
להגדרת אפשרויות של כלי ההטמעה. אפשר לאתחל את המשימה גם באמצעות
פונקציה להגדרות המקוריות של create_from_model_path
. הפונקציה create_from_model_path
מקבלת נתיב יחסי או מוחלט לקובץ המודל שעבר אימון. לקבלת מידע נוסף
מידע על אפשרויות תצורה,
אפשרויות להגדרות.
הקוד הבא מדגים איך יוצרים ומגדירים את המשימה הזו.
import mediapipe as mp
BaseOptions = mp.tasks.BaseOptions
TextEmbedder = mp.tasks.text.TextEmbedder
TextEmbedderOptions = mp.tasks.text.TextEmbedderOptions
# For creating a text embedder instance:
options = TextEmbedderOptions(
base_options=BaseOptions(model_asset_path=model_path),
quantize=True)
text_embedder = TextEmbedder.create_from_options(options)
אפשרויות תצורה
המשימה הזו כוללת את אפשרויות ההגדרה הבאות לאפליקציות Python:
שם האפשרות | תיאור | טווח ערכים | ערך ברירת מחדל |
---|---|---|---|
l2_normalize |
האם לנרמל את וקטור התכונה שמוחזר באמצעות נורמת L2. אפשר להשתמש באפשרות הזו רק אם המודל לא מכיל כבר L2_NORMALIZATION TFLite Op. ברוב המקרים, זה כבר המצב, כך מתקבלת נירמול L2 באמצעות הסקת TFLite ללא צורך לאפשרות הזו. | Boolean |
False |
quantize |
האם יש לכמת את ההטמעה שהוחזרה לבייטים באמצעות קוונטיזציה סקלרית. מניחים בהטמעות מרומזות שהן נורות-יחידה לכן מובטח שלכל מאפיין יהיה ערך ב-[-1.0, 1.0]. כדאי להשתמש אם זה לא המצב, תוכלו להשתמש באפשרות l2_regularize. | Boolean |
False |
הכנת נתונים
הכלי להטמעת טקסט פועל עם נתוני טקסט (str
). המשימה מטפלת בקלט הנתונים
מראש, כולל יצירת אסימונים ועיבוד מראש של tensor.
כל העיבוד מראש מטופל בתוך הפונקציה embed
. אין צורך
לעיבוד מראש נוסף של טקסט הקלט מראש.
input_text = "The input text to be embedded."
הרצת המשימה
הכלי להטמעת טקסט משתמש בפונקציה embed
כדי להפעיל הסקת מסקנות. לטקסט
כלומר, החזרת הווקטורים של ההטמעה של טקסט הקלט.
הקוד הבא מדגים איך מבצעים את העיבוד באמצעות מודל המשימה.
# Perform text embedding on the provided input text.
embedding_result = text_embedder.embed(input_text)
טיפול בתוצאות והצגתן
הכלי להטמעת טקסט מפיק פלט של TextEmbedderResult
שמכיל רשימה של
הטמעות (נקודה צפה או כמות סקלרית) לטקסט הקלט.
בדוגמה הבאה אפשר לראות את נתוני הפלט מהמשימה:
TextEmbedderResult:
Embedding #0 (sole embedding head):
float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
head_index: 0
אפשר להשוות את הדמיון הסמנטי בין שתי הטמעות באמצעות
TextEmbedder.cosine_similarity
. הקוד הבא מופיע
לדוגמה.
# Compute cosine similarity.
similarity = TextEmbedder.cosine_similarity(
embedding_result.embeddings[0],
other_embedding_result.embeddings[0])