Doğal dil sınıflandırıcısını entegre et

Görev Kitaplığı'nın NLClassifier API'si, giriş metnini farklı birçok metni işleyebilen çok yönlü ve yapılandırılabilir bir API'dir sınıflandırma modelleridir.

NLClassifier API'nin temel özellikleri

  • Giriş olarak tek bir dize alır, dizeyle sınıflandırma yapar ve <label, score=""> gibi çıkışlar eşlemelerini sınıflandırma sonucu olarak kullanabilirsiniz.</label,>

  • Giriş metni için isteğe bağlı Normal İfade belirteci kullanılabilir.

  • Farklı sınıflandırma modellerine uyum sağlayacak şekilde yapılandırılabilir.

Desteklenen NLClassifier modelleri

Aşağıdaki modellerin NLClassifier ile uyumlu olacağı garanti edilir API'ye gidin.

Java'da çıkarım çalıştırma

Bkz. Metin Sınıflandırma referansı uygulama NLClassifier uygulamasını Android uygulamasında nasıl kullanacağınızı gösteren örnek.

1. Adım: Gradle bağımlılığını ve diğer ayarları içe aktarın

.tflite model dosyasını Android modülünün öğe dizinine kopyalayın nerede çalıştırılacağına karar verin. Dosyanın sıkıştırılmaması gerektiğini belirtin ve modülün build.gradle dosyasına TensorFlow Lite kitaplığını ekleyin:

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'
}

2. Adım: API'yi kullanarak çıkarım çalıştırma

// 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);

Kaynağa bakın kod daha fazla NLClassifier yapılandırma seçeneğine gidin.

Swift'te çıkarım çalıştır

1. Adım: CocoaPods'u içe aktarın

Podfile'a TensorFlowLiteTaskText kapsülünü ekleme

target 'MySwiftAppWithTaskAPI' do
  use_frameworks!
  pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end

2. Adım: API'yi kullanarak çıkarım çalıştırma

// 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)

Kaynağa bakın kod inceleyebilirsiniz.

C++'ta çıkarım çalıştır

// 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);

Kaynağa bakın kod inceleyebilirsiniz.

Python'da çıkarım çalıştırma

1. Adım: Pip paketini yükleyin

pip install tflite-support

2. Adım: Modeli kullanma

# Imports
from tflite_support.task import text

# Initialization
classifier = text.NLClassifier.create_from_file(model_path)

# Run inference
text_classification_result = classifier.classify(text)

Kaynağa bakın kod daha fazla NLClassifier yapılandırma seçeneğine gidin.

Örnek sonuçlar

Film incelemesinin sınıflandırma sonuçlarının bir örneğini burada bulabilirsiniz: modeli ekleyin.

Giriş: "Ne kadar zamanımı boşa harcadığım."

Çıkış:

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

Şunun için basit CLI demo aracını deneyin: NLClassifier kullanarak test edebilirsiniz.

Model uyumluluğu şartları

Kullanım alanına bağlı olarak NLClassifier API, TFLite Model Meta Verileri olmadan da ilişkilendirebilirsiniz. Örnekleri inceleyin TensorFlow Lite kullanarak doğal dil sınıflandırıcıları için meta veri oluşturma Meta Veri Yazıcısı API.

Uyumlu modeller aşağıdaki gereksinimleri karşılamalıdır:

  • Giriş tensörü: (kTfLiteString/kTfLiteInt32)

    • Model girişi, bir kTfLiteString tensörü ham girişi olmalıdır ham girişin normal ifade jetonlu dizinleri için dize veya bir kTfLiteInt32 tensörü dize.
    • Giriş türü kTfLiteString ise Hayır Model için meta veriler gereklidir.
    • Giriş türü kTfLiteInt32 iseRegexTokenizer giriş tensörü Meta veri.
  • Çıkış puanı tensörü: (kTfLiteUInt8/kTfLiteInt8/kTfLiteInt16/kTfLiteFloat32/kTfLiteFloat64)

    • Sınıflandırılmış her kategorinin puanı için zorunlu çıkış tensörü.

    • Tür, Int türlerinden biriyse çift/kayma olarak ayarlayın ilgili platformlar

    • Çıkış tensöründe isteğe bağlı ilişkili bir dosya olabilir kategorinin Meta verileri etiketleri, dosya her satırda tek bir etiket bulunan bir düz metin dosyası olmalıdır Ayrıca etiket sayısı da modellerin çıkışını inceleyelim. Örnek etikete bakın dosyası olarak adlandırılır.

  • Çıkış etiketi tensörü: (kTfLiteString/kTfLiteInt32)

    • Her kategoride etiket için isteğe bağlı çıkış tensörü, ile çıkış puanı tensörüyle aynı uzunlukta olmalıdır. Bu tensör mevcut değilse API, puan dizinlerini sınıf adı olarak kullanır.

    • Çıkış puanında ilişkili etiket dosyası mevcutsa yoksayılır tensörün meta verileridir.