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 für Web- und JavaScript-Anwendungen
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 JavaScript ausführen. Mit diesem Code können Sie diese Aufgabe testen und Erstellen Sie Ihre eigene App zum Einbetten von Text. Sie können Daten abrufen, ausführen, und bearbeiten Sie die Beispielcode für Texteinbettungen ganz einfach in Ihrem Webbrowser.
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 Plattformversionsanforderungen finden Sie in der Einrichtungsleitfaden für das Web
JavaScript-Pakete
Der Code für Texteinbettungen ist über die
@mediapipe/tasks-text
Paket. Sie können diese Bibliotheken über die Links in der
Plattform
Leitfaden für die Einrichtung
Sie können die erforderlichen Pakete mit dem folgenden Code für das lokale Staging installieren mit dem folgenden Befehl:
npm install @mediapipe/tasks-text
Wenn die Bereitstellung auf einem Server erfolgen soll, können Sie eine Inhaltsübermittlung verwenden. Netzwerkdienst (CDN) wie jsDelivr, um Code direkt auf Ihrer HTML-Seite einfügen:
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
crossorigin="anonymous"></script>
</head>
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 Ihrem Projektverzeichnis:
<dev-project-root>/app/shared/models
Aufgabe erstellen
Mit einer der createFrom...()
-Funktionen für Texteinbettungen
die Aufgabe für die Ausführung von Inferenzen vorbereiten. Sie können die createFromModelPath()
verwenden
mit einem relativen oder absoluten Pfad zur trainierten Modelldatei. Der Code
Im folgenden Beispiel wird die Verwendung von createFromOptions()
veranschaulicht.
. Weitere Informationen zu den verfügbaren Konfigurationsoptionen finden Sie unter
Konfigurationsoptionen.
Der folgende Code zeigt, wie diese Aufgabe erstellt und konfiguriert wird:
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();
Konfigurationsoptionen
Diese Aufgabe hat die folgenden Konfigurationsoptionen für Web und JavaScript Anwendungen:
Option | Beschreibung | Wertebereich | Standardwert |
---|---|---|---|
l2Normalize |
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 „l2Normalize“ verwenden, wenn dies nicht der Fall ist. | Boolean |
False |
Daten vorbereiten
Der Texteinbetter arbeitet mit Textdaten (string
). Die Aufgabe verarbeitet die
Vorverarbeitung von
Dateneingaben, einschließlich Tokenisierung und Tensor-Vorverarbeitung. Alle
erfolgt die Vorverarbeitung in der Funktion embed
. Es ist nicht nötig,
zur zusätzlichen Vorverarbeitung des Eingabetexts.
const inputText = "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.
// Wait to run the function until inner text is set
const embeddingResult = textEmbedder.embed(
inputText
);
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.cosineSimilarity
. Im folgenden Code finden Sie eine
Beispiel.
// Compute cosine similarity.
const similarity = TextEmbedder.cosineSimilarity(
embeddingResult.embeddings[0],
otherEmbeddingResult.embeddings[0]);
Der Beispielcode für „Text Embedder“ zeigt, wie der Embedder angezeigt wird. der Aufgabe zurückgegebene Ergebnisse finden Sie in der Codebeispiel .