המשימה MediaPipe Text Classifier מאפשרת לכם לסווג טקסט בקבוצה של קטגוריות מוגדרות כמו סנטימנט חיובי או שלילי. לפי הקטגוריות נקבעות המודל שבהם משתמשים, ואופן האימון של המודל. ההוראות האלה מראות איך להשתמש במסווג טקסט באמצעות Python.
אפשר לראות את המשימה הזו בפעולה: הדגמה באינטרנט. לקבלת מידע נוסף על היכולות, המודלים אפשרויות ההגדרה של המשימה הזו, ראו סקירה כללית.
קוד לדוגמה
הקוד לדוגמה של מסווג הטקסט מספק הטמעה מלאה של ב-Python, לעיונך. הקוד הזה עוזר לכם לבדוק את המשימה הזו ולקבל התחלתם ליצור אפליקציה משלכם לסיווג טקסט. אפשר להציג, להריץ ו עריכה של מסווג הטקסט קוד לדוגמה באמצעות דפדפן האינטרנט בלבד.
אם אתם מטמיעים את מסווג הטקסט עבור Raspberry Pi, יש לעיין דוגמה ל-Raspberry Pi app.
הגדרה
בקטע הזה מתוארים השלבים העיקריים להגדרת סביבת הפיתוח פרויקטים של קוד שישמשו באופן ספציפי לשימוש במסווג טקסט. למידע כללי על להגדיר את סביבת הפיתוח לשימוש ב-MediaPipe Tasks, כולל הדרישות לגרסת הפלטפורמה. מדריך ההגדרה של Python
חבילות
מסווג טקסט משתמש בחבילה של mediapipe Pip. אפשר להתקין את יחסי התלות האלה עם:
$ python -m pip install mediapipe
יבוא
כדי לגשת לפונקציות המשימות של מסווג הטקסט, מייבאים את המחלקות הבאות:
from mediapipe.tasks import python
from mediapipe.tasks.python import text
דגם
למשימה של מסווג הטקסט של MediaPipe נדרש מודל מאומן שתואם למשימה הזו. מידע נוסף על מודלים זמינים מאומנים של מסווג טקסט זמין בכתובת בסקירה הכללית על המשימה בקטע 'מודלים'.
בוחרים מודל ומורידים אותו, ולאחר מכן שומרים אותו בספרייה מקומית:
model_path = '/absolute/path/to/text_classifier.tflite'
ציון הנתיב של המודל עם האובייקט model_asset_path
מסוג BaseOptions
פרמטר, כפי שמוצג בהמשך:
base_options = BaseOptions(model_asset_path=model_path)
יצירת המשימה
המשימה של MediaPipe Text Classifier משתמשת בפונקציה create_from_options
כדי להגדיר
למשימה הזו. הפונקציה create_from_options
מקבלת ערכים להגדרה
להגדרת אפשרויות הסיווג. אפשר לאתחל את המשימה גם באמצעות
הפונקציה להגדרות המקוריות create_from_model_path
. create_from_model_path
הפונקציה מקבלת נתיב יחסי או מוחלט לקובץ המודל שעבר אימון.
למידע נוסף על אפשרויות תצורה,
אפשרויות להגדרות.
הקוד הבא מדגים איך יוצרים ומגדירים את המשימה הזו.
base_options = python.BaseOptions(model_asset_path=model_path)
options = text.TextClassifierOptions(base_options=base_options)
with python.text.TextClassifier.create_from_options(options) as classifier:
classification_result = classifier.classify(text)
אפשרויות תצורה
המשימה הזו כוללת את אפשרויות ההגדרה הבאות לאפליקציות ל-Android:
שם האפשרות | תיאור | טווח ערכים | ערך ברירת מחדל |
---|---|---|---|
display_names_locale |
מגדיר את השפה של תוויות שישמשו לשמות לתצוגה שסופקו
של מודל המשימה, אם יש כאלה. ברירת המחדל היא en עבור
אנגלית. אפשר להוסיף תוויות שמותאמות לשוק המקומי למטא-נתונים של מודל מותאם אישית
באמצעות TensorFlow Lite Metadata Writer API
| קוד שפה | en |
max_results |
מגדיר את המספר המקסימלי האופציונלי של תוצאות סיווג מובילות ל- החזרה. אם < 0, כל התוצאות הזמינות יוחזרו. | מספרים חיוביים כלשהם | -1 |
score_threshold |
הגדרת סף הציון של התחזית שמבטל את הסף שצוין ב את המטא-נתונים של המודל (אם יש). תוצאות מתחת לערך הזה נדחות. | כל מספר ממשי (float) | לא מוגדר |
category_allowlist |
מגדיר את הרשימה האופציונלית של שמות קטגוריות מותרות. אם השדה לא ריק,
תוצאות הסיווג שבהן שם הקטגוריה לא נמצא בקבוצה הזו יהיו
מסונן. המערכת מתעלמת משמות קטגוריות כפולים או לא ידועים.
האפשרות הזו בלעדית למשתמשי category_denylist ומשתמשים
ושניהם יובילו לשגיאה. |
כל מחרוזת | לא מוגדר |
category_denylist |
מגדיר את הרשימה האופציונלית של שמות קטגוריות שאינם מותרים. אם המיקום
לא ריקות, תוצאות סיווג שבהן שם הקטגוריה נמצא בקבוצה זו יסוננו
החוצה. המערכת מתעלמת משמות קטגוריות כפולים או לא ידועים. האפשרות הזו מקבילה
בלעדי ל-category_allowlist ושימוש בשתי התוצאות עלול לגרום לשגיאה. |
כל מחרוזת | לא מוגדר |
הכנת נתונים
התכונה 'סיווג טקסט' פועלת עם נתוני טקסט (str
). המשימה מטפלת בקלט הנתונים
מראש, כולל יצירת אסימונים ועיבוד מראש של tensor.
כל העיבוד מראש מטופל בתוך הפונקציה classify
. אין צורך
לעיבוד מראש נוסף של טקסט הקלט מראש.
input_text = 'The input text to be classified.'
הרצת המשימה
מסווג הטקסט משתמש בפונקציה classify
כדי להפעיל הסקת מסקנות. לטקסט
כלומר, תוחזר הקטגוריות האפשריות של טקסט הקלט.
הקוד הבא מדגים איך מבצעים את העיבוד באמצעות המשימה מודל טרנספורמר.
with python.text.TextClassifier.create_from_options(options) as classifier:
classification_result = classifier.classify(text)
טיפול בתוצאות והצגתן
מסווג הטקסט מפיק פלט של אובייקט TextClassifierResult
שמכיל רשימה
של קטגוריות אפשריות לטקסט הקלט. הקטגוריות מוגדרות לפי
במודל שבו אתם משתמשים, לכן אם אתם רוצים להשתמש בקטגוריות שונות, בחרו מודל אחר,
או לאמן מחדש פרויקט קיים.
בדוגמה הבאה אפשר לראות את נתוני הפלט מהמשימה:
TextClassificationResult:
Classification #0 (single classification head):
ClassificationEntry #0:
Category #0:
category name: "positive"
score: 0.8904
index: 0
Category #1:
category name: "negative"
score: 0.1096
index: 1
התוצאה הזו התקבלה על ידי הרצת המסווג BERT על טקסט הקלט:
"an imperfect but overall entertaining mystery"
.