Integrasikan pengklasifikasi bahasa alami

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 berpasangan sebagai hasil klasifikasi.

  • 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.

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.