ה-API NLClassifier
של ספריית המשימות מסווג את טקסט הקלט לפי
קטגוריות, והוא ממשק API רב-תכליתי שניתן להגדרה ויכול לטפל ברוב הטקסט
מודלים של סיווג.
תכונות מרכזיות בממשק ה-API של NLClassifier
מקבל מחרוזת יחידה כקלט, מבצע סיווג באמצעות המחרוזת, פלט <label, Score=""> צמדים כתוצאות סיווג.</label,>
אסימון אופציונלי של ביטוי רגולרי (regex) זמין לטקסט קלט.
ניתן להגדיר כדי להתאים מודלים שונים של סיווג.
מודלים נתמכים של NLClassifier
מובטח שהמודלים הבאים יתאימו לNLClassifier
API.
תחושת הביקורת על סרט סיווג מודל טרנספורמר.
דגמים עם המפרט
average_word_vec
נוצרו על ידי TensorFlow Lite Model Maker לסיווג טקסט.מודלים בהתאמה אישית שעומדים בתאימות למודל הדרישות.
הרצת ההסקה ב-Java
מידע נוסף זמין בחומר העזר בנושא סיווג טקסט
אפליקציה
דוגמה לאופן השימוש ב-NLClassifier
באפליקציה ל-Android.
שלב 1: מייבאים תלות ב-Gradle והגדרות אחרות
מעתיקים את קובץ המודל .tflite
לספריית הנכסים הדיגיטליים של מודול Android.
שבה המודל יפעל. לציין שאין לדחוס את הקובץ.
מוסיפים את ספריית TensorFlow Lite לקובץ build.gradle
של המודול:
android {
// Other settings
// Specify tflite file should not be compressed for the app apk
aaptOptions {
noCompress "tflite"
}
}
dependencies {
// Other dependencies
// Import the Task Vision Library dependency
implementation 'org.tensorflow:tensorflow-lite-task-text:0.4.4'
// Import the GPU delegate plugin Library for GPU inference
implementation 'org.tensorflow:tensorflow-lite-gpu-delegate-plugin:0.4.4'
}
שלב 2: מריצים מסקנות באמצעות ה-API
// Initialization, use NLClassifierOptions to configure input and output tensors
NLClassifierOptions options =
NLClassifierOptions.builder()
.setBaseOptions(BaseOptions.builder().useGpu().build())
.setInputTensorName(INPUT_TENSOR_NAME)
.setOutputScoreTensorName(OUTPUT_SCORE_TENSOR_NAME)
.build();
NLClassifier classifier =
NLClassifier.createFromFileAndOptions(context, modelFile, options);
// Run inference
List<Category> results = classifier.classify(input);
אפשר לעיין במקור
קוד
לאפשרויות נוספות להגדרה של NLClassifier
.
הרצת ההסקה ב-Swift
שלב 1: מייבאים CocoaPods
הוספת רצף TensorFlowLiteTaskText ב-Podfile
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
שלב 2: מריצים מסקנות באמצעות ה-API
// Initialization
var modelOptions:TFLNLClassifierOptions = TFLNLClassifierOptions()
modelOptions.inputTensorName = inputTensorName
modelOptions.outputScoreTensorName = outputScoreTensorName
let nlClassifier = TFLNLClassifier.nlClassifier(
modelPath: modelPath,
options: modelOptions)
// Run inference
let categories = nlClassifier.classify(text: input)
אפשר לעיין במקור קוד אפשר לקבל פרטים נוספים.
הרצת ההסקה ב-C++
// Initialization
NLClassifierOptions options;
options.mutable_base_options()->mutable_model_file()->set_file_name(model_path);
std::unique_ptr<NLClassifier> classifier = NLClassifier::CreateFromOptions(options).value();
// Run inference with your input, `input_text`.
std::vector<core::Category> categories = classifier->Classify(input_text);
אפשר לעיין במקור קוד אפשר לקבל פרטים נוספים.
הרצת ההסקה ב-Python
שלב 1: מתקינים את חבילת PIP
pip install tflite-support
שלב 2: שימוש במודל
# Imports
from tflite_support.task import text
# Initialization
classifier = text.NLClassifier.create_from_file(model_path)
# Run inference
text_classification_result = classifier.classify(text)
אפשר לעיין במקור
קוד
לאפשרויות נוספות להגדרה של NLClassifier
.
תוצאות לדוגמה
הנה דוגמה לתוצאות הסיווג של הביקורת על הסרט מודל טרנספורמר.
קלט: "What a spend of my time" (איזה בזבוז זמן).
פלט:
category[0]: 'Negative' : '0.81313'
category[1]: 'Positive' : '0.18687'
נסו את כלי ההדגמה הפשוט של CLI עבור NLClassifier את המודל ונתוני הבדיקה שלכם.
דרישות התאימות של המודלים
בהתאם לתרחיש לדוגמה, ה-API NLClassifier
יכול לטעון מודל TFLite עם
או ללא מטא-נתונים של מודל TFLite. הצגת דוגמאות
של יצירת מטא-נתונים לסיווגי שפה טבעית (NLP) באמצעות טכנולוגיית TensorFlow Lite"
כותב מטא-נתונים
API.
הדגמים התואמים צריכים לעמוד בדרישות הבאות:
לך יזור קלט: (kTfLiteString/kTfLiteInt32)
- הקלט של המודל צריך להיות קלט גולמי של kTfLiteString מחרוזת או tf.LiteInt32 tensor לאינדקסים של קלט גולמי, שעברו תהליך ליצירת אסימונים רגולריים String.
- אם סוג הקלט הוא kTfLiteString, לא נדרשים מטא-נתונים עבור המודל.
- אם סוג הקלט הוא kTfLiteInt32, צריך להגדיר
RegexTokenizer
של img_tensor מטא-נתונים.
טנזור ציון הפלט: (kTfLiteUInt8/kTfLiteInt8/kTfLiteInt16/kTfLiteFloat32/kTfLiteFloat64)
מפריד פלט חובה לציון של כל קטגוריה מסווגת.
אם הסוג הוא אחד מסוגי Int, צריך לבטל את הכמות שלו כדי להכפיל או לצוף אל הפלטפורמות המתאימות
יכול להיות משויך קובץ אופציונלי במשתנה הפלט המטא-נתונים התואמים של הקטגוריה תוויות, הקובץ צריך להיות קובץ טקסט פשוט עם תווית אחת בכל שורה, ומספר התוויות צריך להתאים למספר הקטגוריות של המודל. להצגת התווית לדוגמה .
טנזור תווית הפלט: (kTfLiteString/kTfLiteInt32)
img_tensor [מנף פלט אופציונלי] לתווית של כל קטגוריה, צריך להיות זהה לאורך של t e n s o r f l o w. אם הטנזור הזה לא קיים, ה-API משתמש באינדקסי ציונים כשמות מחלקות.
המערכת תתעלם אם קובץ התווית המשויך נמצא בציון הפלט במטא-נתונים של tensor.