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 na potrzeby aplikacji internetowych i aplikacji JavaScript.
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 JavaScripcie. Ten kod pomoże Ci przetestować to zadanie i zacznij tworzyć własną aplikację do umieszczania tekstu. Możesz wyświetlać, uruchamiać i edytuj Przykładowy kod narzędzia do umieszczania tekstu tylko za pomocą przeglądarki.
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, patrz Przewodnik po konfiguracji stron internetowych
Pakiety JavaScript
Kod umieszczania tekstu jest dostępny w
@mediapipe/tasks-text
pakietu SDK. Biblioteki te możesz znaleźć i pobrać za pomocą linków podanych w
platforma
Przewodnik po konfiguracji
Wymagane pakiety możesz zainstalować za pomocą tego kodu lokalnego środowiska przejściowego. za pomocą tego polecenia:
npm install @mediapipe/tasks-text
Jeśli chcesz wdrożyć aplikację na serwerze, możesz skorzystać z narzędzia Dostawy treści z usługi sieciowej (CDN), takiej jak jsDelivr, w dodaj kod bezpośrednio do strony HTML w następujący sposób:
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
crossorigin="anonymous"></script>
</head>
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 projektu:
<dev-project-root>/app/shared/models
Tworzenie zadania
Użyj jednej z funkcji createFrom...()
do umieszczania tekstu, aby
przygotować zadanie do uruchamiania wniosków. Za pomocą usługi createFromModelPath()
ze ścieżką względną lub bezwzględną do pliku wytrenowanego modelu. Kod
przykład poniżej pokazuje korzystanie z createFromOptions()
. Więcej informacji o dostępnych opcjach konfiguracji znajdziesz w artykule
Opcje konfiguracji:
Poniższy kod ilustruje, jak skompilować i skonfigurować to zadanie:
async function createEmbedder() {
const textFiles = await FilesetResolver.forTextTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
textEmbedder = await TextEmbedder.createFromOptions(
textFiles,
{
baseOptions: {
modelAssetPath: `https://storage.googleapis.com/mediapipe-tasks/text_embedder/universal_sentence_encoder.tflite`
},
quantize: true
}
);
}
createEmbedder();
Opcje konfiguracji
To zadanie zawiera poniższe opcje konfiguracji dla stron internetowych i JavaScriptu aplikacje:
Nazwa opcji | Opis | Zakres wartości | Wartość domyślna |
---|---|---|---|
l2Normalize |
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 l2Normalize, jeśli tak nie jest. | Boolean |
False |
Przygotuj dane
Narzędzie do dodawania tekstu działa z danymi tekstowymi (string
). Zadanie obsługuje
wstępne przetwarzanie danych wejściowych, w tym tokenizację i wstępne przetwarzanie Tensor. Wszystkie
wstępne przetwarzanie jest obsługiwane w ramach funkcji embed
. Nie ma potrzeby
aby wstępnie przetworzyć tekst wejściowy.
const inputText = "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ń.
// Wait to run the function until inner text is set
const embeddingResult = textEmbedder.embed(
inputText
);
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.cosineSimilarity
. Poniżej znajdziesz kod dla
przykład.
// Compute cosine similarity.
const similarity = TextEmbedder.cosineSimilarity(
embeddingResult.embeddings[0],
otherEmbeddingResult.embeddings[0]);
Przykładowy kod komponentu Text Embedder pokazuje, jak wyświetlić ten element wyników zwróconych przez zadanie, patrz przykładowy kod .