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.
Comenzar
Para comenzar a usar esta tarea, sigue una de estas guías de implementación para la plataforma en la que trabajas:
- Android: Ejemplo de código
- Python: ejemplo de código
- Web: Ejemplo de código: Guía
- iOS: Ejemplo de código
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:
|
El clasificador de texto genera una lista de categorías que contiene lo siguiente:
|
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.
Modelo de clasificador BERT (recomendado)
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.