NLClassifier
API Perpustakaan Tugas mengklasifikasikan teks input ke dalam kategori yang berbeda, dan merupakan API serbaguna dan dapat dikonfigurasi yang dapat menangani sebagian besar model klasifikasi teks.
Fitur utama dari NLClassifier API
Mengambil string tunggal sebagai input, melakukan klasifikasi dengan string dan output
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 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 (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 mengkonfigurasi 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 mengkonfigurasi NLClassifier
.
Contoh hasil
Berikut adalah contoh hasil klasifikasi model review film .
Masukan: "Sungguh membuang-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 uji 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 masukan: (kTfLiteString/kTfLiteInt32)
- Input model harus berupa string input mentah tensor kTfLiteString atau tensor kTfLiteInt32 untuk indeks tokenized regex dari string input mentah.
- Jika tipe input adalah kTfLiteString, tidak diperlukan Metadata untuk model.
- Jika jenis input adalah kTfLiteInt32,
RegexTokenizer
perlu disiapkan di Metadata tensor input.
Tensor skor keluaran: (kTfLiteUInt8/kTfLiteInt8/kTfLiteInt16/kTfLiteFloat32/kTfLiteFloat64)
Tensor keluaran wajib untuk skor masing-masing kategori yang diklasifikasikan.
Jika tipe adalah salah satu dari tipe Int, dequantize menjadi double/float ke platform yang sesuai
Dapat memiliki file terkait opsional dalam Metadata terkait tensor output untuk label kategori, file harus berupa file teks biasa dengan satu label per baris, dan jumlah label harus sesuai dengan jumlah kategori sebagai output model. Lihat contoh file label .
Tensor label keluaran: (kTfLiteString/kTfLiteInt32)
Tensor keluaran opsional untuk label untuk setiap kategori, harus memiliki panjang yang sama dengan tensor skor keluaran. Jika tensor ini tidak ada, API menggunakan indeks skor sebagai nama kelas.
Akan diabaikan jika file label terkait ada dalam Metadata tensor skor keluaran.