Udhëzues për futjen e tekstit për ueb

Detyra MediaPipe Text Embedder ju lejon të krijoni një paraqitje numerike të të dhënave të tekstit për të kapur kuptimin e tij semantik. Këto udhëzime ju tregojnë se si të përdorni Text Embedder për aplikacionet në ueb dhe JavaScript.

Për më shumë informacion rreth aftësive, modeleve dhe opsioneve të konfigurimit të kësaj detyre, shihni Përmbledhjen .

Shembull kodi

Shembulli i kodit për Text Embedder ofron një zbatim të plotë të kësaj detyre në JavaScript për referencën tuaj. Ky kod ju ndihmon të testoni këtë detyrë dhe të filloni të ndërtoni aplikacionin tuaj të ngulitjes së tekstit. Mund të shikoni, ekzekutoni dhe modifikoni kodin e shembullit të Text Embedder duke përdorur vetëm shfletuesin tuaj të internetit.

Konfigurimi

Ky seksion përshkruan hapat kryesorë për konfigurimin e mjedisit tuaj të zhvillimit dhe projekteve të kodit në mënyrë specifike për të përdorur Text Embedder. Për informacion të përgjithshëm mbi konfigurimin e mjedisit tuaj të zhvillimit për përdorimin e detyrave të MediaPipe, duke përfshirë kërkesat e versionit të platformës, shihni udhëzuesin e konfigurimit për Ueb .

Paketat JavaScript

Kodi i Embedder-it të tekstit është i disponueshëm përmes paketës @mediapipe/tasks-text . Ju mund t'i gjeni dhe shkarkoni këto biblioteka nga lidhjet e dhëna në udhëzuesin e konfigurimit të platformës.

Ju mund të instaloni paketat e kërkuara me kodin e mëposhtëm për vendosjen lokale duke përdorur komandën e mëposhtme:

npm install @mediapipe/tasks-text

Nëse dëshironi të vendoseni në një server, mund të përdorni një shërbim të rrjetit të shpërndarjes së përmbajtjes (CDN), siç është jsDelivr , për të shtuar kodin direkt në faqen tuaj HTML, si më poshtë:

<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
    crossorigin="anonymous"></script>
</head>

Model

Detyra MediaPipe Text Embedder kërkon një model të trajnuar që është në përputhje me këtë detyrë. Për më shumë informacion mbi modelet e trajnuara të disponueshme për Text Embedder, shihni seksionin Modelet e përmbledhjes së detyrave.

Zgjidhni dhe shkarkoni një model dhe më pas ruajeni në direktorinë e projektit tuaj:

<dev-project-root>/app/shared/models

Krijo detyrën

Përdorni një nga funksionet Text Embedder createFrom...() për të përgatitur detyrën për ekzekutimin e konkluzioneve. Ju mund të përdorni funksionin createFromModelPath() me një shteg relative ose absolute drejt skedarit të modelit të trajnuar. Shembulli i kodit më poshtë tregon përdorimin e funksionit createFromOptions() . Për më shumë informacion mbi opsionet e disponueshme të konfigurimit, shihni Opsionet e konfigurimit .

Kodi i mëposhtëm tregon se si të ndërtohet dhe konfigurohet kjo detyrë:

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();

Opsionet e konfigurimit

Kjo detyrë ka opsionet e mëposhtme të konfigurimit për aplikacionet Web dhe JavaScript:

Emri i opsionit Përshkrimi Gama e vlerave Vlera e paracaktuar
l2Normalize Nëse do të normalizohet vektori i tipareve të kthyera me normën L2. Përdoreni këtë opsion vetëm nëse modeli nuk përmban tashmë një L2_NORMALIZATION TFLite Op. Në shumicën e rasteve, ky është tashmë rasti dhe normalizimi i L2 arrihet në këtë mënyrë përmes përfundimit të TFLite pa pasur nevojë për këtë opsion. Boolean False
quantize Nëse futja e kthyer duhet të kuantizohet në bajt nëpërmjet kuantizimit skalar. Përfshirjet supozohen në mënyrë implicite si njësi-normë dhe për këtë arsye çdo dimension është i garantuar të ketë një vlerë në [-1.0, 1.0]. Përdorni opsionin l2Normalize nëse nuk është kështu. Boolean False

Përgatitni të dhënat

Teksti Embedder punon me të dhëna teksti ( string ). Detyra trajton parapërpunimin e hyrjes së të dhënave, duke përfshirë parapërpunimin e tokenizimit dhe tensorit. Të gjitha parapërpunimit trajtohen brenda funksionit embed . Nuk ka nevojë për përpunim shtesë të tekstit të hyrjes paraprakisht.

const inputText = "The input text to be embedded.";

Drejtoni detyrën

Teksti Embedder përdor funksionin embed për të nxjerrë përfundime. Për futjen e tekstit, kjo nënkupton kthimin e vektorëve të ngulitjes për tekstin hyrës.

Kodi i mëposhtëm tregon se si kryhet përpunimi me modelin e detyrës.

// Wait to run the function until inner text is set
const embeddingResult = textEmbedder.embed(
  inputText
);

Trajtoni dhe shfaqni rezultatet

Text Embedder nxjerr një TextEmbedderResult që përmban një listë të integruara (qoftë me pikë lundruese ose të kuantizuara në shkallë) për tekstin hyrës.

Më poshtë tregon një shembull të të dhënave dalëse nga kjo detyrë:

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

Ju mund të krahasoni ngjashmërinë semantike të dy futjeve duke përdorur funksionin TextEmbedder.cosineSimilarity . Shih kodin e mëposhtëm për një shembull.

// Compute cosine similarity.
const similarity = TextEmbedder.cosineSimilarity(
  embeddingResult.embeddings[0],
  otherEmbeddingResult.embeddings[0]);

Shembulli i kodit "Text Embedder" tregon se si të shfaqen rezultatet e embedder-it të kthyera nga detyra, shikoni shembullin e kodit për detaje.