Zadanie MediaPipe Text Classifier umożliwia klasyfikowanie tekstu w zdefiniowanych kategoriach, np. pozytywnego lub negatywnego nastawienia. Kategorie są określane przez model i o tym, jak został wytrenowany. Z tych instrukcji dowiesz się, jak korzystać czyli klasyfikatora tekstu do aplikacji internetowych i JavaScriptu.
Aby zobaczyć, jak działa to zadanie, wyświetl demo. Więcej informacji o możliwościach, modelach i modelach dotyczących opcji konfiguracji tego zadania, zobacz Omówienie.
Przykładowy kod
Przykładowy kod klasyfikatora tekstu zapewnia pełną implementację w JavaScripcie. Ten kod pomoże Ci przetestować to zadanie i zacznij tworzyć własną aplikację do klasyfikacji tekstu. Możesz wyświetlać, uruchamiać edytuj przykładowy kod klasyfikatora tekstu. tylko za pomocą przeglądarki.
Konfiguracja
W tej sekcji opisujemy najważniejsze czynności związane z konfigurowaniem środowiska programistycznego oraz w projektach kodu, w których używany jest Text Classifier. Ogólne informacje na temat: skonfigurować środowisko programistyczne do korzystania z zadań MediaPipe, w tym: wymagań wersji platformy, patrz Przewodnik po konfiguracji stron internetowych
Pakiety JavaScript
Kod klasyfikatora tekstu jest dostępny w
@mediapipe/tasks-text
pakietu SDK. Biblioteki te możesz znaleźć i pobrać za pomocą linków podanych w
platforma
Przewodnik po konfiguracji
Wymagane pakiety możesz zainstalować za pomocą tego kodu lokalnego środowiska przejściowego. za pomocą tego polecenia:
npm install @mediapipe/tasks-text
Jeśli chcesz wdrożyć aplikację na serwerze, możesz skorzystać z narzędzia Dostawy treści z usługi sieciowej (CDN), takiej jak jsDelivr, dodaj kod bezpośrednio do strony HTML w następujący sposób:
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@0.1/text-bundle.js"
crossorigin="anonymous"></script>
</head>
Model
Zadanie MediaPipe Text Classifier wymaga wytrenowanego modelu zgodnego z tym zadanie. Więcej informacji o dostępnych wytrenowanych modelach na potrzeby klasyfikacji tekstu znajdziesz w dokumentacji, która opisuje zapoznaj się z omówieniem zadania sekcją Modele.
Wybierz i pobierz model, a następnie zapisz go w katalogu projektu:
<dev-project-root>/assets/bert_text_classifier.tflite
Określ ścieżkę modelu za pomocą obiektu baseOptions
modelAssetPath
Jak poniżej:
baseOptions: {
modelAssetPath: `/assets/bert_text_classifier.tflite`
}
Tworzenie zadania
Użyj jednej z funkcji klasyfikatora tekstu TextClassifier.createFrom...()
do
przygotować zadanie do uruchamiania wniosków. Za pomocą usługi createFromModelPath()
ze ścieżką względną lub bezwzględną do pliku wytrenowanego modelu. Kod
przykład poniżej pokazuje korzystanie z TextClassifier.createFromOptions()
. Więcej informacji o dostępnych opcjach konfiguracji znajdziesz w artykule
Opcje konfiguracji:
Poniższy kod ilustruje, jak skompilować i skonfigurować to zadanie:
async function createClassifier() {
const textFiles = await FilesetResolver.forTextTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
textClassifier = await TextClassifier.createFromOptions(
textFiles,
{
baseOptions: {
modelAssetPath: `https://storage.googleapis.com/mediapipe-tasks/text_classifier/bert_text_classifier.tflite`
},
maxResults: 5
}
);
}
createClassifier();
Opcje konfiguracji
To zadanie zawiera poniższe opcje konfiguracji dla stron internetowych i JavaScriptu aplikacje:
Nazwa opcji | Opis | Zakres wartości | Wartość domyślna |
---|---|---|---|
displayNamesLocale |
Ustawia język etykiet, które mają być używane w przypadku nazw wyświetlanych w kolumnie
metadane modelu zadania, jeśli są dostępne. Wartość domyślna to en dla
Angielski. Do metadanych modelu niestandardowego możesz dodać zlokalizowane etykiety
za pomocą interfejsu TensorFlow Lite Metadata Writer API.
| Kod języka | en |
maxResults |
Ustawia opcjonalną maksymalną liczbę wyników klasyfikacji na . Jeśli < 0 – zostaną zwrócone wszystkie dostępne wyniki. | Dowolne liczby dodatnie | -1 |
scoreThreshold |
Ustawia próg wyniku prognozy, który zastępuje próg podany w polu metadane modelu (jeśli występują). Wyniki poniżej tej wartości zostały odrzucone. | Dowolna liczba zmiennoprzecinkowa | Nie ustawiono |
categoryAllowlist |
Ustawia opcjonalną listę dozwolonych nazw kategorii. Jeśli pole nie jest puste,
wyniki klasyfikacji, których nazwa kategorii nie znajduje się w tym zbiorze, zostaną
zostały odfiltrowane. Zduplikowane lub nieznane nazwy kategorii są ignorowane.
Ta opcja nie działa z usługą categoryDenylist i korzysta z funkcji
skutkuje to błędem. |
Dowolne ciągi | Nie ustawiono |
categoryDenylist |
Ustawia opcjonalną listę nazw kategorii, które nie są dozwolone. Jeśli
niepuste, wyniki klasyfikacji, których nazwa kategorii znajduje się w tym zbiorze, zostaną odfiltrowane
na zewnątrz. Zduplikowane lub nieznane nazwy kategorii są ignorowane. Ta opcja jest wzajemna
tylko w polu categoryAllowlist , co spowoduje błąd. |
Dowolne ciągi | Nie ustawiono |
Przygotuj dane
Klasyfikator tekstu działa z danymi tekstowymi (String
). Zadanie obsługuje
wstępne przetwarzanie danych wejściowych, w tym tokenizację i wstępne przetwarzanie Tensor.
Całe wstępne przetwarzanie odbywa się w ramach funkcji classify()
. Nie ma potrzeby
aby wstępnie przetworzyć tekst wejściowy.
const inputText = "The input text to be classified.";
Uruchamianie zadania
Klasyfikator tekstu używa funkcji classify()
do aktywowania wnioskowania. Tekst
klasyfikację, oznacza to zwrócenie możliwych kategorii dla tekstu wejściowego.
Ten kod pokazuje, jak wykonać przetwarzanie za pomocą zadania model atrybucji.
// Wait to run the function until inner text is set
const result: TextClassifierResult = await textClassifier.classify(
inputText
);
Obsługa i wyświetlanie wyników
Klasyfikator tekstu zwraca wynik TextClassifierResult
zawierający listę
możliwych kategorii tekstu wejściowego. Kategorie są określane przez tag
Jeśli potrzebujesz różnych kategorii, wybierz inny model,
lub ponowne wytrenowanie istniejącej.
Poniżej znajdziesz przykładowe dane wyjściowe tego zadania:
TextClassificationResult:
Classification #0 (single classification head):
ClassificationEntry #0:
Category #0:
category name: "positive"
score: 0.8904
index: 0
Category #1:
category name: "negative"
score: 0.1096
index: 1
Ten wynik można uzyskać, uruchamiając klasyfikator BERT na tekście wejściowym:
"an imperfect but overall entertaining mystery"