La tarea MediaPipe Text Embedder te permite crear una representación numérica de los datos de texto para captan su significado semántico. Estas instrucciones te muestran cómo usar la Incorporador de texto con Python.
Para obtener más información sobre las capacidades, los modelos y las opciones de configuración para completar esta tarea, consulta la Descripción general.
Ejemplo de código
El ejemplo de código para el Incorporador de texto proporciona una implementación completa de este en Python para tu referencia. Este código te ayuda a probar esta tarea y obtener empezaste a crear tu propia incorporación de texto. Puedes ver, ejecutar y editar la Ejemplo de incorporador de texto código usando solo un navegador web con Google Colab. Puedes ver el código fuente de este ejemplo sobre GitHub:
Configuración
En esta sección, se describen los pasos clave para configurar tu entorno de desarrollo y proyectos de código específicamente para usar Text Embedder. Para obtener información general configurar tu entorno de desarrollo para usar tareas de MediaPipe, como requisitos de la versión de la plataforma, consulta la Guía de configuración de Python
Paquetes
La incorporación de texto usa el paquete mediapipe pip. Puedes instalar la dependencia con lo siguiente:
$ python -m pip install mediapipe
Importaciones
Importa las siguientes clases para acceder a las funciones de la tarea de Text Embedder:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text
Modelo
La tarea MediaPipe Text Embedder requiere un modelo entrenado que sea compatible con tarea. Para obtener más información sobre los modelos entrenados disponibles para Text Embedder, consulta la sección Modelos de la descripción general de la tarea.
Selecciona y descarga un modelo y, luego, guárdalo en un directorio local. Puedes usar las recomendaciones UniversalSentenceEncoder un modelo de responsabilidad compartida.
model_path = '/absolute/path/to/universal_sentence_encoder.tflite'
Especifica la ruta del modelo dentro del parámetro model_asset_path
, como se muestra a continuación:
base_options = BaseOptions(model_asset_path=model_path)
Crea la tarea
La tarea MediaPipe Text Embedder usa la función create_from_options
para configurar la
tarea. La función create_from_options
acepta valores para la configuración
para definir las opciones de incorporación. También puedes inicializar la tarea con el comando
Función de fábrica create_from_model_path
. La función create_from_model_path
acepte una ruta de acceso absoluta o relativa al archivo de modelo entrenado. Para ver más
sobre opciones de configuración, consulta
Opciones de configuración.
En el siguiente código, se muestra cómo compilar y configurar esta tarea.
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)
Opciones de configuración
Esta tarea tiene las siguientes opciones de configuración para las aplicaciones de Python:
Nombre de la opción | Descripción | Rango de valores | Valor predeterminado |
---|---|---|---|
l2_normalize |
Indica si se debe normalizar el vector de atributos mostrado con la norma L2. Usa esta opción solo si el modelo no contiene un código nativo L2_NORMALIZATION TFLite Op. En la mayoría de los casos, esto ya es así y Así, la normalización de L2 se logra mediante la inferencia de TFLite sin necesidad para esta opción. | Boolean |
False |
quantize |
Si la incorporación devuelta se debe cuantificar a bytes mediante la cuantización escalar. Se supone implícitamente que las incorporaciones son norma de unidad y por lo que se garantiza que cualquier dimensión tendrá un valor en [-1.0, 1.0]. Usa la opción l2_normalize si este no es el caso. | Boolean |
False |
Preparar los datos
El Incorporador de texto funciona con datos de texto (str
). La tarea maneja la entrada de datos
el procesamiento previo, incluida la asignación de token y el procesamiento previo del tensor.
Todo el procesamiento previo se controla dentro de la función embed
. No es necesario
para un procesamiento previo adicional del texto de entrada.
input_text = "The input text to be embedded."
Ejecuta la tarea
La incorporación de texto usa la función embed
para activar inferencias. Para texto
significa mostrar los vectores de incorporación para el texto de entrada.
En el siguiente código, se muestra cómo ejecutar el procesamiento con el modelo de tareas.
# Perform text embedding on the provided input text.
embedding_result = text_embedder.embed(input_text)
Cómo controlar y mostrar resultados
El Incorporador de texto genera un TextEmbedderResult
que contiene una lista de
de entrada (ya sea de punto flotante o escalar cuantizadas) para el texto de entrada.
A continuación, se muestra un ejemplo de los datos de salida de esta tarea:
TextEmbedderResult:
Embedding #0 (sole embedding head):
float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
head_index: 0
Puedes comparar la similitud semántica de dos incorporaciones con el
función TextEmbedder.cosine_similarity
. Consulta el siguiente código para ver un
ejemplo.
# Compute cosine similarity.
similarity = TextEmbedder.cosine_similarity(
embedding_result.embeddings[0],
other_embedding_result.embeddings[0])