API NLClassifier
Perpustakaan Tugas mengklasifikasikan teks masukan ke dalam kategori yang berbeda, dan merupakan API serbaguna dan dapat dikonfigurasi yang dapat menangani sebagian besar model klasifikasi teks.
Fitur utama dari API NLClassifier
Mengambil satu string sebagai masukan, melakukan klasifikasi dengan string dan keluaran
Tokenisasi Regex opsional tersedia untuk teks input.
Dapat dikonfigurasi untuk mengadaptasi model klasifikasi yang berbeda.
Model NLClassifier yang didukung
Model berikut dijamin kompatibel dengan NLClassifier
API.
Model klasifikasi sentimen ulasan film .
Model dengan spesifikasi
average_word_vec
dibuat oleh TensorFlow Lite Model Maker untuk Klasifikasi teks .Model khusus yang memenuhi persyaratan kompatibilitas model .
Jalankan inferensi di Java
Lihat aplikasi referensi Klasifikasi Teks untuk contoh cara menggunakan NLClassifier
di aplikasi Android.
Langkah 1: Impor ketergantungan Gradle dan pengaturan lainnya
Salin file model .tflite
ke direktori aset modul Android tempat model akan dijalankan. Tentukan bahwa file tersebut tidak boleh dikompresi, dan tambahkan pustaka 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 (NNAPI is included)
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 lebih lanjut untuk mengonfigurasi NLClassifier
.
Jalankan 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 lebih jelasnya.
Jalankan 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 lebih jelasnya.
Jalankan inferensi dengan 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 lebih lanjut untuk mengonfigurasi NLClassifier
.
Contoh hasil
Berikut contoh hasil klasifikasi model review film .
Masukan: "Buang-buang waktu saya."
Keluaran:
category[0]: 'Negative' : '0.81313'
category[1]: 'Positive' : '0.18687'
Cobalah 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 TFLite Model Metadata . Lihat contoh pembuatan metadata untuk pengklasifikasi bahasa alami menggunakan TensorFlow Lite Metadata Writer API .
Model yang kompatibel harus memenuhi persyaratan berikut:
Tensor masukan: (kTfLiteString/kTfLiteInt32)
- Masukan model harus berupa string masukan mentah tensor kTfLiteString atau tensor kTfLiteInt32 untuk indeks tokenisasi regex dari string masukan mentah.
- Jika jenis inputnya adalah kTfLiteString, Metadata tidak diperlukan untuk model tersebut.
- Jika jenis masukannya adalah kTfLiteInt32,
RegexTokenizer
perlu disiapkan di Metadata tensor masukan.
Tensor skor keluaran: (kTfLiteUInt8/kTfLiteInt8/kTfLiteInt16/kTfLiteFloat32/kTfLiteFloat64)
Tensor keluaran wajib untuk skor setiap kategori yang diklasifikasikan.
Jika tipe adalah salah satu tipe Int, dekuantisasikan menjadi double/float ke platform yang sesuai
Dapat memiliki file terkait opsional di Metadata tensor keluaran yang sesuai untuk label kategori, file tersebut harus berupa file teks biasa dengan satu label per baris, dan jumlah label harus sesuai dengan jumlah kategori sebagai keluaran model. Lihat contoh file label .
Tensor label keluaran: (kTfLiteString/kTfLiteInt32)
Tensor keluaran opsional untuk label setiap kategori harus sama panjangnya dengan tensor skor keluaran. Jika tensor ini tidak ada, API akan menggunakan indeks skor sebagai nama kelas.
Akan diabaikan jika file label terkait ada di Metadata tensor skor keluaran.