Metin arayan kullanıcıları entegre edin

Metin arama, bir kitaplıkta anlam açısından benzer metinlerin aranmasına olanak tanır. İşe yarıyor terimini gösteren yüksek boyutlu bir vektöre yerleştirerek sorgunun anlamsal anlamı ve ardından, önceden tanımlanmış kullanan özel dizin ScaNN (En Yakın Komşular için Ölçeklenebilir).

Bunun aksine, Bert doğal dil sınıflandırıcı), Tanınabilecek öğelerin sayısını artırmak için yeniden eğitim gerekmez. sahip olacaksınız. Dizini yeniden oluşturarak yeni öğeler ekleyebilirsiniz. Bu ayrıca daha büyük (100 binden fazla öğe) topluluklarla çalışmayı mümkün kılar.

Özel metin arama aracınızı şuraya dağıtmak için Task Library TextSearcher API'yi kullanın: en iyi uygulamaları görelim.

TextSearcher API'nin temel özellikleri

  • Giriş olarak tek bir dize alır, yerleştirme işlemini gerçekleştirir ve en yakın komşu araması yapar.

  • Giriş metni işleme (grafik içi veya grafik dışı dahil) Kelime Parçası veya Cümle parçası giriş metninde tokenizasyonlar.

Ön koşullar

TextSearcher API kullanılmadan önce özel metin kitaplığı. Bu, Model Maker Searcher API ve uyarlayarak eğitim.

Bunun için gerekenler:

  • Evrensel Cümle Kodlayıcı gibi bir TFLite metin yerleştirme modeli. Örneğin, örneğin,
    • "the" bir yeniden eğitildi Colab, Google Analytics 4'te tarama yapabiliriz. Yalnızca 6 ms içinde bir sorgu metin dizesi.
    • "the" nicel Yukarıdakinden daha küçüktür, ancak her yerleştirme işlemi 38 ms sürer.
  • emin olmanız gerekir.

Bu adımdan sonra bağımsız bir TFLite arama modeli (ör. mobilenet_v3_searcher.tflite) içeren orijinal metin yerleştirme modelidir. ve TFLite Model Meta Verileri.

Java'da çıkarım çalıştırma

1. Adım: Gradle bağımlılığını ve diğer ayarları içe aktarın

.tflite arama modeli dosyasını Android'in öğe dizinine kopyalayın modülünü kullanabilirsiniz. Dosya adının ve TensorFlow Lite kitaplığını modülün build.gradle öğesine ekleyin dosya:

android {
    // Other settings

    // Specify tflite index file should not be compressed for the app apk
    aaptOptions {
        noCompress "tflite"
    }

}

dependencies {
    // Other dependencies

    // Import the Task Vision Library dependency
    implementation 'org.tensorflow:tensorflow-lite-task-vision:0.4.4'
    // Import the GPU delegate plugin Library for GPU inference
    implementation 'org.tensorflow:tensorflow-lite-gpu-delegate-plugin:0.4.4'
}

2. Adım: Modeli kullanma

// Initialization
TextSearcherOptions options =
    TextSearcherOptions.builder()
        .setBaseOptions(BaseOptions.builder().useGpu().build())
        .setSearcherOptions(
            SearcherOptions.builder().setL2Normalize(true).build())
        .build();
TextSearcher textSearcher =
    textSearcher.createFromFileAndOptions(context, modelFile, options);

// Run inference
List<NearestNeighbor> results = textSearcher.search(text);

Bkz. kaynak kodu ve javadoc görüntülemek için TextSearcher simgesini tıklayın.

C++'ta çıkarım çalıştır

// Initialization
TextSearcherOptions options;
options.mutable_base_options()->mutable_model_file()->set_file_name(model_path);
options.mutable_embedding_options()->set_l2_normalize(true);
std::unique_ptr<TextSearcher> text_searcher = TextSearcher::CreateFromOptions(options).value();

// Run inference with your input, `input_text`.
const SearchResult result = text_searcher->Search(input_text).value();

Bkz. kaynak kod daha fazla TextSearcher yapılandırma seçeneğine gidin.

Python'da çıkarım çalıştırma

1. Adım: TensorFlow Lite Destek Pypi paketini yükleyin.

TensorFlow Lite Destek Pypi paketini aşağıdakini kullanarak yükleyebilirsiniz komut:

pip install tflite-support

2. Adım: Modeli kullanma

from tflite_support.task import text

# Initialization
text_searcher = text.TextSearcher.create_from_file(model_path)

# Run inference
result = text_searcher.search(text)

Bkz. kaynak kod daha fazla TextSearcher yapılandırma seçeneğine gidin.

Örnek sonuçlar

Results:
 Rank#0:
  metadata: The sun was shining on that day.
  distance: 0.04618
 Rank#1:
  metadata: It was a sunny day.
  distance: 0.10856
 Rank#2:
  metadata: The weather was excellent.
  distance: 0.15223
 Rank#3:
  metadata: The cat is chasing after the mouse.
  distance: 0.34271
 Rank#4:
  metadata: He was very happy with his newly bought car.
  distance: 0.37703

Nasıl yapıldığını TextSearcher için KSA demo aracı kullanarak test edebilirsiniz.