MediaPipe Metin Yerleştirme görevi, kullanıcılara metin verilerinin sayısal bir temsilini anlamlarını yakalamaya çalışın. Bu talimatlarda, Android uygulamalarıyla Metin Yerleştirme.
Özellikler, modeller ve yapılandırma seçenekleri hakkında daha fazla bilgi Bu görev hakkında daha fazla bilgi için Genel Bakış'ı inceleyin.
Kod örneği
MediaPipe Tasks örnek kodu, bir Metin Yerleştirme aracının basit bir uygulamasıdır Android için uygulama. Bu örnek, iki grup arasındaki anlamsal benzerlikleri ve fiziksel bir Android cihaz ya da Android cihaz gerektirir emülatörü kullanın.
Uygulamayı kendi Android uygulamanız için başlangıç noktası olarak kullanabilir veya buna başvurabilirsiniz mevcut bir uygulamada değişiklik yaparken. Metin Yerleştirme örnek kodu şurada barındırılır: GitHub'a gidin.
Kodu indirme
Aşağıdaki talimatlarda, örneğin yerel bir kopyasını nasıl oluşturacağınız gösterilmektedir kodu oluşturmak için git komut satırı aracını kullanın.
Örnek kodu indirmek için:
- Aşağıdaki komutu kullanarak git deposunu klonlayın:
git clone https://github.com/google-ai-edge/mediapipe-samples
- İsteğe bağlı olarak, git örneğinizi seyrek ödeme yöntemini kullanacak şekilde yapılandırın. Böylece,
yalnızca Metin Yerleştirme örnek uygulamasına ilişkin dosyaları içerir:
cd mediapipe git sparse-checkout init --cone git sparse-checkout set examples/text_embedder/android
Örnek kodun yerel sürümünü oluşturduktan sonra projeyi içe aktarabilirsiniz. Android Studio'ya gidip uygulamayı çalıştırın. Talimatlar için bkz. Android.
Temel bileşenler
Aşağıdaki dosyalar, bu metin yerleştirme örneği için önemli kodu içeriyor uygulama:
- TextEmbedderHelper.kt: Metin yerleştiriciyi başlatır, modeli ve seçim yetkisini işler.
- MainActivity.kt: Uygulamayı uygular ve kullanıcı arayüzü bileşenlerini birleştirir.
Kurulum
Bu bölümde, geliştirme ortamınızı ve ayarlarınızı yönetmeyle ilgili Metin Yerleştirme Aracı'nı kullanmak için özel olarak projeleri kodlayın. Şu konularda genel bilgi için: dahil olmak üzere MediaPipe görevlerini kullanmak için geliştirme ortamınızı platform sürümü gereksinimleri hakkında daha fazla bilgi için Android.
Bağımlılıklar
Metin Yerleştirme aracı, com.google.mediapipe:tasks-text
kitaplıklarını kullanır. Bunu ekle
build.gradle
dosyasına bağımlılık.
Gerekli bağımlılıkları aşağıdaki kodu kullanarak içe aktarabilirsiniz:
dependencies {
implementation 'com.google.mediapipe:tasks-text:latest.release'
}
Model
MediaPipe Metin Yerleştirme görevi bu görevi görebilir. Metin Yerleştirme aracı için eğitilen modeller hakkında daha fazla bilgi için bkz. göreve genel bakış Modeller bölümü.
Modeli seçin ve indirin, ardından proje dizininizde depolayın:
<dev-project-root>/src/main/assets
ModelAssetPath
parametresi içinde modelin yolunu belirtin.
bu model aşağıdaki örnekteki setupTextEmbedder()
işlevinde tanımlanır:
TextEmbedderHelper.kt
dosya:
Yolu belirtmek için BaseOptions.Builder.setModelAssetPath()
işlevini kullanın
modeli tarafından kullanılır. Bu yöntem,
bölümüne ekleyin.
Görevi oluşturma
Görevi oluşturmak için createFrom...()
işlevlerinden birini kullanabilirsiniz. İlgili içeriği oluşturmak için kullanılan
createFromOptions()
işlevi, yerleştiriciyi ayarlamak için yapılandırma seçeneklerini kabul eder
seçenekleri vardır. Görevi, createFromFile()
fabrikasını kullanarak da başlatabilirsiniz
işlevini kullanın. createFromFile()
işlevi,
eğitilen model dosyasına göre düzenleyin. Yapılandırma seçenekleri hakkında daha fazla bilgi için bkz.
Yapılandırma seçenekleri.
Aşağıdaki kod, bu görevin nasıl oluşturulacağını ve yapılandırılacağını gösterir.
val baseOptions = baseOptionsBuilder.build()
val optionsBuilder =
TextEmbedderOptions.builder().setBaseOptions(baseOptions)
val options = optionsBuilder.build()
textEmbedder = TextEmbedder.createFromOptions(context, options)
Örnek kod uygulaması,
setupTextEmbedder()
fonksiyonu
TextEmbedderHelper.kt
dosyası olarak kaydedebilirsiniz.
Yapılandırma seçenekleri
Bu görev, Android uygulamaları için aşağıdaki yapılandırma seçeneklerini içerir:
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 model zaten yerel bir öğe içermiyorsa kullanın L2_NORMALIZATION TFLite Op. Çoğu durumda bu zaten böyledir Böylece L2 normalleştirmesi, herhangi bir gerek kalmadan TFLite çıkarımıyla gerçekleştirilir bu seçeneği belirleyin. | Boolean |
False |
quantize |
Döndürülen yerleştirmenin skaler nicelemedir. Yerleştirmelerin dolaylı olarak birim normları Bu nedenle, tüm boyutların [-1,0, 1,0] aralığında bir değere sahip olması garanti edilir. Tekliflerinizi otomatikleştirmek ve optimize etmek için l2_normalize seçeneğini kullanın. | Boolean |
False |
Verileri hazırlama
Metin Yerleştirme aracı, metin (String
) verileriyle çalışır. Görev, veri girişini işler
ön işleme dahil edilir. Tümü
ön işleme, embed()
işlevi içinde işlenir. Herhangi bir
giriş metninin ek ön işleme tabi tutulmasını sağlar.
val inputText = "The input text to be embedded."
Görevi çalıştırma
Metin Yerleştirme aracı, çıkarımları tetiklemek için embed
işlevini kullanır. Metin için
yerleştirme, giriş metni için yerleştirme vektörlerinin döndürülmesi anlamına gelir.
Aşağıdaki kod, işlemin görev modeliyle nasıl yürütüldüğünü gösterir.
textEmbedder?.let {
val firstEmbed =
it.embed(firstText).embeddingResult().embeddings().first()
val secondEmbed =
it.embed(secondText).embeddingResult().embeddings().first()
...
}
Örnek kodda embed
işlevi
TextEmbedderHelper.kt
dosyası olarak kaydedebilirsiniz.
Sonuçları işleme ve görüntüleme
Çıkarım çalıştırıldığında, Metin Yerleştirme görevi bir TextEmbedderResult
döndürüyor
yerleştirme listesi içeren nesne (kayan nokta veya
skaler olarak ölçülmüş) girin.
Aşağıda, bu görevdeki çıkış verilerinin bir örneği gösterilmektedir:
TextEmbedderResult:
Embedding #0 (sole embedding head):
float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
head_index: 0
İki yerleştirmenin anlamsal benzerliğini
TextEmbedder.cosineSimilarity
işlevi. Örnek için aşağıdaki koda bakın.
val similarity = TextEmbedder.cosineSimilarity(firstEmbed, secondEmbed)
Örnek kodda TextEmbedder.cosineSimilarity()
işlevi
TextEmbedderHelper.kt
dosyası olarak kaydedebilirsiniz.