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,
- 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.