La recherche textuelle permet de rechercher du texte sémantiquement similaire dans un corpus. Ça fonctionne en intégrant la requête de recherche dans un vecteur de grande dimension représentant de la requête, suivie d'une recherche par similarité un index personnalisé ScaNN (Voisins les plus proches évolutifs).
Contrairement à la classification de texte (par exemple, classificateur de langage naturel Bert), l'augmentation du nombre d'éléments pouvant être reconnus n'a pas besoin d'être réentraîné. l'ensemble du modèle. De nouveaux éléments peuvent être ajoutés simplement en reconstruisant l'index. Cette opération permet de travailler avec des corpus plus volumineux (plus de 100 000 éléments).
Déployer votre outil de recherche de texte personnalisé à l'aide de l'API TextSearcher
de la bibliothèque de tâches
vos applications mobiles.
Principales fonctionnalités de l'API TextSearcher
Prend une seule chaîne en entrée, extrait une représentation vectorielle continue et la recherche du voisin le plus proche dans l'index.
Traitement du texte d'entrée, y compris dans et hors graphique Texte verbal ou Extrait de phrase et tokenisations sur le texte d'entrée.
Prérequis
Avant d'utiliser l'API TextSearcher
, vous devez créer un index basé sur le
corpus de texte personnalisé dans lequel effectuer la recherche. Pour ce faire, vous pouvez utiliser
API Model Maker Searcher
en suivant et en adaptant
tutoriel.
Pour cela, vous aurez besoin des éléments suivants:
- un modèle d'intégration de texte TFLite, tel que Universal Sentence Encoder. Pour
exemple :
<ph type="x-smartling-placeholder">
- </ph>
- la un réentraînés dans ce Colab optimisé pour l'inférence sur l'appareil. Il ne faut que 6 ms pour interroger une sur le Pixel 6.
- la quantifiée 1, qui est plus petit que celui indiqué ci-dessus, mais qui prend 38 ms pour chaque représentation vectorielle continue.
- votre corpus de texte.
Après cette étape, vous devez disposer d'un modèle de recherche TFLite autonome (par exemple,
mobilenet_v3_searcher.tflite
), qui est le modèle d'intégration de texte d'origine avec
l'index associé au
Métadonnées du modèle TFLite.
Exécuter une inférence en Java
Étape 1: Importez la dépendance Gradle et d'autres paramètres
Copiez le fichier de modèle du moteur de recherche .tflite
dans le répertoire d'éléments d'Android.
module dans lequel le modèle sera exécuté. Spécifiez que le fichier ne doit pas
compressé, puis ajoutez la bibliothèque TensorFlow Lite au fichier build.gradle
du module.
:
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'
}
Étape 2: Utiliser le modèle
// 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);
Consultez le
Code source et Javadoc
pour découvrir d'autres options de configuration de TextSearcher
.
Exécuter une inférence en C++
// 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();
Consultez le
code source
pour afficher d'autres options de configuration de TextSearcher
.
Exécuter une inférence en Python
Étape 1: Installez le package Pypi de support TensorFlow Lite.
Vous pouvez installer le package Pypi de support TensorFlow Lite à l'aide de la commande suivante : :
pip install tflite-support
Étape 2: Utiliser le modèle
from tflite_support.task import text
# Initialization
text_searcher = text.TextSearcher.create_from_file(model_path)
# Run inference
result = text_searcher.search(text)
Consultez le
code source
pour afficher d'autres options de configuration de TextSearcher
.
Exemples de résultats
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
Essayez la méthode la plus simple Outil de démonstration de la CLI pour TextSearcher avec votre propre modèle et vos données de test.