Przewodnik umieszczania tekstu w Pythonie

Zadanie MediaPipe Text Embedder umożliwia utworzenie liczbowej reprezentacji danych tekstowych w uchwycić jego znaczenie semantyczne. Z tych instrukcji dowiesz się, jak korzystać z Umieszczanie tekstu w Pythonie.

Więcej informacji o funkcjach, modelach i opcjach konfiguracji zapoznaj się z Przeglądem.

Przykładowy kod

Przykładowy kod komponentu Text Embedder zapewnia pełną implementację w Pythonie. Ten kod pomoże Ci przetestować to zadanie i uzyskać rozpoczął tworzenie własnego narzędzia do umieszczania tekstu. Możesz wyświetlać, uruchamiać i edytować Przykład umieszczania tekstu kod używając Google Colab tylko w przeglądarce. Możesz wyświetlić kod źródłowy dla ten przykład na GitHub

Konfiguracja

W tej sekcji opisujemy najważniejsze czynności związane z konfigurowaniem środowiska programistycznego oraz w projektach kodu, w których używa się Text Embedder. Ogólne informacje na temat: skonfigurować środowisko programistyczne do korzystania z zadań MediaPipe, w tym wymagań wersji platformy znajdziesz w przewodniku konfiguracji dla Pythona.

Pakiety

Narzędzie do dodawania tekstu używa pakietu pip mediapipe. Możesz zainstalować zależność z następującymi wartościami:

$ python -m pip install mediapipe

Importy

Aby uzyskać dostęp do funkcji zadań umieszczania tekstu, zaimportuj te klasy:

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text

Model

Zadanie MediaPipe Text Embedder wymaga wytrenowanego modelu zgodnego z tym zadanie. Więcej informacji na temat dostępnych wytrenowanych modeli dla funkcji Text Embedder znajdziesz w materiałach na temat zapoznaj się z omówieniem zadania sekcją Modele.

Wybierz i pobierz model, a następnie zapisz go w katalogu lokalnym. Za pomocą zalecane UniversalSentenceEncoder model atrybucji.

model_path = '/absolute/path/to/universal_sentence_encoder.tflite'

Określ ścieżkę modelu w parametrze model_asset_path, jak pokazano poniżej:

base_options = BaseOptions(model_asset_path=model_path)

Tworzenie zadania

Zadanie MediaPipe Text Embedder używa funkcji create_from_options do konfigurowania zadanie. Funkcja create_from_options akceptuje wartości konfiguracji aby ustawić opcje umieszczania. Możesz też zainicjować zadanie za pomocą Funkcja fabryczna create_from_model_path. Funkcja create_from_model_path akceptuje ścieżkę względną lub bezwzględną do pliku wytrenowanego modelu. Więcej informacji na temat opcji konfiguracji można znaleźć w artykule Opcje konfiguracji:

Poniższy kod pokazuje, jak skompilować i skonfigurować to zadanie.

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)

Opcje konfiguracji

To zadanie zawiera te opcje konfiguracji aplikacji w Pythonie:

Nazwa opcji Opis Zakres wartości Wartość domyślna
l2_normalize Określa, czy znormalizować zwrócony wektor cech z normą L2. Użyj tej opcji tylko wtedy, gdy model nie zawiera jeszcze reklamy natywnej L2_NORMALIZATION TFLite Op. W większości przypadków tak jest i tak, Normalizacja L2 jest więc osiągana przez wnioskowanie TFLite i nie ma potrzeby dla tej opcji. Boolean False
quantize Określa, czy zwrócony wektor dystrybucyjny powinien być skwantyzowany na bajty za pomocą kwantyzacji skalarnej. Odtwarzacze domyślnie przyjmuje się, że są zgodne z normą jednostkową, w związku z tym każdy wymiar będzie miał wartość w zakresie [-1,0; 1,0]. Używaj wybierz opcję l2_normalize. Boolean False

Przygotuj dane

Narzędzie do dodawania tekstu działa z danymi tekstowymi (str). Zadanie obsługuje wprowadzanie danych w tym wstępnego przetwarzania danych, w tym tokenizacji i tensorów.

Całe wstępne przetwarzanie odbywa się w ramach funkcji embed. Nie ma potrzeby aby wstępnie przetworzyć tekst wejściowy.

input_text = "The input text to be embedded."

Uruchamianie zadania

Narzędzie do dodawania tekstu używa funkcji embed do aktywowania wnioskowania. Tekst oznacza to zwracanie wektorów dystrybucyjnych dla tekstu wejściowego.

Poniższy kod ilustruje, jak wykonywać przetwarzanie za pomocą modelu zadań.

# Perform text embedding on the provided input text.
embedding_result = text_embedder.embed(input_text)

Obsługa i wyświetlanie wyników

Mechanizm umieszczania tekstu zwraca element TextEmbedderResult zawierający listę wektory dystrybucyjne (zmiennoprzecinkowe lub skalarne) na potrzeby tekstu wejściowego.

Poniżej znajdziesz przykładowe dane wyjściowe tego zadania:

TextEmbedderResult:
  Embedding #0 (sole embedding head):
    float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
    head_index: 0

Możesz porównać semantyczne podobieństwo dwóch wektorów dystrybucyjnych za pomocą funkcji TextEmbedder.cosine_similarity. Poniżej znajdziesz kod dla przykład.

# Compute cosine similarity.
similarity = TextEmbedder.cosine_similarity(
  embedding_result.embeddings[0],
  other_embedding_result.embeddings[0])