Anleitung zum Texteinbetten in Python

Mit der Aufgabe „MediaPipe Text Embedder“ können Sie eine numerische Darstellung von Textdaten erstellen, semantische Bedeutung erfassen. In dieser Anleitung erfahren Sie, wie Sie die Text Embedder mit Python verwenden.

Weitere Informationen zu Funktionen, Modellen und Konfigurationsoptionen Sehen Sie sich die Übersicht an.

Codebeispiel

Der Beispielcode für Text Embedder bietet eine vollständige Implementierung dieses in Python. Dieser Code hilft Ihnen, diese Aufgabe zu testen und mit dem Erstellen eigener Texteinbettungen. Sie können den Bereich Beispiel für Texteinbettungen Code mit Google Colab in Ihrem Webbrowser. Sie können den Quellcode für dieses Beispiel auf GitHub

Einrichtung

In diesem Abschnitt werden die wichtigsten Schritte zum Einrichten Ihrer Entwicklungsumgebung und Codeprojekte für die Nutzung von Text Embedder. Allgemeine Informationen zu Einrichten Ihrer Entwicklungsumgebung für die Verwendung von MediaPipe-Aufgaben, einschließlich Anforderungen an die Plattformversion finden Sie im Einrichtungsleitfaden für Python.

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

Pakete

Der Texteinbetter verwendet das mediapipe-Paket „pip“. Sie können die Abhängigkeit Dabei gilt:

$ python -m pip install mediapipe

Importe

Importieren Sie die folgenden Klassen, um auf die Aufgabenfunktionen „Text Embedder“ zuzugreifen:

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

Modell

Für die Aufgabe „MediaPipe Text Embedder“ ist ein trainiertes Modell erforderlich, für die Aufgabe. Weitere Informationen zu verfügbaren trainierten Modellen für Text Embedder finden Sie unter in der Aufgabenübersicht im Abschnitt „Modelle“.

Wählen Sie ein Modell aus, laden Sie es herunter und speichern Sie es dann in einem lokalen Verzeichnis. Sie können die empfohlenen UniversalSentenceEncoder modellieren.

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

Geben Sie den Pfad des Modells innerhalb des Parameters model_asset_path wie unten gezeigt an:

base_options = BaseOptions(model_asset_path=model_path)

Aufgabe erstellen

In der Aufgabe „Text Embedder“ von MediaPipe wird mit der Funktion create_from_options die Methode für die Aufgabe. Die Funktion create_from_options akzeptiert Werte für die Konfiguration um die Einbettungsoptionen festzulegen. Sie können die Aufgabe auch mit der Methode create_from_model_path-Factory-Funktion. Die Funktion create_from_model_path akzeptiert einen relativen oder absoluten Pfad zur Datei des trainierten Modells. Weitere Informationen Informationen zu Konfigurationsoptionen finden Sie unter Konfigurationsoptionen.

Der folgende Code zeigt, wie diese Aufgabe erstellt und konfiguriert wird.

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)

Konfigurationsoptionen

Diese Aufgabe bietet die folgenden Konfigurationsoptionen für Python-Anwendungen:

Option Beschreibung Wertebereich Standardwert
l2_normalize Gibt an, ob der zurückgegebene Featurevektor mit der L2-Norm normalisiert werden soll. Verwenden Sie diese Option nur, wenn das Modell noch keine native L2_NORMALIZATION TFLite Op. In den meisten Fällen ist dies bereits der Fall und Die L2-Normalisierung wird somit über TFLite-Inferenz ohne Notwendigkeit erreicht. für diese Option. Boolean False
quantize Ob die zurückgegebene Einbettung in Byte quantisiert werden soll mithilfe von eine skalare Quantisierung. Bei Einbettungen wird implizit angenommen, Daher hat jede Dimension garantiert einen Wert in [-1,0; 1,0]. Verwenden Sie die Option „l2_normalize“ verwenden, wenn dies nicht der Fall ist. Boolean False

Daten vorbereiten

Der Texteinbetter arbeitet mit Textdaten (str). Die Aufgabe verarbeitet die Dateneingabe Vorverarbeitung, einschließlich Tokenisierung und Tensor-Vorverarbeitung.

Die gesamte Vorverarbeitung erfolgt über die Funktion embed. Es ist nicht nötig, zur zusätzlichen Vorverarbeitung des Eingabetexts.

input_text = "The input text to be embedded."

Aufgabe ausführen

Der Texteinbetter verwendet die Funktion embed, um Inferenzen auszulösen. Für Text Einbettung, bedeutet dies, dass die Einbettungsvektoren für den Eingabetext zurückgegeben werden.

Der folgende Code zeigt, wie die Verarbeitung mit dem Aufgabenmodell ausgeführt wird.

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

Ergebnisse verarbeiten und anzeigen

Der Texteinbetter gibt eine TextEmbedderResult aus, die eine Liste von Einbettungen (entweder Gleitkomma oder skalar quantisiert) für den Eingabetext.

Im Folgenden sehen Sie ein Beispiel für die Ausgabedaten dieser Aufgabe:

TextEmbedderResult:
  Embedding #0 (sole embedding head):
    float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
    head_index: 0

Sie können die semantische Ähnlichkeit zweier Einbettungen mit der Funktion TextEmbedder.cosine_similarity. Im folgenden Code finden Sie eine Beispiel.

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