Integra el clasificador de Natural Language

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 parte 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.

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 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 API

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 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.