L'attività Incorporatore di testo MediaPipe consente di creare una rappresentazione numerica dei dati di testo in acquisire il suo significato semantico. Queste istruzioni mostrano come utilizzare Incorporatore di testo per app web e JavaScript.
Per ulteriori informazioni su funzionalità, modelli e opzioni di configurazione di questa attività, consulta la Panoramica.
Esempio di codice
Il codice di esempio per l'incorporamento di testo fornisce un'implementazione completa di questo in JavaScript come riferimento. Questo codice è utile per testare l'attività a creare la tua app di incorporamento del testo. Puoi visualizzare, eseguire e modificare il Esempio di codice per l'incorporamento di testo usando solo il browser web.
Configurazione
Questa sezione descrive i passaggi chiave per configurare l'ambiente di sviluppo e per i progetti di codice che usano specificatamente Incorporatore di testo. Per informazioni generali su configurare l'ambiente di sviluppo per l'utilizzo delle attività di MediaPipe, tra cui: i requisiti di versione della piattaforma, consulta Guida alla configurazione per il web.
Pacchetti JavaScript
Il codice dell'incorporamento di testo è disponibile tramite
@mediapipe/tasks-text
pacchetto. Puoi trovare e scaricare queste librerie dai link forniti nei
piattaforma
Guida alla configurazione.
Puoi installare i pacchetti richiesti con il seguente codice per la gestione temporanea locale utilizzando il seguente comando:
npm install @mediapipe/tasks-text
Se vuoi eseguire il deployment su un server, puoi usare una distribuzione dei contenuti da un servizio di rete (CDN), come jsDelivr, per Aggiungi il codice direttamente alla pagina HTML, nel seguente modo:
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
crossorigin="anonymous"></script>
</head>
Modello
L'attività Incorporatore di testo MediaPipe richiede un modello addestrato compatibile con dell'attività. Per ulteriori informazioni sui modelli addestrati disponibili per l'incorporamento di testo, consulta la panoramica delle attività nella sezione Modelli.
Seleziona e scarica un modello, quindi archivialo nella directory del progetto:
<dev-project-root>/app/shared/models
Crea l'attività
Usa una delle funzioni createFrom...()
dell'incorporamento di testo per
per preparare l'attività per l'esecuzione delle inferenze. Puoi usare createFromModelPath()
con un percorso relativo o assoluto al file del modello addestrato. Il codice
l'esempio seguente mostra l'utilizzo dell'elemento createFromOptions()
personalizzata. Per ulteriori informazioni sulle opzioni di configurazione disponibili, vedi
Opzioni di configurazione.
Il codice seguente illustra 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à include le seguenti opzioni di configurazione per web e JavaScript applicazioni:
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 L2_NORMALIZZAZIONE TFLite Op. Nella maggior parte dei casi, questo è già il caso. La normalizzazione L2 viene quindi ottenuta attraverso l'inferenza TFLite senza necessità per questa opzione. | Boolean |
False |
quantize |
Indica se l'incorporamento restituito deve essere quantizzato in byte tramite quantizzazione scalare. Gli incorporamenti sono implicitamente considerati come norma unitaria. pertanto è garantito che qualsiasi dimensione abbia un valore pari a [-1,0, 1,0]. Utilizza le funzionalità di l'opzione l2Normalize in caso contrario. | Boolean |
False |
Preparazione dei dati
Incorporatore di testo funziona con i dati di testo (string
). L'attività gestisce
la pre-elaborazione dell'input di dati, inclusa la tokenizzazione e la pre-elaborazione dei tensori. Tutti
la pre-elaborazione viene gestita all'interno della funzione embed
. Non è necessario
per un'ulteriore pre-elaborazione del testo di input in anticipo.
const inputText = "The input text to be embedded.";
Esegui l'attività
L'incorporamento di testo utilizza la funzione embed
per attivare le inferenze. Per testo
incorporamento, ciò significa restituire i vettori di incorporamento 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
);
Gestire e visualizzare i risultati
L'incorporamento di testo restituisce un TextEmbedderResult
che contiene un elenco di
incorporamenti (a virgola mobile o quantizzati scalari) 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 incorporamenti utilizzando
Funzione TextEmbedder.cosineSimilarity
. Consulta il seguente codice per
esempio.
// Compute cosine similarity.
const similarity = TextEmbedder.cosineSimilarity(
embeddingResult.embeddings[0],
otherEmbeddingResult.embeddings[0]);
Il codice di esempio dell'incorporamento di testo mostra come visualizzare l'incorporamento i risultati restituiti dall'attività, controlla esempio di codice per maggiori dettagli.