Web için metin yerleştirme kılavuzu

MediaPipe Metin Yerleştirme görevi, anlamsal anlamını yakalamak için metin verilerinin sayısal bir gösterimini oluşturmanıza olanak tanır. Bu talimatlar web ve JavaScript uygulamaları için Metin Yerleştirme'nin nasıl kullanılacağını gösterir.

Bu görevin özellikleri, modelleri ve yapılandırma seçenekleri hakkında daha fazla bilgi için Genel Bakış'a bakın.

Kod örneği

Metin Yerleştirme örnek kodu, size referans olması açısından bu görevin JavaScript'te eksiksiz bir uygulamasını sunmaktadır. Bu kod, bu görevi test etmenize ve kendi metin yerleştirme uygulamanızı geliştirmeye başlamanıza yardımcı olur. Metin Yerleştirme örnek kodunu yalnızca web tarayıcınızı kullanarak görüntüleyebilir, çalıştırabilir ve düzenleyebilirsiniz.

Kurulum

Bu bölümde geliştirme ortamınızı kurmanın temel adımları açıklanmaktadır. Projelerinizi özel olarak Metin Yerleştirme'yi kullanacak şekilde kodlayın. Platform sürümü gereksinimleri de dahil olmak üzere, geliştirme ortamınızı MediaPipe görevlerini kullanmak amacıyla ayarlama hakkında genel bilgiler için Web için kurulum kılavuzuna bakın.

JavaScript paketleri

Metin Yerleştirme kodu, @mediapipe/tasks-text paketi aracılığıyla kullanılabilir. Bu kitaplıkları, platform Kurulum kılavuzunda sağlanan bağlantılardan bulup indirebilirsiniz.

Aşağıdaki komutu kullanarak gerekli paketleri yerel hazırlık için aşağıdaki kodla yükleyebilirsiniz:

npm install @mediapipe/tasks-text

Bir sunucuya dağıtım yapmak istiyorsanız kodu doğrudan HTML sayfanıza eklemek için jsDelivr gibi bir içerik yayınlama ağı (CDN) hizmetini kullanabilirsiniz. Bunun için aşağıdaki adımları izleyin:

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

Model

MediaPipe Metin Yerleştirme görevi, bu görevle uyumlu, eğitilmiş bir model gerektirir. Metin Yerleştirme için eğitilmiş modeller hakkında daha fazla bilgi almak isterseniz göreve genel bakış Modeller bölümüne bakın.

Bir model seçip indirin ve ardından proje dizininizde depolayın:

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

Görevi oluşturma

Çıkarım çalıştırma görevi hazırlamak için Metin Yerleştirme createFrom...() işlevlerinden birini kullanın. createFromModelPath() işlevini, eğitilen model dosyasına giden göreli veya mutlak bir yolla kullanabilirsiniz. Aşağıdaki kod örneğinde, createFromOptions() işlevinin kullanımı gösterilmiştir. Kullanılabilir yapılandırma seçenekleri hakkında daha fazla bilgi edinmek için Yapılandırma seçenekleri başlıklı makaleye bakın.

Aşağıdaki kod bu görevin nasıl oluşturulacağını ve yapılandırılacağını gösterir:

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

Yapılandırma seçenekleri

Bu görev, Web ve JavaScript uygulamaları için aşağıdaki yapılandırma seçeneklerine sahiptir:

Seçenek Adı Açıklama Değer Aralığı Varsayılan Değer
l2Normalize Döndürülen özellik vektörünün L2 normuyla normalleştirilip normalleştirilmeyeceği. Bu seçeneği yalnızca modelde zaten yerel bir L2_NORMALIZATION TFLite Op bulunmuyorsa kullanın. Çoğu durumda bu zaten mevcuttur ve L2 normalleştirmesi, bu seçeneğe gerek olmadan TFLite çıkarımıyla yapılır. Boolean False
quantize Döndürülen yerleştirmenin skalar niceleme kullanılarak baytlara dönüştürülüp ölçülmeyeceği. Yerleştirmelerin açıkça birim norm olduğu varsayılır. Bu nedenle her boyut için [-1,0, 1,0] değerinde bir değer olması garanti edilir. Böyle bir durum söz konusu değilse l2Normalize seçeneğini kullanın. Boolean False

Verileri hazırlama

Metin Yerleştirme metin (string) verileriyle çalışır. Görev, tokenizasyon ve tensör ön işlemesi dahil olmak üzere veri girişi ön işlemesini yürütür. Tüm ön işlemeler embed işlevi içinde gerçekleştirilir. Giriş metninin önceden işlenmesine gerek yoktur.

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

Görevi çalıştırma

Metin Yerleştirici, çıkarımları tetiklemek için embed işlevini kullanır. Metin yerleştirme için bu, giriş metni için gömme vektörlerinin döndürülmesi anlamına gelir.

Aşağıdaki kod, işlemenin görev modeliyle nasıl yürütüldüğünü gösterir.

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

Sonuçları işleme ve görüntüleme

Metin Yerleştirici, giriş metni için yerleştirme listesi (kayan nokta veya skaler ölçülmüş) içeren bir TextEmbedderResult çıktısı verir.

Aşağıda, bu görevden alınan çıkış verilerinin bir örneği gösterilmektedir:

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

TextEmbedder.cosineSimilarity işlevini kullanarak iki yerleştirmenin semantik benzerliğini karşılaştırabilirsiniz. Örnek için aşağıdaki koda bakın.

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

Metin Yerleştirme örnek kodu, görevden döndürülen yerleştirme aracı sonuçlarının nasıl görüntüleneceğini gösterir. Ayrıntılar için kod örneğine bakın.