Guide sur l'intégration de texte pour Python

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 avec Python

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 dans Python à titre de référence. Ce code vous aide à tester cette tâche et à obtenir vous avez commencé à créer votre propre outil d'intégration de texte. Vous pouvez afficher, exécuter et modifier les Exemple d'outil d'intégration de texte du code en utilisant simplement votre navigateur Web avec Google Colab. Vous pouvez afficher le code source cet exemple sur GitHub

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 version de la plate-forme requise, consultez le guide de configuration Python.

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

Colis

L'outil d'intégration de texte utilise le package Mediapipe pip. Vous pouvez installer la dépendance par les éléments suivants:

$ python -m pip install mediapipe

Importations

Importez les classes suivantes pour accéder aux fonctions de la tâche de l'intégrateur de texte:

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text

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 un répertoire local. Vous pouvez utiliser les recommandations UniversalSentenceEncoder dans un modèle de ML.

model_path = '/absolute/path/to/universal_sentence_encoder.tflite'

Spécifiez le chemin d'accès du modèle dans le paramètre model_asset_path, comme indiqué ci-dessous:

base_options = BaseOptions(model_asset_path=model_path)

Créer la tâche

La tâche de l'outil d'intégration de texte MediaPipe utilise la fonction create_from_options pour configurer le tâche. La fonction create_from_options accepte des valeurs pour la configuration pour définir les options de l'intégrateur. Vous pouvez également initialiser la tâche à l'aide de la méthode fonction de fabrique create_from_model_path. La fonction create_from_model_path accepte un chemin d'accès relatif ou absolu vers le fichier de modèle entraîné. Pour plus sur les options de configuration, consultez Options de configuration.

Le code suivant montre comment compiler et configurer cette tâche.

import mediapipe as mp

BaseOptions = mp.tasks.BaseOptions
TextEmbedder = mp.tasks.text.TextEmbedder
TextEmbedderOptions = mp.tasks.text.TextEmbedderOptions

# For creating a text embedder instance:
options = TextEmbedderOptions(
    base_options=BaseOptions(model_asset_path=model_path),
    quantize=True)
text_embedder = TextEmbedder.create_from_options(options)

Options de configuration

Cette tâche comporte les options de configuration suivantes pour les applications Python:

Nom de l'option Description Plage de valeurs Valeur par défaut
l2_normalize 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 l'option l2_normalize 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 (str). La tâche gère la saisie des données le prétraitement, y compris la tokenisation et le prétraitement des Tensors.

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

input_text = "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.

# Perform text embedding on the provided input text.
embedding_result = text_embedder.embed(input_text)

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.cosine_similarity. Consultez le code suivant pour obtenir à titre d'exemple.

# Compute cosine similarity.
similarity = TextEmbedder.cosine_similarity(
  embedding_result.embeddings[0],
  other_embedding_result.embeddings[0])