L'attività MediaPipe Text Embedder consente di creare una rappresentazione numerica dei dati di testo per acquisirne il significato semantico. Queste istruzioni mostrano come utilizzare Text Embedder per app web e JavaScript.
Per saperne di più sulle funzionalità, sui modelli e sulle opzioni di configurazione di questa attività, consulta la panoramica.
Codice di esempio
Il codice di esempio per Text Embedder fornisce un'implementazione completa di questa attività in JavaScript come riferimento. Questo codice ti aiuta a testare questa attività e a iniziare a creare la tua app di text embedding. Puoi visualizzare, eseguire, e modificare l'esempio di Text Embedder utilizzando semplicemente il browser web.
Configurazione
Questa sezione descrive i passaggi chiave per configurare l'ambiente di sviluppo e i progetti di codice specificamente per l'utilizzo di Text Embedder. Per informazioni generali sulla configurazione dell'ambiente di sviluppo per l'utilizzo delle attività MediaPipe, inclusi i requisiti della versione della piattaforma, consulta la guida alla configurazione per il web.
Pacchetti JavaScript
Il codice di Text Embedder è disponibile tramite il
@mediapipe/tasks-text
pacchetto. Puoi trovare e scaricare queste librerie dai link forniti nella
guida alla configurazione
della piattaforma.
Puoi installare i pacchetti richiesti con il seguente codice per lo staging locale utilizzando il seguente comando:
npm install @mediapipe/tasks-text
Se vuoi eseguire il deployment su un server, puoi utilizzare un servizio content delivery network (CDN), come jsDelivr, per aggiungere il codice direttamente alla pagina HTML, come segue:
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
crossorigin="anonymous"></script>
</head>
Modello
L'attività MediaPipe Text Embedder richiede un modello addestrato compatibile con questa attività. Per saperne di più sui modelli addestrati disponibili per Text Embedder, consulta la sezione Modelli della panoramica dell'attività.
Seleziona e scarica un modello, quindi archivialo nella directory del progetto:
<dev-project-root>/app/shared/models
Crea l'attività
Utilizza una delle funzioni createFrom...() di Text Embedder per preparare l'attività all'esecuzione delle inferenze. Puoi utilizzare la funzione createFromModelPath() con un percorso relativo o assoluto al file del modello addestrato. L'esempio di codice riportato di seguito mostra l'utilizzo della funzione createFromOptions(). Per saperne di più sulle opzioni di configurazione disponibili, consulta
Opzioni di configurazione.
Il seguente codice mostra come creare e configurare questa attività:
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();
Opzioni di configurazione
Questa attività ha le seguenti opzioni di configurazione per le applicazioni web e JavaScript:
| Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
|---|---|---|---|
l2Normalize |
Indica se normalizzare il vettore di caratteristiche restituito con la norma L2. Utilizza questa opzione solo se il modello non contiene già un'operazione TFLite L2_NORMALIZATION nativa. Nella maggior parte dei casi, questo è già il caso e la normalizzazione L2 viene quindi ottenuta tramite l'inferenza TFLite senza la necessità di questa opzione. | Boolean |
False |
quantize |
Indica se l'embedding restituito deve essere quantizzato in byte tramite la quantizzazione scalare. Si presuppone implicitamente che gli embedding abbiano una norma unitaria e pertanto è garantito che qualsiasi dimensione abbia un valore in [-1.0, 1.0]. Utilizza l'opzione l2Normalize se non è questo il caso. | Boolean |
False |
Preparazione dei dati
Text Embedder funziona con i dati di testo (string). L'attività gestisce la pre-elaborazione dell'input dei dati, inclusa la tokenizzazione e la pre-elaborazione dei tensori. Tutta la pre-elaborazione viene gestita all'interno della funzione embed. Non è necessaria un'ulteriore pre-elaborazione del testo di input.
const inputText = "The input text to be embedded.";
Esegui l'attività
Text Embedder utilizza la funzione embed per attivare le inferenze. Per il text embedding, questo significa restituire i vettori di embedding per il testo di input.
Il seguente codice mostra come eseguire l'elaborazione con il modello di attività.
// Wait to run the function until inner text is set
const embeddingResult = textEmbedder.embed(
inputText
);
Gestisci e visualizza i risultati
Text Embedder restituisce un TextEmbedderResult che contiene un elenco di rappresentazioni in virgola mobile (a virgola mobile o quantizzate in scala) per il testo di input.
Di seguito è riportato un esempio dei dati di output di questa attività:
TextEmbedderResult:
Embedding #0 (sole embedding head):
float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
head_index: 0
Puoi confrontare la somiglianza semantica di due embedding utilizzando la funzione TextEmbedder.cosineSimilarity. Consulta il seguente codice per un esempio.
// Compute cosine similarity.
const similarity = TextEmbedder.cosineSimilarity(
embeddingResult.embeddings[0],
otherEmbeddingResult.embeddings[0]);
Il codice di esempio di Text Embedder mostra come visualizzare i risultati dell'embedder restituiti dall'attività. Per maggiori dettagli, consulta l' esempio .