A tarefa MediaPipe Text Embedder permite criar uma representação numérica dos dados de texto para capturar seu significado semântico. Estas instruções mostram como usar o Incorporador de texto com Python.
Para mais informações sobre recursos, modelos e opções de configuração, desta tarefa, consulte a Visão geral.
Exemplo de código
O código de exemplo para o incorporador de texto fornece uma implementação completa em Python para sua referência. Esse código ajuda a testar a tarefa você começou a criar seu próprio embedder de texto. É possível exibir, executar e editar Exemplo de incorporador de texto código usando apenas o navegador da Web com o Google Colab. Você pode conferir o código-fonte neste exemplo GitHub.
Configuração
Esta seção descreve as principais etapas para configurar seu ambiente de desenvolvimento e projetos de código especificamente para usar o incorporador de texto. Para informações gerais a configuração do seu ambiente de desenvolvimento para usar tarefas do MediaPipe, incluindo requisitos de versão da plataforma, consulte o Guia de configuração do Python.
Pacotes
O incorporador de texto usa o pacote pip mediapipe. É possível instalar a dependência pelo seguinte:
$ python -m pip install mediapipe
Importações
Importe as seguintes classes para acessar as funções da tarefa do incorporador de texto:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text
Modelo
A tarefa MediaPipe Text Embedder requer um modelo treinado que seja compatível com esse tarefa. Para mais informações sobre modelos treinados disponíveis para o incorporador de texto, consulte na seção de visão geral da tarefa Modelos.
Selecione e faça o download de um modelo e armazene-o em um diretório local. Você pode usar o padrão UniversalSentenceEncoder um modelo de machine learning.
model_path = '/absolute/path/to/universal_sentence_encoder.tflite'
Especifique o caminho do modelo no parâmetro model_asset_path
, conforme mostrado abaixo:
base_options = BaseOptions(model_asset_path=model_path)
Criar a tarefa
A tarefa MediaPipe Text Embedder usa a função create_from_options
para configurar o
tarefa. A função create_from_options
aceita valores para configuração.
para definir as opções do incorporador. Também é possível inicializar a tarefa usando o
Função de fábrica create_from_model_path
. A função create_from_model_path
aceita um caminho relativo ou absoluto para o arquivo de modelo treinado. Para mais
informações sobre opções de configuração, consulte
Opções de configuração.
O código abaixo demonstra como criar e configurar essa tarefa.
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)
Opções de configuração
Esta tarefa tem as seguintes opções de configuração para aplicativos Python:
Nome da opção | Descrição | Intervalo de valor | Valor padrão |
---|---|---|---|
l2_normalize |
Define se o vetor de atributo retornado deve ser normalizado com a norma L2. Use essa opção somente se o modelo ainda não tiver um L2_NORMALIZATION Op. do TFLite. Na maioria dos casos, esse já é o caso e Assim, a normalização L2 é alcançada por meio da inferência do TFLite sem a necessidade para essa opção. | Boolean |
False |
quantize |
Se o embedding retornado deve ser quantizado em bytes por meio de com a quantização escalar. Os embeddings são implicitamente definidos como unidade-norma e portanto, qualquer dimensão terá um valor em [-1.0, 1.0]. Usar a opção l2_normalize, se este não for o caso. | Boolean |
False |
Preparar dados
O incorporador de texto funciona com dados de texto (str
). A tarefa lida com a entrada de dados
incluindo a tokenização e o pré-processamento de tensores.
Todo o pré-processamento é feito na função embed
. Não é necessário
para pré-processamento adicional do texto de entrada.
input_text = "The input text to be embedded."
Executar a tarefa
O incorporador de texto usa a função embed
para acionar inferências. Para texto
embedding, isso significa retornar os vetores de embedding para o texto de entrada.
O código a seguir demonstra como executar o processamento com o modelo de tarefa.
# Perform text embedding on the provided input text.
embedding_result = text_embedder.embed(input_text)
Gerenciar e exibir resultados
O incorporador de texto gera uma TextEmbedderResult
que contém uma lista de
embeddings (de ponto flutuante ou quantificado por escalar) para o texto de entrada.
Confira abaixo um exemplo dos dados de saída desta tarefa:
TextEmbedderResult:
Embedding #0 (sole embedding head):
float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
head_index: 0
É possível comparar a semelhança semântica de dois embeddings usando o
função TextEmbedder.cosine_similarity
. Confira o código a seguir
exemplo.
# Compute cosine similarity.
similarity = TextEmbedder.cosine_similarity(
embedding_result.embeddings[0],
other_embedding_result.embeddings[0])