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 con Python.
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 un'attività in Python come riferimento. Questo codice ti consente di testare l'attività e ottenere a creare un tuo incorporatore di testo. Puoi visualizzare, eseguire e modificare Esempio di incorporamento di testo codice usando solo il browser web con Google Colab. Puoi visualizzare il codice sorgente questo esempio GitHub.
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 la Guida alla configurazione per Python.
Pacchetti
L'incorporamento di testo utilizza il pacchetto pip mediapipe. Puoi installare la dipendenza con quanto segue:
$ python -m pip install mediapipe
Importazioni
Importa le classi seguenti per accedere alle funzioni attività Incorporamento di testo:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text
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 in una directory locale. Puoi utilizzare i valori consigliati UniversalSentenceEncoder un modello di machine learning.
model_path = '/absolute/path/to/universal_sentence_encoder.tflite'
Specifica il percorso del modello all'interno del parametro model_asset_path
, come mostrato di seguito:
base_options = BaseOptions(model_asset_path=model_path)
Crea l'attività
L'attività Incorporatore di testo MediaPipe utilizza la funzione create_from_options
per configurare
dell'attività. La funzione create_from_options
accetta valori per la configurazione
per impostare le opzioni
di incorporamento. Puoi anche inizializzare l'attività utilizzando il metodo
Funzione di fabbrica di create_from_model_path
. La funzione create_from_model_path
accetta un percorso relativo o assoluto al file del modello addestrato. Per ulteriori informazioni
informazioni sulle opzioni di configurazione, vedi
Opzioni di configurazione.
Il codice seguente illustra come creare e configurare questa attività.
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)
Opzioni di configurazione
Questa attività include le seguenti opzioni di configurazione per le applicazioni Python:
Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
---|---|---|---|
l2_normalize |
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 in caso contrario l'opzione l2_normalize. | Boolean |
False |
Preparazione dei dati
Incorporatore di testo funziona con i dati di testo (str
). L'attività gestisce l'input dei dati
pre-elaborazione, tra cui la tokenizzazione e la pre-elaborazione dei tensori.
Tutte le pre-elaborazioni vengono gestite all'interno della funzione embed
. Non è necessario
per un'ulteriore pre-elaborazione del testo di input in anticipo.
input_text = "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à.
# Perform text embedding on the provided input text.
embedding_result = text_embedder.embed(input_text)
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.cosine_similarity
. Consulta il seguente codice per
esempio.
# Compute cosine similarity.
similarity = TextEmbedder.cosine_similarity(
embedding_result.embeddings[0],
other_embedding_result.embeddings[0])