Odtwarzacze tekstu umożliwiają wstawianie tekstu do wysokowymiarowego wektora cech reprezentujące jego znaczenie semantyczne, które można następnie porównać z funkcją wektora innych tekstów, aby ocenić ich podobieństwo semantyczne.
W przeciwieństwie do wyszukiwanie tekstowe, narzędzie do umieszczania tekstu pozwala na bieżąco obliczać podobieństwo tekstu zamiast przeszukiwać wstępnie zdefiniowany indeks utworzony na podstawie korpusu.
Użyj interfejsu Task Library API TextEmbedder
, aby wdrożyć w niej własny komponent do umieszczania tekstu
aplikacji mobilnych.
Najważniejsze funkcje interfejsu TextEmbedder API
Przetwarzanie tekstu wejściowego, w tym na wykresie i poza nim WordPress lub Zdanie tokenizacji w tekście wejściowym.
Wbudowaną funkcję użytkową do obliczania podobieństwo cosinusowe między wektory cech.
Obsługiwane modele umieszczania tekstu
Te modele gwarantują zgodność z modelem TextEmbedder
API.
Modele niestandardowe, które spełniają wymaganiami dotyczącymi zgodności z modelem.
Uruchom wnioskowanie w C++
// Initialization.
TextEmbedderOptions options:
options.mutable_base_options()->mutable_model_file()->set_file_name(model_path);
std::unique_ptr<TextEmbedder> text_embedder = TextEmbedder::CreateFromOptions(options).value();
// Run inference with your two inputs, `input_text1` and `input_text2`.
const EmbeddingResult result_1 = text_embedder->Embed(input_text1);
const EmbeddingResult result_2 = text_embedder->Embed(input_text2);
// Compute cosine similarity.
double similarity = TextEmbedder::CosineSimilarity(
result_1.embeddings[0].feature_vector()
result_2.embeddings[0].feature_vector());
Zobacz
kod źródłowy
, aby uzyskać więcej opcji konfigurowania TextEmbedder
.
Uruchom wnioskowanie w Pythonie
Krok 1. Zainstaluj pakiet Pypi Support TensorFlow Lite.
Możesz zainstalować pakiet Pypi Support Pypi na TensorFlow Lite za pomocą: polecenie:
pip install tflite-support
Krok 2. Korzystanie z modelu
from tflite_support.task import text
# Initialization.
text_embedder = text.TextEmbedder.create_from_file(model_path)
# Run inference on two texts.
result_1 = text_embedder.embed(text_1)
result_2 = text_embedder.embed(text_2)
# Compute cosine similarity.
feature_vector_1 = result_1.embeddings[0].feature_vector
feature_vector_2 = result_2.embeddings[0].feature_vector
similarity = text_embedder.cosine_similarity(
result_1.embeddings[0].feature_vector, result_2.embeddings[0].feature_vector)
Zobacz
kod źródłowy
, aby uzyskać więcej opcji konfigurowania TextEmbedder
.
Przykładowe wyniki
Podobieństwo cosinusowe między znormalizowanymi wektorami cech zwraca wynik od -1 oraz 1. Im większe, tym lepsze, czyli podobieństwo cosinusowe rzędu 1 oznacza, że 2 wektory są identyczna.
Cosine similarity: 0.954312
Wypróbuj prostą Narzędzie interfejsu wiersza poleceń dla TextEmbedder z własnym modelem i danymi testowymi.
Wymagania dotyczące zgodności z modelem
Interfejs API TextEmbedder
wymaga modelu TFLite z obowiązkowym ustawieniem
Metadane modelu TFLite.
Obsługiwane są 3 główne typy modeli:
Modele oparte na BERT (zobacz kod źródłowy :
Dokładnie 3 tensory wejściowe (kTfLiteString)
- Identyfikuje tensor o nazwie metadanych „ids”,
- Tensor maski o nazwie metadanych „mask”.
- Tensor identyfikatorów segmentów o nazwie metadanych „segment_ids”
Dokładnie jeden tensor wyjściowy (kTfLiteUInt8/kTfLiteFloat32)
- z komponentami
N
odpowiadającymi wymiaromN
funkcji zwrócony wektor cech dla tej warstwy wyjściowej. - Dostępne są 2 lub 4 wymiary, np.
[1 x N]
lub[1 x 1 x 1 x N]
.
- z komponentami
Wartość wejściowa_process_units dla tokenizatora tekstu Wordpiece/zdania
Modele oparte na koderze Universal Sentence Encoder (zobacz kod źródłowy :
Dokładnie 3 tensory wejściowe (kTfLiteString)
- Tensor tekstu zapytania o nazwie metadanych „inp_text”.
- Tensor kontekstu odpowiedzi z nazwą metadanych „res_context”.
- Tensor tekstu odpowiedzi o nazwie metadanych „res_text”.
Dokładnie 2 tensory wyjściowe (kTfLiteUInt8/kTfLiteFloat32)
- Tensor kodowania zapytania o nazwie metadanych „query_encoding”.
- Tensor kodowania odpowiedzi o nazwie metadanych „response_encoding”.
- Oba z komponentami
N
odpowiadającymi wymiaromN
funkcji zwrócony wektor cech dla tej warstwy wyjściowej. - Oba z 2 lub 4 wymiarami, np.
[1 x N]
lub[1 x 1 x 1 x N]
.
Dowolny model umieszczania tekstu z:
- Tensor tekstu wejściowego (kTfLiteString)
Co najmniej 1 tensor wektora dystrybucyjnego wyjściowego (kTfLiteUInt8/kTfLiteFloat32)
- z komponentami
N
odpowiadającymi wymiaromN
funkcji zwrócony wektor cech dla tej warstwy wyjściowej. - Dostępne są 2 lub 4 wymiary, np.
[1 x N]
lub[1 x 1 x 1 x N]
.
- z komponentami