Przewodnik umieszczania tekstu w internecie

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 .