Zadanie MediaPipe Text Embedder pozwala utworzyć liczbową reprezentację danych tekstowych w celu zebrania ich semantycznego znaczenia. Te instrukcje pokazują, jak korzystać z narzędzia do umieszczania tekstu w Pythonie.
Więcej informacji o możliwościach, modelach i opcjach konfiguracji tego zadania znajdziesz w sekcji Omówienie.
Przykładowy kod
Przykładowy kod narzędzia do umieszczania tekstu zawiera pełną implementację tego zadania w Pythonie dla ułatwienia. Ten kod pomoże Ci przetestować to zadanie i rozpocząć tworzenie własnego narzędzia do umieszczania tekstu. Google Colab umożliwia wyświetlanie, uruchamianie i edytowanie przykładowego kodu kreatora tekstu w przeglądarce. Kod źródłowy tego przykładu znajdziesz na GitHub.
Konfiguracja
W tej sekcji znajdziesz opis kluczowych kroków, które należy wykonać, aby skonfigurować środowisko programistyczne i projekty kodu związane z umieszczaniem tekstu. Ogólne informacje o konfigurowaniu środowiska programistycznego na potrzeby zadań MediaPipe, w tym o wymaganiach dotyczących wersji platformy, znajdziesz w przewodniku konfiguracji języka Python.
Pakiety
Umieszczony tekst korzysta z pakietu mediapipe pip. Możesz zainstalować zależność, używając tego kodu:
$ python -m pip install mediapipe
Importowane dane
Aby uzyskać dostęp do funkcji zadania umieszczania tekstu, zaimportuj następujące 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 zadaniem. Więcej informacji o dostępnych wytrenowanych modelach do umieszczania tekstu znajdziesz w sekcji poświęconej modelom – omówieniem zadań.
Wybierz i pobierz model, a następnie zapisz go w katalogu lokalnym. Możesz użyć zalecanego modelu UniversalSentenceEncoder.
model_path = '/absolute/path/to/universal_sentence_encoder.tflite'
Określ ścieżkę modelu w parametrze model_asset_path
, jak poniżej:
base_options = BaseOptions(model_asset_path=model_path)
Tworzenie zadania
Zadanie do umieszczania tekstu MediaPipe konfiguruje to zadanie za pomocą funkcji create_from_options
. Funkcja create_from_options
akceptuje wartości opcji konfiguracji, aby ustawić opcje umieszczania. Możesz też zainicjować zadanie za pomocą funkcji fabrycznej create_from_model_path
. Funkcja create_from_model_path
akceptuje ścieżkę względną lub bezwzględną do wytrenowanego pliku modelu. Więcej informacji o opcjach konfiguracji znajdziesz 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 ma następujące 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 natywnej operacji L2_NORMALIZATION TFLite. W większości przypadków tak się dzieje i w ten sposób można uzyskać normalizację L2 za pomocą wnioskowania TFLite bez potrzeby użycia tej opcji. | Boolean |
False |
quantize |
Określa, czy zwrócone umieszczenie ma zostać poddane kwantyzacji do liczby bajtów za pomocą kwantyzacji skalarnej. Osadzone elementy są domyślnie uznawane za normę jednostki, dlatego każdy wymiar na pewno ma wartość [-1,0, 1,0]. Jeśli tak nie jest, użyj opcji l2_normalize. | Boolean |
False |
Przygotuj dane
Umieszczony tekst obsługuje dane tekstowe (str
). To zadanie obsługuje wstępne przetwarzanie danych wejściowych, w tym tokenizację i wstępne przetwarzanie tensorów.
Przetwarzanie wstępne jest realizowane w ramach funkcji embed
. Nie ma potrzeby wcześniejszego wstępnego przetwarzania tekstu wejściowego.
input_text = "The input text to be embedded."
Uruchamianie zadania
Umieszczony tekst używa funkcji embed
do aktywowania wnioskowania. W przypadku umieszczania tekstu oznacza to zwrócenie wektorów reprezentacji dla tekstu wejściowego.
Poniższy kod pokazuje, 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
Narzędzie do umieszczania tekstu generuje obiekt TextEmbedderResult
zawierający listę elementów osadzonych (zmiennoprzecinkowych lub skalarnych) dla tekstu wejściowego.
Poniżej znajdziesz przykład danych wyjściowych z 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 2 wektorów dystrybucyjnych za pomocą funkcji TextEmbedder.cosine_similarity
. Oto przykładowy kod.
# Compute cosine similarity.
similarity = TextEmbedder.cosine_similarity(
embedding_result.embeddings[0],
other_embedding_result.embeddings[0])