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])