Guide des tâches de classification de texte

Exemple d'UI affichant une critique de film positive comme entrée et cinq étoiles et un pouce levé comme sortie

La tâche de classification du texte MediaPipe vous permet de classer le texte dans un ensemble de catégories définies, telles que le sentiment positif ou négatif. Les catégories sont définies lors de l'entraînement du modèle. Cette tâche fonctionne sur des données textuelles avec un modèle de machine learning (ML) en tant que données statiques, et produit une liste de catégories et leurs scores de probabilité.

Essayez !

Premiers pas

Pour commencer à utiliser cette tâche, suivez l'un de ces guides d'implémentation pour la plate-forme sur laquelle vous travaillez:

Ces guides spécifiques à la plate-forme vous expliquent comment implémenter de manière basique cette tâche, y compris un modèle recommandé et un exemple de code avec les options de configuration recommandées.

Détails de la tâche

Cette section décrit les fonctionnalités, les entrées, les sorties et les options de configuration de cette tâche.

Fonctionnalités

  • Traitement du texte d'entrée : prise en charge de la tokenisation hors graphique pour les modèles sans tokenisation dans le graphique
  • Plusieurs titres de classification : chaque titre peut utiliser son propre ensemble de catégories.
  • Label map locale (Libellé de la carte en paramètres régionaux) : définissez la langue utilisée pour les noms à afficher.
  • Seuil de score : filtrez les résultats en fonction des scores de prédiction.
  • Résultats de classification des k meilleurs : filtrez le nombre de résultats de détection.
  • Liste d'autorisation et de blocage des libellés : spécifiez les catégories détectées.
Entrées de tâche Sorties de tâche
Le classificateur de texte accepte le type de données d'entrée suivant:
  • Chaîne
Le classificateur de texte génère une liste de catégories contenant les éléments suivants:
  • Indice de catégorie: indice de la catégorie dans les sorties du modèle
  • Score: score de confiance de cette catégorie, exprimé sous la forme d'une probabilité comprise entre zéro et un sous la forme d'une valeur à virgule flottante.
  • Nom de la catégorie (facultatif): nom de la catégorie tel qu'il est spécifié dans les métadonnées du modèle TensorFlow Lite, le cas échéant.
  • Nom à afficher de la catégorie (facultatif): nom à afficher de la catégorie, tel que spécifié dans les métadonnées du modèle TensorFlow Lite, dans la langue spécifiée via les options de paramètres régionaux des noms à afficher, le cas échéant.

Options de configuration

Cette tâche propose les options de configuration suivantes:

Nom de l'option Description Plage de valeurs Valeur par défaut
displayNamesLocale Définit la langue des libellés à utiliser pour les noms à afficher fournis dans les métadonnées du modèle de la tâche, le cas échéant. La valeur par défaut est en pour l'anglais. Vous pouvez ajouter des libellés localisés aux métadonnées d'un modèle personnalisé à l'aide de l'API TensorFlow Lite Metadata Writer. Code de paramètres régionaux en
maxResults Définit le nombre maximal facultatif de résultats de classification les plus élevés à renvoyer. Si la valeur est inférieure à 0, tous les résultats disponibles sont renvoyés. N'importe quel nombre positif -1
scoreThreshold Définit le seuil de score de prédiction qui remplace celui fourni dans les métadonnées du modèle (le cas échéant). Les résultats inférieurs à cette valeur sont rejetés. N'importe quelle superposition Non défini
categoryAllowlist Définit la liste facultative des noms de catégories autorisés. Si cet ensemble n'est pas vide, les résultats de classification dont le nom de catégorie ne figure pas dans cet ensemble seront filtrés. Les noms de catégories en double ou inconnus sont ignorés. Cette option s'exclut mutuellement avec categoryDenylist. L'utilisation des deux entraîne une erreur. N'importe quelle chaîne Non défini
categoryDenylist Définit la liste facultative des noms de catégories non autorisés. Si cet ensemble n'est pas vide, les résultats de classification dont le nom de catégorie figure dans cet ensemble seront filtrés. Les noms de catégories en double ou inconnus sont ignorés. Cette option s'exclut mutuellement avec categoryAllowlist. L'utilisation des deux entraîne une erreur. N'importe quelle chaîne Non défini

Modèles

Le classificateur de texte peut être utilisé avec plusieurs modèles de ML. Lorsque vous commencez à développer avec cette tâche, commencez par le modèle par défaut recommandé pour votre plate-forme cible. Les autres modèles disponibles font généralement des compromis entre les performances, la précision, la résolution et les exigences en termes de ressources, et incluent parfois des fonctionnalités supplémentaires.

Les modèles pré-entraînés sont entraînés pour l'analyse des sentiments et prédisent si le sentiment du texte d'entrée est positif ou négatif. Les modèles ont été entraînés sur l'ensemble de données SST-2 (Stanford Sentiment Treebank), qui se compose d'avis sur les films classés comme positifs ou négatifs. Notez que les modèles ne sont disponibles qu'en anglais. Étant donné qu'ils ont été entraînés sur un ensemble de données de critiques de films, la qualité du texte couvrant d'autres sujets peut être réduite.

Ce modèle utilise une architecture basée sur BERT (plus précisément, le modèle MobileBERT) et est recommandé en raison de sa grande précision. Il contient des métadonnées qui permettent à la tâche d'effectuer une tokenisation BERT hors graphique.

Nom du modèle Forme d'entrée Type de quantification Versions
Classifier BERT [1x128],[1x128],[1x128] Dynamic range Nouveautés

Modèle d'embedding lexical moyen

Ce modèle utilise une architecture d'embedding lexical moyen. Ce modèle offre une taille de modèle plus petite et une latence plus faible, mais au détriment d'une précision de prédiction inférieure à celle du classificateur BERT. La personnalisation de ce modèle via un entraînement supplémentaire est également plus rapide que l'entraînement du classificateur basé sur BERT. Ce modèle contient des métadonnées qui permettent à la tâche d'effectuer une tokenisation hors graphique avec expression régulière.

Nom du modèle Forme d'entrée Type de quantification Versions
Embedding lexical moyen 1 x 256 Aucun (float32) Nouveautés

Benchmarks des tâches

Voici les benchmarks de tâche pour l'ensemble du pipeline basés sur les modèles pré-entraînés ci-dessus. Le résultat de la latence correspond à la latence moyenne sur le Pixel 6 à l'aide du processeur / GPU.

Nom du modèle Latence du processeur Latence du GPU
Embedding lexical moyen 0,14 ms -
BERT-classifier 57,68 ms -

Modèles personnalisés

Vous pouvez utiliser un modèle de ML personnalisé avec cette tâche si vous souhaitez améliorer ou modifier les fonctionnalités des modèles fournis. Vous pouvez utiliser Model Maker pour modifier les modèles existants ou en créer un à l'aide d'outils tels que TensorFlow. Les modèles personnalisés utilisés avec MediaPipe doivent être au format TensorFlow Lite et doivent inclure des metadata spécifiques décrivant les paramètres de fonctionnement du modèle. Nous vous conseillons d'utiliser Model Maker pour modifier les modèles fournis pour cette tâche avant de créer les vôtres.