NLClassifier API Task Library mengklasifikasikan teks input ke dalam berbagai kategori, dan merupakan API serbaguna dan dapat dikonfigurasi yang dapat menangani sebagian besar model klasifikasi teks.
Fitur utama NLClassifier API
Mengambil satu string sebagai input, melakukan klasifikasi dengan string, dan menampilkan pasangan <label, skor=""> sebagai hasil klasifikasi.</label,>
Tokenisasi Regex Opsional tersedia untuk teks input.
Dapat dikonfigurasi untuk menyesuaikan berbagai model klasifikasi.
Model NLClassifier yang didukung
Model berikut dijamin kompatibel dengan NLClassifier
API.
Model dengan spesifikasi
average_word_vecyang dibuat oleh TensorFlow Lite Model Maker untuk Klasifikasi teks.Model kustom yang memenuhi persyaratan kompatibilitas model.
Menjalankan inferensi di Java
Lihat aplikasi referensi Klasifikasi Teks
untuk contoh cara menggunakan NLClassifier di aplikasi Android.
Langkah 1: Impor dependensi Gradle dan setelan lainnya
Salin file model .tflite ke direktori aset modul Android tempat model akan dijalankan. Tentukan bahwa file tidak boleh dikompresi, dan
tambahkan library TensorFlow Lite ke file build.gradle modul:
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'
}
Langkah 2: Jalankan inferensi menggunakan 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);
Lihat kode
sumber
untuk opsi lainnya dalam mengonfigurasi NLClassifier.
Menjalankan inferensi di Swift
Langkah 1: Impor CocoaPods
Tambahkan pod TensorFlowLiteTaskText di Podfile
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
Langkah 2: Jalankan inferensi menggunakan 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)
Lihat kode sumber untuk mengetahui detail selengkapnya.
Menjalankan inferensi di 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);
Lihat kode sumber untuk mengetahui detail selengkapnya.
Menjalankan inferensi di Python
Langkah 1: Instal paket pip
pip install tflite-support
Langkah 2: Menggunakan model
# Imports
from tflite_support.task import text
# Initialization
classifier = text.NLClassifier.create_from_file(model_path)
# Run inference
text_classification_result = classifier.classify(text)
Lihat kode
sumber
untuk opsi lainnya dalam mengonfigurasi NLClassifier.
Hasil contoh
Berikut adalah contoh hasil klasifikasi model ulasan film.
Input: "Buang-buang waktu saja."
Output:
category[0]: 'Negative' : '0.81313'
category[1]: 'Positive' : '0.18687'
Coba alat demo CLI sederhana untuk NLClassifier dengan model dan data pengujian Anda sendiri.
Persyaratan kompatibilitas model
Bergantung pada kasus penggunaan, NLClassifier API dapat memuat model TFLite dengan
atau tanpa Metadata Model TFLite. Lihat contoh pembuatan metadata untuk pengklasifikasi bahasa alami menggunakan TensorFlow Lite Metadata Writer API.
Model yang kompatibel harus memenuhi persyaratan berikut:
Tensor input: (kTfLiteString/kTfLiteInt32)
- Input model harus berupa string input mentah tensor kTfLiteString atau tensor kTfLiteInt32 untuk indeks yang di-tokenisasi regex dari string input mentah.
- Jika jenis input adalah kTfLiteString, tidak ada Metadata yang diperlukan untuk model.
- Jika jenis input adalah kTfLiteInt32,
RegexTokenizerperlu disiapkan di Metadata tensor input.
Tensor skor output: (kTfLiteUInt8/kTfLiteInt8/kTfLiteInt16/kTfLiteFloat32/kTfLiteFloat64)
Tensor output wajib untuk skor setiap kategori yang diklasifikasikan.
Jika jenisnya adalah salah satu jenis Int, lakukan dekuantisasi ke double/float untuk platform yang sesuai
Dapat memiliki file terkait opsional dalam Metadata yang sesuai untuk label kategori tensor output, file harus berupa file teks biasa dengan satu label per baris, dan jumlah label harus cocok dengan jumlah kategori sebagai output model. Lihat file contoh label.
Tensor label output: (kTfLiteString/kTfLiteInt32)
Tensor output opsional untuk label setiap kategori, harus memiliki panjang yang sama dengan tensor skor output. Jika tensor ini tidak ada, API akan menggunakan indeks skor sebagai nama kelas.
Akan diabaikan jika file label terkait ada di Metadata tensor skor output.