Mengintegrasikan pengklasifikasi Natural language

NLClassifier API Task Library mengklasifikasikan teks input ke dalam berbagai serta merupakan API serbaguna dan dapat dikonfigurasi yang dapat menangani sebagian besar model klasifikasi.

Fitur utama NLClassifier API

  • Mengambil satu {i>string<i} sebagai {i>input<i}, melakukan klasifikasi dengan {i>string<i} dan output <label, score=""> pasangan 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 akan kompatibel dengan NLClassifier Compute Engine API.

Menjalankan inferensi di Java

Lihat Referensi Klasifikasi Teks aplikasi 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 sumber kode guna mendapatkan opsi selengkapnya untuk mengonfigurasi NLClassifier.

Menjalankan inferensi di Swift

Langkah 1: Impor CocoaPods

Menambahkan 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 sumber kode 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 sumber kode 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 sumber kode guna mendapatkan opsi selengkapnya untuk mengonfigurasi NLClassifier.

Hasil contoh

Berikut ini contoh hasil klasifikasi dari ulasan film model.

Input: "Buang-buang waktu saya."

Output:

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 penggunaannya, NLClassifier API dapat memuat model TFLite dengan atau tanpa Metadata Model TFLite. Lihat contoh pembuatan metadata untuk pengklasifikasi natural language menggunakan TensorFlow Lite Penulis Metadata Google Cloud Platform.

Model yang kompatibel harus memenuhi persyaratan berikut:

  • Tensor input: (kTfLiteString/kTfLiteInt32)

    • Input model harus berupa input mentah tensor kTfLiteString string atau tensor kTfLiteInt32 untuk indeks token ekspresi reguler {i>string<i}.
    • Jika jenis input adalah kTfLiteString, tidak Metadata diperlukan untuk model.
    • Jika jenis input adalah kTfLiteInt32, RegexTokenizer harus disiapkan di atribut tensor input Metadata.
  • Tensor skor output: (kTfLiteUInt8/kTfLiteInt8/kTfLiteInt16/kTfLiteFloat32/kTfLiteFloat64)

    • Tensor output wajib untuk skor setiap kategori yang diklasifikasikan.

    • Jika jenis adalah salah satu dari jenis Int, dequantisasi menjadi double/float platform terkait

    • Dapat memiliki file terkait opsional dalam tensor output Metadata yang sesuai untuk kategori label, file harus berupa file teks biasa dengan satu label per baris, dan jumlah label harus sesuai dengan jumlah kategori sebagaimana output model. Lihat label contoh .

  • Tensor label output: (kTfLiteString/kTfLiteInt32)

    • Tensor output opsional untuk label setiap kategori, harus dari sama dengan tensor skor output. Jika tensor ini tidak ada, API menggunakan indeks skor sebagai nama kelas.

    • Akan diabaikan jika file label terkait ada dalam skor output Metadata tensor.