Hari Komunitas ML adalah 9 November! Bergabung dengan kami untuk update dari TensorFlow, JAX, dan lebih Pelajari lebih lanjut

Integrasikan pengklasifikasi bahasa alami

Tugas Perpustakaan NLClassifier API mengklasifikasikan input teks ke dalam kategori yang berbeda, dan adalah serbaguna dan API 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 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 akan kompatibel dengan NLClassifier API.

Jalankan inferensi di Java

Lihat Teks referensi aplikasi Klasifikasi untuk contoh bagaimana menggunakan NLClassifier dalam sebuah aplikasi Android.

Langkah 1: Impor ketergantungan Gradle dan pengaturan lainnya

Salin .tflite file model ke direktori aset modul Android di mana model akan dijalankan. Menentukan bahwa file tersebut tidak harus dikompresi, dan menambahkan perpustakaan TensorFlow Lite untuk modul build.gradle berkas:

android {
    // Other settings

    // Specify tflite file should not be compressed for the app apk
    aaptOptions {
        noCompress "tflite"
    }

}

dependencies {
    // Other dependencies

    // Import the Task Text Library dependency
    implementation 'org.tensorflow:tensorflow-lite-task-text:0.2.0'
}

Langkah 2: Jalankan inferensi menggunakan API

// Initialization, use NLClassifierOptions to configure input and output tensors
NLClassifierOptions options = NLClassifierOptions.builder().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 lebih banyak pilihan untuk mengkonfigurasi NLClassifier .

Jalankan inferensi di Swift

Langkah 1: Impor CocoaPods

Tambahkan pod TensorFlowLiteTaskText di Podfile

target 'MySwiftAppWithTaskAPI' do
  use_frameworks!
  pod 'TensorFlowLiteTaskText', '~> 0.2.0'
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_file);
std::unique_ptr<NLClassifier> classifier = NLClassifier::CreateFromOptions(options).value();

// Run inference
std::vector<core::Category> categories = classifier->Classify(kInput);

Lihat kode sumber untuk lebih jelasnya.

Contoh hasil

Berikut adalah contoh dari hasil klasifikasi model yang review film .

Masukan: "Sungguh membuang-buang waktu saya."

Keluaran:

category[0]: 'Negative' : '0.81313'
category[1]: 'Positive' : '0.18687'

Cobalah sederhana alat CLI demo untuk NLClassifier model dan uji sendiri data Anda.

Persyaratan kompatibilitas model

Tergantung pada kasus penggunaan, yang NLClassifier API dapat memuat model TFLite dengan atau tanpa TFLite Model Metadata . Lihat contoh menciptakan metadata untuk pengklasifikasi bahasa alami menggunakan TensorFlow Lite Metadata Penulis 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 jenis input kTfLiteString, tidak ada Metadata diperlukan untuk model.

    • Jika jenis input kTfLiteInt32, seorang RegexTokenizer perlu didirikan di masukan tensor ini Metadata .

  • 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 terkait berkas opsional dalam output tensor yang sesuai Metadata untuk kategori label, file harus file teks biasa dengan satu label per baris, dan jumlah label harus sesuai dengan jumlah kategori sebagai output model yang. Lihat berkas label exmaple .

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