Guía de tareas de clasificación de texto

Ejemplo de IU que muestra una opinión positiva sobre una película como entrada y el resultado como cinco estrellas y un pulgar hacia arriba

La tarea del clasificador de texto de MediaPipe te permite clasificar el texto en un conjunto de categorías definidas, como opinión positiva o negativa. Las categorías se definen durante el entrenamiento del modelo. Esta tarea opera en datos de texto con un modelo de aprendizaje automático (AA) como datos estáticos y genera una lista de categorías y sus puntuaciones de probabilidad.

Pruébala.

Comenzar

Para comenzar a usar esta tarea, sigue una de estas guías de implementación para la plataforma en la que trabajas:

En estas guías específicas de la plataforma, se explica una implementación básica de esta tarea, incluido un modelo recomendado y un ejemplo de código con opciones de configuración recomendadas.

Detalles de la tarea

En esta sección, se describen las capacidades, las entradas, las salidas y las opciones de configuración de esta tarea.

Funciones

  • Procesamiento de texto de entrada: Admite la tokenización fuera del grafo para modelos sin tokenización dentro del grafo.
  • Varios encabezados de clasificación: Cada encabezado puede usar su propio conjunto de categorías.
  • Label map locale: Establece el idioma que se usa para los nombres visibles.
  • Umbral de puntuación: Filtra los resultados según las puntuaciones de predicción.
  • Resultados de clasificación Top-K: Filtra la cantidad de resultados de detección.
  • Etiqueta la lista de entidades permitidas y la lista de bloqueo: Especifica las categorías detectadas.
Entradas de tareas Resultados de las tareas
El clasificador de texto acepta el siguiente tipo de datos de entrada:
  • String
El clasificador de texto genera una lista de categorías que contiene lo siguiente:
  • Índice de categoría: Es el índice de la categoría en los resultados del modelo.
  • Puntuación: Es la puntuación de confianza de esta categoría, expresada como una probabilidad entre cero y uno como valor de punto flotante.
  • Nombre de la categoría (opcional): Es el nombre de la categoría, como se especifica en los metadatos del modelo de TensorFlow Lite, si está disponible.
  • Nombre visible de la categoría (opcional): Es un nombre visible para la categoría como se especifica en los metadatos del modelo de TensorFlow Lite, en el idioma especificado a través de las opciones de configuración regional de los nombres visibles, si está disponible.

Opciones de configuración

Esta tarea tiene las siguientes opciones de configuración:

Nombre de la opción Descripción Rango de valores Valor predeterminado
displayNamesLocale Establece el idioma de las etiquetas que se usarán para los nombres visibles proporcionados en los metadatos del modelo de la tarea, si están disponibles. El valor predeterminado es en para el inglés. Puedes agregar etiquetas localizadas a los metadatos de un modelo personalizado con la API de Metadata Writer de TensorFlow Lite. Código de configuración regional en
maxResults Establece la cantidad máxima opcional de resultados de clasificación con la puntuación más alta que se mostrarán. Si es menor que 0, se mostrarán todos los resultados disponibles. Cualquier número positivo -1
scoreThreshold Establece el umbral de puntuación de predicción que anula el que se proporciona en los metadatos del modelo (si corresponde). Se rechazan los resultados por debajo de este valor. Cualquier número de punto flotante Sin establecer
categoryAllowlist Establece la lista opcional de nombres de categorías permitidas. Si no está vacío, se filtrarán los resultados de clasificación cuyo nombre de categoría no esté en este conjunto. Se ignoran los nombres de categorías duplicados o desconocidos. Esta opción es mutuamente excluyente con categoryDenylist y, si se usan ambas, se genera un error. Cualquier cadena Sin establecer
categoryDenylist Establece la lista opcional de nombres de categorías que no están permitidos. Si no está vacío, se filtrarán los resultados de clasificación cuyo nombre de categoría esté en este conjunto. Se ignoran los nombres de categorías duplicados o desconocidos. Esta opción es mutuamente excluyente con categoryAllowlist y usar ambas genera un error. Cualquier cadena Sin establecer

Modelos

El clasificador de texto se puede usar con más de un modelo de AA. Comienza con el modelo predeterminado y recomendado para tu plataforma de destino cuando comiences a desarrollar con esta tarea. Los otros modelos disponibles suelen establecer compensaciones entre el rendimiento, la exactitud, la resolución y los requisitos de recursos, y, en algunos casos, incluyen funciones adicionales.

Los modelos previamente entrenados se entrenan para el análisis de opiniones y predicen si el sentimiento del texto de entrada es positivo o negativo. Los modelos se entrenaron en el conjunto de datos SST-2 (Stanford Sentiment Treebank), que consta de opiniones de películas etiquetadas como positivas o negativas. Ten en cuenta que los modelos solo admiten el idioma inglés. Dado que se entrenaron con un conjunto de datos de opiniones de películas, es posible que veas una calidad reducida en el texto que abarca otras áreas temáticas.

Este modelo usa una arquitectura basada en BERT (específicamente, el modelo de MobileBERT) y se recomienda por su alta precisión. Contiene metadatos que permiten que la tarea realice la tokenización de BERT fuera del gráfico.

Nombre del modelo Forma de entrada Tipo de cuantización Versiones
BERT-classifier [1 x 128],[1 x 128],[1 x 128] rango dinámico Más reciente

Modelo de incorporación de palabras promedio

Este modelo usa una arquitectura de incorporación de palabras promedio. Este modelo ofrece un tamaño de modelo más pequeño y una latencia más baja a costa de una menor precisión de predicción en comparación con el clasificador de BERT. Personalizar este modelo a través de un entrenamiento adicional también es más rápido que entrenar el clasificador basado en BERT. Este modelo contiene metadatos que permiten que la tarea realice la tokenización de regex fuera del gráfico.

Nombre del modelo Forma de entrada Tipo de cuantización Versiones
Incorporación de palabras promedio 1 × 256 Ninguno (float32) Más reciente

Comparativas de tareas

Estas son las comparativas de tareas de toda la canalización según los modelos previamente entrenados anteriores. El resultado de la latencia es la latencia promedio en el Pixel 6 con CPU o GPU.

Nombre del modelo Latencia de la CPU Latencia de la GPU
Incorporación de palabras promedio 0.14 ms -
BERT-classifier 57.68 ms -

Modelos personalizados

Puedes usar un modelo de AA personalizado con esta tarea si deseas mejorar o alterar las capacidades de los modelos proporcionados. Puedes usar Model Maker para modificar los modelos existentes o compilar uno con herramientas como TensorFlow. Los modelos personalizados que se usan con MediaPipe deben estar en formato TensorFlow Lite y deben incluir metadata específicos que describan los parámetros de funcionamiento del modelo. Considera usar Model Maker para modificar los modelos proporcionados para esta tarea antes de crear el tuyo.