Görev Kitaplığı'nın NLClassifier API'si, giriş metnini farklı kategorilere ayırır ve çoğu metin sınıflandırma modelini işleyebilen çok yönlü ve yapılandırılabilir bir API'dir.
NLClassifier API'nin temel özellikleri
Giriş olarak tek bir dize alır, dizeyle sınıflandırma yapar ve sınıflandırma sonuçları olarak <label, score=""> çiftlerini çıkarır.</label,>
Giriş metni için isteğe bağlı normal ifadeyle belirteçleştirme özelliği kullanılabilir.
Farklı sınıflandırma modellerine uyacak şekilde yapılandırılabilir.
Desteklenen NLClassifier modelleri
Aşağıdaki modellerin NLClassifier
API ile uyumlu olduğu garanti edilir.
Film yorumu duygu sınıflandırma modeli.
TensorFlow Lite Model Maker for Text Classification tarafından oluşturulan
average_word_vecspesifikasyonuna sahip modeller.Model uyumluluğu koşullarını karşılayan özel modeller.
Java'da çıkarım çalıştırma
NLClassifier öğesinin Android uygulamasında nasıl kullanılacağına ilişkin örnek için Text Classification referans uygulamasını inceleyin.
1. adım: Gradle bağımlılığını ve diğer ayarları içe aktarın
.tflite model dosyasını, modelin çalıştırılacağı Android modülünün öğeler dizinine kopyalayın. Dosyanın sıkıştırılmaması gerektiğini belirtin ve TensorFlow Lite kitaplığını modülün build.gradle dosyasına 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);
NLClassifier yapılandırmayla ilgili diğer seçenekler için kaynak koduna bakın.
Swift'te çıkarım çalıştırma
1. adım: CocoaPods'u içe aktarın
Podfile'a TensorFlowLiteTaskText kapsülünü ekleyin.
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)
Daha fazla bilgi için kaynak koduna bakın.
C++'ta çıkarım çalıştırma
// 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);
Daha fazla bilgi için kaynak koduna bakın.
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)
NLClassifier yapılandırmayla ilgili diğer seçenekler için kaynak koduna bakın.
Örnek sonuçlar
Film yorumu modelinin sınıflandırma sonuçlarına ilişkin bir örneği aşağıda bulabilirsiniz.
Giriş: "Ne kadar da vaktimi boşa harcadım."
Çıkış:
category[0]: 'Negative' : '0.81313'
category[1]: 'Positive' : '0.18687'
Kendi modeliniz ve test verilerinizle basit CLI demo aracını NLClassifier için deneyin.
Model uyumluluğu koşulları
Kullanım alanına bağlı olarak NLClassifier API, TFLite Model Metadata ile veya bu olmadan bir TFLite modeli yükleyebilir. TensorFlow Lite Metadata Writer API'yi kullanarak doğal dil sınıflandırıcıları için meta veri oluşturma örneklerini inceleyin.
Uyumlu modeller aşağıdaki koşulları karşılamalıdır:
Giriş tensörü: (kTfLiteString/kTfLiteInt32)
- Modelin girişi, kTfLiteString tensör ham giriş dizesi veya kTfLiteInt32 tensör olmalıdır. Bu tensör, ham giriş dizesinin normal ifadeyle belirteçleştirilmiş dizinlerini içerir.
- Giriş türü kTfLiteString ise model için Metadata gerekmez.
- Giriş türü kTfLiteInt32 ise giriş tensörünün Metadata'sında
RegexTokenizerayarlanmalıdır.
Çıkış puanı tensörü: (kTfLiteUInt8/kTfLiteInt8/kTfLiteInt16/kTfLiteFloat32/kTfLiteFloat64)
Sınıflandırılan her kategorinin puanı için zorunlu çıkış tensörü.
Tür, Int türlerinden biriyse ilgili platformlarda çift/kayan nokta türüne dönüştürün.
Çıkış tensörünün karşılık gelen meta verilerinde isteğe bağlı olarak ilişkili bir dosya olabilir. Kategori etiketleri için dosya, her satırda bir etiket olacak şekilde düz metin dosyası olmalı ve etiket sayısı, model çıkışlarındaki kategori sayısıyla eşleşmelidir. Örnek etiket dosyasına bakın.
Çıkış etiketi tensörü: (kTfLiteString/kTfLiteInt32)
Her kategori için etiketin isteğe bağlı çıkış tensörü, çıkış puanı tensörüyle aynı uzunlukta olmalıdır. Bu tensör mevcut değilse API, sınıf adları olarak puan dizinlerini kullanır.
İlişkili etiket dosyası çıkış puanı tensörünün meta verilerinde mevcutsa yoksayılır.