Задача MediaPipe Text Embedder позволяет создавать числовое представление текстовых данных для отражения их семантического значения. Эти инструкции покажут вам, как использовать Text Embedder с Python.
Дополнительные сведения о возможностях, моделях и параметрах конфигурации этой задачи см. в разделе Обзор .
Пример кода
В примере кода Text Embedder представлена полная реализация этой задачи на Python. Этот код поможет вам протестировать эту задачу и приступить к созданию собственного средства для внедрения текста. Вы можете просматривать, запускать и редактировать пример кода Text Embedder, используя только веб-браузер с Google Colab. Посмотреть исходный код этого примера можно на GitHub .
Настраивать
В этом разделе описаны ключевые шаги по настройке среды разработки и проектов кода специально для использования Text Embedder. Общие сведения о настройке среды разработки для использования задач MediaPipe, включая требования к версии платформы, см. в руководстве по настройке Python .
Пакеты
Text Embedder использует пакет pip mediapipe. Вы можете установить зависимость следующим образом:
$ python -m pip install mediapipe
Импорт
Импортируйте следующие классы для доступа к функциям задачи Text Embedder:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text
Модель
Для задачи MediaPipe Text Embedder требуется обученная модель, совместимая с этой задачей. Дополнительную информацию о доступных обученных моделях для Text Embedder см. в разделе «Модели » обзора задач.
Выберите и загрузите модель, а затем сохраните ее в локальном каталоге. Вы можете использовать рекомендованную модель UniversalSentenceEncoder .
model_path = '/absolute/path/to/universal_sentence_encoder.tflite'
Укажите путь к модели в параметре model_asset_path
, как показано ниже:
base_options = BaseOptions(model_asset_path=model_path)
Создать задачу
Задача MediaPipe Text Embedder использует функцию create_from_options
для настройки задачи. Функция create_from_options
принимает значения параметров конфигурации для установки параметров внедрения. Вы также можете инициализировать задачу с помощью фабричной функции create_from_model_path
. Функция create_from_model_path
принимает относительный или абсолютный путь к файлу обученной модели. Дополнительные сведения о параметрах конфигурации см. в разделе Параметры конфигурации .
Следующий код демонстрирует, как создать и настроить эту задачу.
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)
Варианты конфигурации
Эта задача имеет следующие параметры конфигурации для приложений Python:
Название опции | Описание | Диапазон значений | Значение по умолчанию |
---|---|---|---|
l2_normalize | Нормализовать ли возвращенный вектор признаков по норме L2. Используйте эту опцию, только если модель еще не содержит встроенный L2_NORMALIZATION TFLite Op. В большинстве случаев это уже так, и нормализация L2, таким образом, достигается посредством вывода TFLite без необходимости использования этой опции. | Boolean | False |
quantize | Следует ли квантовать возвращенное внедрение в байты посредством скалярного квантования. Неявно предполагается, что вложения имеют единичную норму, и поэтому любое измерение гарантированно имеет значение в [-1.0, 1.0]. Если это не так, используйте опцию l2_normalize. | Boolean | False |
Подготовьте данные
Text Embedder работает с текстовыми данными ( str
). Задача выполняет предварительную обработку входных данных, включая токенизацию и предварительную обработку тензоров.
Вся предварительная обработка выполняется внутри функции embed
. Предварительная дополнительная обработка входного текста не требуется.
input_text = "The input text to be embedded."
Запустить задачу
Text Embedder использует функцию embed
для запуска логических выводов. Для внедрения текста это означает возврат векторов внедрения для входного текста.
Следующий код демонстрирует, как выполнить обработку с помощью модели задачи.
# Perform text embedding on the provided input text.
embedding_result = text_embedder.embed(input_text)
Обработка и отображение результатов
Text Embedder выводит TextEmbedderResult
, который содержит список внедрений (с плавающей запятой или скалярно-квантованной) для входного текста.
Ниже показан пример выходных данных этой задачи:
TextEmbedderResult:
Embedding #0 (sole embedding head):
float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
head_index: 0
Вы можете сравнить семантическое сходство двух вложений, используя функцию TextEmbedder.cosine_similarity
. См. следующий код для примера.
# Compute cosine similarity.
similarity = TextEmbedder.cosine_similarity(
embedding_result.embeddings[0],
other_embedding_result.embeddings[0])