La tâche de l'intégrateur de texte MediaPipe vous permet de créer une représentation numérique de données textuelles pour saisir sa signification sémantique. Ces instructions vous expliquent comment utiliser Outil d'intégration de texte pour les applications Web et JavaScript
Pour en savoir plus sur les fonctionnalités, les modèles et les options de configuration de cette tâche, consultez la section Présentation.
Exemple de code
L'exemple de code pour l'outil d'intégration 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 d'intégration de texte. Vous pouvez afficher, exécuter et modifiez le Exemple de code de l'outil d'intégration 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écifiques pour utiliser l'outil d'intégration de texte. Pour obtenir des informations générales sur configurer votre environnement de développement pour utiliser les tâches MediaPipe, y compris versions de la plate-forme requises, consultez la Guide de configuration pour le Web
Packages JavaScript
Le code de l'outil d'intégration 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
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, ajoutez du code directement à votre page HTML, comme suit:
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
crossorigin="anonymous"></script>
</head>
Modèle
La tâche de l'outil d'intégration 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 l'outil d'intégration de texte, consultez 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>/app/shared/models
Créer la tâche
Utilisez l'une des fonctions createFrom...()
de l'outil d'intégration 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 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 createEmbedder() {
const textFiles = await FilesetResolver.forTextTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
textEmbedder = await TextEmbedder.createFromOptions(
textFiles,
{
baseOptions: {
modelAssetPath: `https://storage.googleapis.com/mediapipe-tasks/text_embedder/universal_sentence_encoder.tflite`
},
quantize: true
}
);
}
createEmbedder();
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 |
---|---|---|---|
l2Normalize |
Indique s'il faut normaliser le vecteur de caractéristiques renvoyé avec la norme L2. N'utilisez cette option que si le modèle ne contient pas encore d'élément natif L2_NORMALIZATION TFLite Op. Dans la plupart des cas, c'est déjà le cas et La normalisation L2 est ainsi obtenue via l'inférence TFLite sans avoir besoin pour cette option. | Boolean |
False |
quantize |
Indique si la représentation vectorielle continue renvoyée doit être quantifiée en octets via la quantification scalaire. Les représentations vectorielles continues sont implicitement considérées comme étant une norme unitaire Par conséquent, toute dimension aura une valeur comprise dans [-1.0, 1.0]. Utilisez utilisez l'option l2Normalize si ce n'est pas le cas. | Boolean |
False |
Préparer les données
L'outil d'intégration 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. Tout
le prétraitement est géré dans la fonction embed
. Il n'est pas nécessaire
pour prétraiter davantage le texte d'entrée.
const inputText = "The input text to be embedded.";
Exécuter la tâche
L'outil d'intégration de texte utilise la fonction embed
pour déclencher des inférences. Texte
cela signifie renvoyer les vecteurs de représentation vectorielle continue pour le texte d'entrée.
Le code suivant montre comment exécuter le traitement avec le modèle de tâche.
// Wait to run the function until inner text is set
const embeddingResult = textEmbedder.embed(
inputText
);
Gérer et afficher les résultats
L'intégrateur de texte génère une TextEmbedderResult
contenant une liste de
(à virgule flottante ou scalaire) pour le texte d'entrée.
Voici un exemple de données de sortie de cette tâche:
TextEmbedderResult:
Embedding #0 (sole embedding head):
float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
head_index: 0
Vous pouvez comparer la similarité sémantique de deux représentations vectorielles continues à l'aide de la fonction
fonction TextEmbedder.cosineSimilarity
. Consultez le code suivant pour obtenir
à titre d'exemple.
// Compute cosine similarity.
const similarity = TextEmbedder.cosineSimilarity(
embeddingResult.embeddings[0],
otherEmbeddingResult.embeddings[0]);
L'exemple de code de l'outil d'intégration de texte montre comment afficher l'outil d'intégration renvoyés par la tâche, consultez la exemple de code pour en savoir plus.