تصنِّف واجهة برمجة التطبيقات NLClassifier
في "مكتبة المهام" نص الإدخال إلى
وهي واجهة برمجة تطبيقات متعددة الاستخدامات وقابلة للضبط يمكنها التعامل مع معظم النصوص
نماذج التصنيف.
الميزات الأساسية لواجهة برمجة التطبيقات NLClassifier API
يتم أخذ سلسلة واحدة كمدخل، ويتم إجراء التصنيف مع السلسلة المخرجات <label, Score=""> الأزواج كنتائج تصنيف.</label,>
يتوفّر رمز مميّز اختياري للتعبير عن التعبير لنص الإدخال.
قابلة للتهيئة لتكييف نماذج التصنيف المختلفة.
طُرز NLClassifier المتوافقة
نؤكّد أنّ النماذج التالية متوافقة مع NLClassifier
.
واجهة برمجة التطبيقات.
آراء مراجعة الفيلم التصنيف الأمثل.
تم إنشاء النماذج ذات المواصفات
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: تنفيذ الاستنتاج باستخدام واجهة برمجة التطبيقات
// 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: تنفيذ الاستنتاج باستخدام واجهة برمجة التطبيقات
// 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);
اطّلِع على المصدر الرمز لمزيد من التفاصيل.
تنفيذ الاستنتاج في بايثون
الخطوة 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
.
أمثلة النتائج
فيما يلي مثال على نتائج تصنيف مراجعة الفيلم الأمثل.
الإدخال: "يا له من مضيعة للوقت".
إخراج:
category[0]: 'Negative' : '0.81313'
category[1]: 'Positive' : '0.18687'
جرِّب استخدام أداة CLI التجريبية البسيطة NLClassifier باستخدام نموذجك الخاص وبيانات الاختبار.
متطلبات توافق النموذج
استنادًا إلى حالة الاستخدام، يمكن لواجهة برمجة التطبيقات NLClassifier
تحميل نموذج TFLite يحتوي على
أو بدون البيانات الوصفية لنماذج TFLite. الاطّلاع على أمثلة
إنشاء بيانات وصفية لمصنِّفات اللغات الطبيعية باستخدام TensorFlow Lite
كاتب البيانات الوصفية
API.
يجب أن تستوفي النماذج المتوافقة المتطلبات التالية:
مصدر الإدخال: (kTfLiteString/kTfLiteInt32)
- يجب أن يكون إدخال النموذج إما إدخالاً أوّليًا بتنسيق kTfLiteString tensor. سلسلة أو موتر kTfLiteInt32 لمؤشرات تعبيرات رموز مميّزة للإدخال الأولي سلسلة.
- إذا كان نوع الإدخال هو kTfLiteString، لا البيانات الوصفية مطلوبة للنموذج.
- إذا كان نوع الإدخال هو kTfLiteInt32، يجب إعداد
RegexTokenizer
في. البيانات الوصفية:
مترابط نتيجة الإخراج: (kTfLiteUInt8/kTfLiteInt8/kTfLiteInt16/kTfLiteFloat32/kTfLiteFloat64)
مقياس الإخراج الإلزامي لنتيجة كل فئة مصنفة.
إذا كان النوع هو أحد أنواع Int، فقم بتحويله إلى قيمة مزدوجة/عائمة إلى المنصات المقابلة
يمكن أن يحتوي على ملف مرتبط اختياري في جدول الإخراج البيانات الوصفية المقابلة للفئة التصنيفات، فيجب أن يكون الملف ملفًا نصيًا عاديًا بتصنيف واحد لكل سطر، ويجب أن يتطابق عدد التسميات مع عدد الفئات مخرجات النماذج. اطّلع على مثال للتصنيف .
مخرج تصنيف الإخراج: (kTfLiteString/kTfLiteInt32)
يجب أن يكون مترابط الإخراج الاختياري للتصنيف لكل فئة من المتغير نفس طول مترابط نتيجة المخرجات. في حالة عدم وجود هذا المخطَّط، تستخدم واجهة برمجة التطبيقات فهارس النتائج كأسماء فئات.
سيتم تجاهله في حال توفُّر ملف التصنيف المرتبط في نتيجة الإخراج. البيانات الوصفية الخاصة بـ Tensor.