L'API NLClassifier
de la bibliothèque de tâches classe le texte d'entrée dans différentes
Il s'agit d'une API polyvalente et configurable capable de gérer la plupart des types de texte
modèles de classification.
Principales fonctionnalités de l'API NLClassifier
Prend une seule chaîne en entrée, effectue une classification avec la chaîne et renvoie <label, score="">. paires comme résultats de classification.</label,>
Tokenisation d'expressions régulières facultative disponible pour le texte d'entrée.
Configurable pour adapter différents modèles de classification.
Modèles NLClassifier compatibles
La compatibilité des modèles suivants avec NLClassifier
est garantie.
API.
La critique de film classification du modèle.
Modèles aux spécifications
average_word_vec
créés par TensorFlow Lite Model Maker pour la classification de texte.Des modèles personnalisés qui répondent aux critères de compatibilité exigences.
Exécuter une inférence en Java
Consultez la documentation de référence sur la classification de texte
l'appli
pour obtenir un exemple d'utilisation de NLClassifier
dans une application Android.
Étape 1: Importez la dépendance Gradle et d'autres paramètres
Copiez le fichier de modèle .tflite
dans le répertoire d'éléments du module Android.
où le modèle sera exécuté. Spécifier que le fichier ne doit pas être compressé
Ajoutez la bibliothèque TensorFlow Lite au fichier build.gradle
du module:
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'
}
Étape 2: Exécutez l'inférence à l'aide de l'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);
Consultez la source
du code
pour afficher d'autres options de configuration de NLClassifier
.
Exécuter une inférence en Swift
Étape 1: Importez des CocoaPods
Ajouter le pod TensorFlowLiteTaskText dans le fichier Podfile
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
Étape 2: Exécutez l'inférence à l'aide de l'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)
Consultez la source du code pour en savoir plus.
Exécuter une inférence en 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);
Consultez la source du code pour en savoir plus.
Exécuter une inférence en Python
Étape 1: Installez le package pip
pip install tflite-support
Étape 2: Utiliser le modèle
# Imports
from tflite_support.task import text
# Initialization
classifier = text.NLClassifier.create_from_file(model_path)
# Run inference
text_classification_result = classifier.classify(text)
Consultez la source
du code
pour afficher d'autres options de configuration de NLClassifier
.
Exemples de résultats
Voici un exemple des résultats de classification d'une critique de film modèle.
Entrée : "Quelle perte de temps."
Sortie :
category[0]: 'Negative' : '0.81313'
category[1]: 'Positive' : '0.18687'
Essayez l'outil de démonstration CLI simple pour NLClassifier avec votre propre modèle et vos données de test.
Exigences de compatibilité des modèles
Selon le cas d'utilisation, l'API NLClassifier
peut charger un modèle TFLite avec
ou sans métadonnées de modèle TFLite. Voir des exemples
de création de métadonnées pour les classificateurs en langage naturel à l'aide de la bibliothèque TensorFlow Lite
Rédacteur de métadonnées
API.
Les modèles compatibles doivent répondre aux exigences suivantes:
Tensor d'entrée: (kTfLiteString/kTfLiteInt32)
- L'entrée du modèle doit être une entrée brute de Tensor kTfLiteString chaîne ou un Tensor kTfLiteInt32 pour les index tokenisés sous forme d'expression régulière de l'entrée brute .
- Si le type d'entrée est kTfLiteString, aucune Des métadonnées sont requises pour le modèle.
- Si le type d'entrée est kTfLiteInt32, un
RegexTokenizer
doit être configuré dans du Tensor d'entrée Métadonnées :
Tensor de score de sortie: (kTfLiteUInt8/kTfLiteInt8/kTfLiteInt16/kTfLiteFloat32/kTfLiteFloat64)
Tensor de sortie obligatoire pour le score de chaque catégorie classée.
Si le type est l'un des types Int, déquantifiez-le pour doubler/float pour plates-formes correspondantes
Peut avoir un fichier associé facultatif dans le Tensor de sortie les métadonnées correspondantes de la catégorie le fichier doit être au format texte brut avec une étiquette par ligne, et le nombre d'étiquettes doit correspondre au nombre de catégories les sorties du modèle. Reportez-vous à l'exemple d'étiquette fichier.
Tensor de l'étiquette de sortie: (kTfLiteString/kTfLiteInt32)
Le Tensor de sortie facultatif pour l'étiquette de chaque catégorie doit être de la même longueur que le Tensor de score de sortie. Si ce Tensor n'est pas présent, le L'API utilise des index de score comme noms de classe.
Sera ignoré si le fichier d'étiquettes associé est présent dans le score de sortie les métadonnées du Tensor.