Guide de classification de texte pour le Web

La tâche de classification de texte MediaPipe vous permet de classer du texte en un ensemble de catégories définies, comme un sentiment positif ou négatif. Les catégories déterminent le modèle que vous utilisez et comment ce modèle a été entraîné. Ces instructions vous expliquent comment utiliser le classificateur de texte pour les applications Web et JavaScript.

Pour voir concrètement en quoi consiste cette tâche, consultez le demo. Pour en savoir plus sur les fonctionnalités, les modèles et de configuration de cette tâche, consultez la Présentation.

Exemple de code

L'exemple de code pour le classificateur de texte fournit une implémentation complète de ce en JavaScript à titre de référence. Ce code vous aide à tester cette tâche et commencez à créer votre propre application de classification de texte. Vous pouvez afficher, exécuter modifier l'exemple de code de l'outil de classification de texte ; en utilisant uniquement votre navigateur Web.

Configuration

Cette section décrit les étapes clés à suivre pour configurer votre environnement de développement projets de code spécifiquement pour utiliser le classificateur de texte. Pour obtenir des informations générales sur configurer votre environnement de développement pour utiliser MediaPipe Tasks, y compris versions de la plate-forme requises, consultez la Guide de configuration pour le Web

Packages JavaScript

Le code du classificateur de texte est disponible via la @mediapipe/tasks-text d'un package. Vous pouvez trouver et télécharger ces bibliothèques à partir des liens fournis dans la plateforme Guide de configuration

<ph type="x-smartling-placeholder">

Vous pouvez installer les packages requis avec le code suivant pour la préproduction locale en exécutant la commande suivante:

npm install @mediapipe/tasks-text

Si vous souhaitez le déployer sur un serveur, vous pouvez utiliser un module de diffusion de contenu (CDN), comme jsDelivr, pour ajoutez du code directement à votre page HTML, comme suit:

<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@0.1/text-bundle.js"
    crossorigin="anonymous"></script>
</head>

Modèle

La tâche de classification de texte MediaPipe nécessite un modèle entraîné compatible avec tâche. Pour en savoir plus sur les modèles entraînés disponibles pour le classificateur de texte, consultez la page la section Modèles de la présentation des tâches.

Sélectionnez et téléchargez un modèle, puis stockez-le dans le répertoire de votre projet:

<dev-project-root>/assets/bert_text_classifier.tflite

Spécifiez le chemin d'accès du modèle avec l'objet baseOptions modelAssetPath. , comme indiqué ci-dessous:

baseOptions: {
        modelAssetPath: `/assets/bert_text_classifier.tflite`
      }

Créer la tâche

Utilisez l'une des fonctions TextClassifier.createFrom...() de l'outil de classification de texte pour : préparer la tâche à exécuter des inférences. Vous pouvez utiliser l'createFromModelPath() avec un chemin d'accès relatif ou absolu vers le fichier de modèle entraîné. Le code L'exemple ci-dessous illustre l'utilisation de TextClassifier.createFromOptions(). . Pour en savoir plus sur les options de configuration disponibles, consultez Options de configuration.

Le code suivant montre comment créer et configurer cette tâche:

async function createClassifier() {
  const textFiles = await FilesetResolver.forTextTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  textClassifier = await TextClassifier.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-tasks/text_classifier/bert_text_classifier.tflite`
      },
      maxResults: 5
    }
  );
}
createClassifier();

Options de configuration

Cette tâche comporte les options de configuration suivantes pour le Web et JavaScript applications:

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 les métadonnées du modèle de la tâche, le cas échéant. La valeur par défaut est en pour 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 des paramètres régionaux en
maxResults Définit le nombre maximal facultatif de résultats de classification les mieux notés sur retour. Si < 0, tous les résultats disponibles sont renvoyés. Tous les nombres positifs -1
scoreThreshold Définit le seuil de score de prédiction qui remplace celui indiqué dans les métadonnées du modèle (le cas échéant). Les résultats inférieurs à cette valeur sont refusés. N'importe quel nombre décimal Non défini
categoryAllowlist Définit la liste facultative des noms de catégories autorisés. Si ce champ n'est pas vide, les résultats de classification dont le nom de catégorie ne fait pas partie de cet ensemble seront filtrées. Les noms de catégories en double ou inconnus sont ignorés. Cette option s'exclue mutuellement avec categoryDenylist et utilise génèrent une erreur. Toutes les chaînes Non défini
categoryDenylist Définit la liste facultative des noms de catégories non autorisés. Si non vide, les résultats de classification dont le nom de catégorie se trouve dans cet ensemble seront filtrés s'affiche. Les noms de catégories en double ou inconnus sont ignorés. Cette option est mutuellement exclusive avec categoryAllowlist et l'utilisation des deux entraîne une erreur. Toutes les chaînes Non défini

Préparer les données

L'outil de classification de texte fonctionne avec des données textuelles (String). La tâche gère le prétraitement des entrées de données, y compris la tokenisation et le prétraitement des Tensors.

L'ensemble du prétraitement est géré dans la fonction classify(). Il n'est pas nécessaire pour prétraiter davantage le texte d'entrée.

const inputText = "The input text to be classified.";

Exécuter la tâche

Le classificateur de texte utilise la fonction classify() pour déclencher des inférences. Texte la classification, cela signifie renvoyer les catégories possibles pour le texte d'entrée.

Le code suivant montre comment exécuter le traitement avec la tâche dans un modèle de ML.

// Wait to run the function until inner text is set
const result: TextClassifierResult = await textClassifier.classify(
  inputText
);

Gérer et afficher les résultats

Le classificateur de texte génère un TextClassifierResult qui contient la liste de catégories possibles pour le texte d'entrée. Ces catégories sont définies par que vous utilisez. Si vous souhaitez utiliser des catégories différentes, choisissez-en un autre. ou à réentraîner un modèle existant.

Voici un exemple de données de sortie de cette tâche:

TextClassificationResult:
  Classification #0 (single classification head):
    ClassificationEntry #0:
      Category #0:
        category name: "positive"
        score: 0.8904
        index: 0
      Category #1:
        category name: "negative"
        score: 0.1096
        index: 1

Ce résultat a été obtenu en exécutant le classificateur BERT sur le texte d'entrée: "an imperfect but overall entertaining mystery"