Python 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 Metin Yerleştirme'nin Python ile 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 Python'da eksiksiz bir uygulamasını sunmaktadır. Bu kod, bu görevi test etmenize ve kendi metin gömme aracınızı derlemeye başlamanıza yardımcı olur. Metin Yerleştirme örnek kodunu Google Colab ile yalnızca web tarayıcınızı kullanarak görüntüleyebilir, çalıştırabilir ve düzenleyebilirsiniz. Bu örnekle ilgili kaynak kodunu GitHub'da görüntüleyebilirsiniz.

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, MediaPipe görevlerini kullanmak amacıyla geliştirme ortamınızı ayarlama hakkında genel bilgileri Python için kurulum kılavuzu bölümünde bulabilirsiniz.

Paketler

Metin Yerleştirme, mediapipe pip paketini kullanır. Bağımlılığı aşağıdaki komut dosyalarıyla yükleyebilirsiniz:

$ python -m pip install mediapipe

İçe Aktarımlar

Metin Yerleştirme görev işlevlerine erişmek için aşağıdaki sınıfları içe aktarın:

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text

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 yerel bir dizinde depolayın. Önerilen UniversalSentenceEncoder modelini kullanabilirsiniz.

model_path = '/absolute/path/to/universal_sentence_encoder.tflite'

Modelin yolunu, aşağıda gösterildiği gibi model_asset_path parametresinde belirtin:

base_options = BaseOptions(model_asset_path=model_path)

Görevi oluşturma

MediaPipe Metin Yerleştirme görevi, görevi ayarlamak için create_from_options işlevini kullanır. create_from_options işlevi, yerleştirici seçeneklerini ayarlamak için kullanılan yapılandırma seçeneklerinin değerlerini kabul eder. Görevi, create_from_model_path fabrika işlevini kullanarak da başlatabilirsiniz. create_from_model_path işlevi, eğitilen model dosyasına giden göreli veya mutlak yolu kabul eder. Yapılandırma seçenekleri hakkında daha fazla bilgi edinmek için Yapılandırma seçenekleri bölümüne bakın.

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

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)

Yapılandırma seçenekleri

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

Seçenek Adı Açıklama Değer Aralığı Varsayılan Değer
l2_normalize 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. Bu mümkün değilse l2_normalize seçeneğini kullanın. Boolean False

Verileri hazırlama

Metin Yerleştirme metin (str) 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.

input_text = "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.

# Perform text embedding on the provided input text.
embedding_result = text_embedder.embed(input_text)

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.cosine_similarity 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.
similarity = TextEmbedder.cosine_similarity(
  embedding_result.embeddings[0],
  other_embedding_result.embeddings[0])