La API NLClassifier
de la Biblioteca de tareas clasifica el texto de entrada en diferentes
categorías y es una API versátil y configurable que puede manejar la mayoría del texto
de clasificación de modelos.
Funciones clave de la API de NLClassifier
Toma una sola cadena como entrada, realiza la clasificación con la cadena y resultados <label, score=""> como resultados de clasificación.</label,>
Asignación de token de regex opcional disponible para el texto de entrada.
Se puede configurar para adaptar diferentes modelos de clasificación.
Modelos NLClassifier compatibles
Se garantiza la compatibilidad de los siguientes modelos con NLClassifier
en la API de Cloud.
Opinión sobre la película y la clasificación, un modelo de responsabilidad compartida.
Modelos con la especificación
average_word_vec
creados por TensorFlow Lite Model Maker para la clasificación de texto.Modelos personalizados que cumplen con la compatibilidad de modelos empresariales y de seguridad.
Ejecuta inferencias en Java
Consulta la referencia de clasificación de texto
app
a fin de ver un ejemplo de cómo usar NLClassifier
en una app para Android.
Paso 1: Importa la dependencia de Gradle y otros parámetros de configuración
Copia el archivo de modelo .tflite
en el directorio de recursos del módulo de Android.
en la que se ejecutará el modelo. Especificar que el archivo no debe comprimirse
agrega la biblioteca de TensorFlow Lite al archivo build.gradle
del módulo:
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'
}
Paso 2: Ejecuta la inferencia con la 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);
Consulta la fuente
código
si quieres obtener más opciones para configurar NLClassifier
.
Ejecuta la inferencia en Swift
Paso 1: Importa CocoaPods
Agrega el pod de TensorFlowLiteTaskText en el Podfile
target 'MySwiftAppWithTaskAPI' do
use_frameworks!
pod 'TensorFlowLiteTaskText', '~> 0.4.4'
end
Paso 2: Ejecuta la inferencia con la 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)
Consulta la fuente código para obtener más información.
Ejecuta inferencias 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);
Consulta la fuente código para obtener más información.
Ejecuta la inferencia en Python
Paso 1: Instala el paquete pip
pip install tflite-support
Paso 2: Usa el modelo
# Imports
from tflite_support.task import text
# Initialization
classifier = text.NLClassifier.create_from_file(model_path)
# Run inference
text_classification_result = classifier.classify(text)
Consulta la fuente
código
si quieres obtener más opciones para configurar NLClassifier
.
Resultados de ejemplo
A continuación, se muestra un ejemplo de los resultados de clasificación de la reseña de la película automático.
Entrada: "¿Qué pérdida de tiempo tengo?".
Resultado:
category[0]: 'Negative' : '0.81313'
category[1]: 'Positive' : '0.18687'
Prueba la sencilla herramienta de demostración de CLI para NLClassifier con tu propio modelo y datos de prueba.
Requisitos de compatibilidad del modelo
Según el caso de uso, la API de NLClassifier
puede cargar un modelo de TFLite con
o sin metadatos del modelo de TFLite. Ver ejemplos
para crear metadatos para clasificadores de lenguaje natural con el modelo de TensorFlow Lite
Escritor de metadatos
de la API de Google Ads.
Los modelos compatibles deben cumplir los siguientes requisitos:
Tensor de entrada: (kTfLiteString/kTfLiteInt32)
- La entrada del modelo debe ser una entrada sin procesar del tensor kTfLiteString string o un tensor kTfLiteInt32 para índices con tokens asignados de regex de la entrada sin procesar una cadena vacía.
- Si el tipo de entrada es kTfLiteString, no Los metadatos son obligatorios para el modelo.
- Si el tipo de entrada es kTfLiteInt32, se debe configurar un
RegexTokenizer
en la interfaz del tensor de entrada Metadatos.
Tensor de puntuación de salida: (kTfLiteUInt8/kTfLiteInt8/kTfLiteInt16/kTfLiteFloat32/kTfLiteFloat64)
Tensor de salida obligatorio para la puntuación de cada categoría clasificada.
Si el tipo es uno de los tipos Int, descuantícalo para que sea doble/flotante para plataformas correspondientes
Puede tener un archivo asociado opcional en la fuente del tensor de salida Metadatos correspondientes de la categoría etiquetas, el archivo debe ser de texto sin formato con una etiqueta por línea y el número de etiquetas debe coincidir con el número de categorías que resultados del modelo. Consulta la etiqueta de ejemplo predeterminado.
Tensor de etiqueta de salida: (kTfLiteString/kTfLiteInt32)
El tensor de salida opcional para la etiqueta para cada categoría debe ser del tipo de la misma longitud que el tensor de puntuación de salida. Si este tensor no está presente, el La API usa índices de puntuación como nombres de clase.
Se ignorará si el archivo de etiquetas asociado está presente en la puntuación de salida. metadatos del tensor.