Za pomocą zadania MediaPipe Text Classifier możesz klasyfikować tekst według zestawu zdefiniowanych kategorii, takich jak pozytywne lub negatywne nastawienie. Kategorie są definiowane podczas trenowania modelu. To zadanie działa na danych tekstowych z modelem uczenia maszynowego (ML) jako dane statyczne i wypisuje listę kategorii oraz ich prawdopodobieństwa.
Rozpocznij
Aby zacząć korzystać z tego zadania, postępuj zgodnie z jednym z tych przewodników dotyczących wdrażania na platformie, na której pracujesz:
- Android – przykład kodu
- Python – przykład kodu
- Web – przykład kodu – przewodnik
- iOS – przykład kodu
Te przewodniki dotyczące poszczególnych platform zawierają podstawowe informacje o wdrażaniu tej funkcji, w tym zalecany model i przykład kodu z zalecanymi opcjami konfiguracji.
Szczegóły działania
W tej sekcji opisano możliwości, dane wejściowe, dane wyjściowe i opcje konfiguracji tego zadania.
Funkcje
- Przetwarzanie tekstu wejściowego – obsługa tokenizacji poza grafem dla modeli bez tokenizacji w grafu.
- Wiele nagłówków klasyfikacji – każdy nagłówek może używać własnego zestawu kategorii.
- Etykieta mapy – lokalizacja – ustaw język używany do wyświetlania nazw.
- Progień wyniku – filtrowanie wyników na podstawie wyników prognozy.
- Najlepsze wyniki klasyfikacji – filtrowanie liczby wyników wykrywania
- Lista dozwolonych i zablokowanych etykiet – określ wykryte kategorie.
Dane wejściowe zadania | Dane wyjściowe |
---|---|
Klasyfikator tekstu obsługuje te typy danych wejściowych:
|
Klasyfikator tekstu zwraca listę kategorii zawierającą:
|
Opcje konfiguracji
To zadanie ma te opcje konfiguracji:
Nazwa opcji | Opis | Zakres wartości | Wartość domyślna |
---|---|---|---|
displayNamesLocale |
Określa język etykiet, których należy używać do wyświetlanych nazw podanych w metadanych modelu zadania (jeśli są dostępne). Wartość domyślna to en w przypadku języka angielskiego. Możesz dodawać zlokalizowane etykiety do metadanych modelu niestandardowego, korzystając z interfejsu TensorFlow Lite Metadata Writer API.
| Kod języka | en |
maxResults |
Określa opcjonalną maksymalną liczbę najlepszych wyników klasyfikacji do zwrócenia. Jeśli wartość jest mniejsza od 0, zwracane są wszystkie dostępne wyniki. | dowolne liczby dodatnie, | -1 |
scoreThreshold |
Ustawia próg wyniku prognozy, który zastępuje próg podany w metadanych modelu (jeśli takie istnieją). Wyniki poniżej tej wartości są odrzucane. | Dowolna liczba zmiennych typu float | Nie ustawiono |
categoryAllowlist |
Ustawia opcjonalną listę dozwolonych nazw kategorii. Jeśli wyniki klasyfikacji nie są puste, a nazwa kategorii nie znajduje się w tym zbiorze, zostaną odfiltrowane. Powtarzające się lub nieznane nazwy kategorii są ignorowane.
Ta opcja jest wzajemnie wykluczająca się z opcją categoryDenylist . Użycie obu spowoduje błąd. |
dowolne ciągi znaków; | Nie ustawiono |
categoryDenylist |
Ustawia opcjonalną listę nazw kategorii, które są niedozwolone. Jeśli nie jest pusty, wyniki klasyfikacji, których nazwa kategorii znajduje się w tym zbiorze, zostaną odfiltrowane. Powtarzające się lub nieznane nazwy kategorii są ignorowane. Ta opcja jest wzajemnie wykluczająca się z opcją categoryAllowlist , a użycie obu spowoduje błąd. |
dowolne ciągi znaków; | Nie ustawiono |
Modele
Klasyfikator tekstu może być używany z kilkoma modelami ML. Gdy zaczniesz tworzyć aplikację w ramach tego zadania, zacznij od domyślnego, zalecanego modelu na platformę docelową. Inne dostępne modele zwykle stanowią kompromis między wydajnością, dokładnością, rozdzielczością i wymaganiami dotyczącymi zasobów, a w niektórych przypadkach obejmują dodatkowe funkcje.
Wytrenowane wstępnie modele są przeznaczone do analizy nastawienia i przewidują, czy nastawienie tekstu wejściowego jest pozytywne czy negatywne. Modele zostały wytrenowane na zbiorze danych SST-2 (Stanford Sentiment Treebank), który zawiera recenzje filmów oznaczone jako pozytywne lub negatywne. Pamiętaj, że modele obsługują tylko język angielski. Zostały one wytrenowane na zbiorze danych z recenzjami filmów, więc jakość tekstu obejmującego inne tematy może być niższa.
Model klasyfikatora BERT (zalecany)
Ten model korzysta z architektury opartej na BERT (w szczególności z modelu MobileBERT) i jest zalecany ze względu na wysoką dokładność. Zawiera metadane, które umożliwiają zadaniu wykonanie tokenizacji BERT poza grafem.
Nazwa modelu | Kształt wejściowy | Typ kwantowania | Wersje |
---|---|---|---|
BERT-classifier | [1x128],[1x128],[1x128] | dynamic range | Najnowsze |
Średni model wektora dystrybucyjnego słowa
Ten model wykorzystuje średnią architekturę osadzania słów. Ten model ma mniejszy rozmiar i krótszy czas przetwarzania, ale w odróżnieniu od klasyfikatora BERT ma niższą dokładność prognozowania. Dostosowywanie tego modelu przez dodatkowe trenowanie jest też szybsze niż trenowanie klasyfikatora opartego na BERT. Ten model zawiera metadane, które umożliwiają zadaniu tokenizację za pomocą wyrażenia regularnego poza grafem.
Nazwa modelu | Kształt wejściowy | Typ kwantowania | Wersje |
---|---|---|---|
Średni wektor dystrybucyjny słowa | 1 x 256 | Brak (float32) | Najnowsze |
Porównania zadań
Poniżej znajdziesz benchmarki zadań dla całego przepływu danych opartego na wytrenowanych wstępnie modelach. Wynik opóźnienia to średnie opóźnienie na Pixelu 6 z wykorzystaniem procesora CPU lub GPU.
Nazwa modelu | Czas oczekiwania procesora | Opóźnienie GPU |
---|---|---|
Średni wektor dystrybucyjny słowa | 0,14 ms | - |
Klasyfikator BERT | 57,68 ms | - |
Modele niestandardowe
Jeśli chcesz poprawić lub zmienić możliwości dostępnych modeli, możesz użyć do tego celu niestandardowego modelu AI. Za pomocą Kreatora modeli możesz modyfikować istniejące modele lub tworzyć nowe za pomocą narzędzi takich jak TensorFlow. Modele niestandardowe używane z MediaPipe muszą być w formacie TensorFlow Lite i mieć określone metadata opisujące parametry operacyjne modelu. Przed utworzeniem własnych modeli warto użyć Model Makera, aby zmodyfikować udostępnione modele w ramach tego zadania.