Zadanie MediaPipe Text Classifier pozwala sklasyfikować tekst według zdefiniowanych kategorii, takich jak pozytywne lub negatywne wrażenia. Kategorie są określane podczas trenowania modelu. To zadanie operuje na danych tekstowych za pomocą modelu systemów uczących się w postaci danych statycznych i generuje listę kategorii oraz ich wyniki prawdopodobieństwa.
Rozpocznij
Zacznij od wykonania tego zadania, postępując zgodnie z instrukcjami podanymi w jednym z przewodników po implementacji w przypadku platformy, na której pracujesz:
- Android – przykładowy kod – Przewodnik
- Python – przykładowy kod – Przewodnik
- Sieć – przykładowy kod – Przewodnik
- iOS – przykładowy kod – Przewodnik
Z tych przewodników dla poszczególnych platform dowiesz się, jak wykonać podstawowe zadania opisane w tym zadaniu. Znajdziesz w nich zalecany model i przykładowy kod z zalecanymi opcjami konfiguracji.
Szczegóły działania
W tej sekcji opisujemy możliwości, dane wejściowe, dane wyjściowe i opcje konfiguracji tego zadania.
Funkcje
- Przetwarzanie tekstu wejściowego – obsługa tokenizacji poza wykresem dla modeli bez tokenizacji na wykresie
- Wiele główków klasyfikacji – każdy nagłówek może używać własnego zbioru kategorii
- Język mapy etykiety – ustaw język wyświetlanych nazw.
- Próg wyniku – filtrowanie wyników na podstawie wyników prognozy
- Najlepsze wyniki klasyfikacji – filtrowanie liczby wyników wykrywania
- Lista dozwolonych i odrzuconych etykiet – określa wykryte kategorie.
Dane wejściowe zadań | Wyniki działania |
---|---|
Klasyfikator tekstu akceptuje ten typ danych wejściowych:
|
Klasyfikator tekstu generuje listę kategorii zawierającą:
|
Opcje konfiguracji
To zadanie ma te opcje konfiguracji:
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 metadanych modelu zadania (jeśli są dostępne). Wartość domyślna w języku angielskim to en . Za pomocą TensorFlow Lite MetadataWriter API możesz dodawać zlokalizowane etykiety do metadanych modelu niestandardowego.
| Kod języka | en |
maxResults |
Określa opcjonalną maksymalną liczbę zwracanych wyników klasyfikacji o najwyższych wynikach. Jeśli wartość jest mniejsza niż 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 metadanych modelu (jeśli istnieją). Wyniki poniżej tej wartości zostały odrzucone. | Dowolna liczba zmiennoprzecinkowa | Nie ustawiono |
categoryAllowlist |
Ustawia opcjonalną listę dozwolonych nazw kategorii. Jeśli nie będzie pusty, wyniki klasyfikacji, których nazwy kategorii nie ma w tym zbiorze, zostaną odfiltrowane. Zduplikowane i nieznane nazwy kategorii są ignorowane.
Ta opcja wzajemnie się wyklucza, categoryDenylist i ich użycie kończy się błędem. |
Dowolne ciągi | Nie ustawiono |
categoryDenylist |
Ustawia opcjonalną listę niedozwolonych nazw kategorii. Jeśli pole nie jest puste, wyniki klasyfikacji, których nazwa kategorii znajduje się w tym zbiorze, zostaną odfiltrowane. Zduplikowane i nieznane nazwy kategorii są ignorowane. Ta opcja wzajemnie się wyklucza z categoryAllowlist , a korzystanie z obu daje błąd. |
Dowolne ciągi | Nie ustawiono |
Modele
Klasyfikatora tekstu można używać z więcej niż jednym modelem ML. Gdy zaczniesz tworzyć aplikacje z tym zadaniem, zacznij od domyślnego, zalecanego modelu dla platformy docelowej. Inne dostępne modele zwykle kompensują wymagania dotyczące wydajności, dokładności, rozdzielczości i zasobów, a w niektórych przypadkach zawierają dodatkowe funkcje.
Wytrenowane modele są trenowane pod kątem analizy nastawienia i prognozują, czy odczucia tekstu wejściowego są pozytywne czy negatywne. Modele zostały wytrenowane na zbiorze danych SST-2 (Stanford SentimentTreebank), który składa się z recenzji filmów oznaczonych jako pozytywne lub negatywne. Pamiętaj, że modele obsługują tylko język angielski. Ponieważ zostały one wytrenowane na zbiorze z recenzjami filmów, jakość tekstów poruszających inne tematy może być niższa.
Model klasyfikacji BERT (zalecany)
Ten model wykorzystuje architekturę opartą na architekturze BERT (a w szczególności model MobileBERT) i jest zalecany ze względu na wysoką dokładność. Zawiera metadane, które umożliwiają zadaniu wykonanie tokenizacji BERT wykraczającej poza schemat.
Nazwa modelu | Wprowadź kształt | Typ kwantyzacji | Wersje |
---|---|---|---|
Klasyfikator BERT | [1x128],[1x128],[1x128] | zakres dynamiczny | Najnowsze |
Model umieszczania słów (średnio)
W tym modelu zastosowano typową architekturę umieszczania słów. Ten model zapewnia mniejszy rozmiar modelu i mniejsze opóźnienie, ale kosztem mniejszej dokładności prognozy w porównaniu z klasyfikatorem BERT. Dostosowanie tego modelu przez dodatkowe trenowanie jest również szybsze niż trenowanie klasyfikatora opartego na BERT. Ten model zawiera metadane, które umożliwiają zadaniom przeprowadzanie tokenizacji wyrażeń regularnych wykraczających poza wykres.
Nazwa modelu | Wprowadź kształt | Typ kwantyzacji | Wersje |
---|---|---|---|
Średnie umieszczanie słów | 1 × 256 | Brak (float32) | Najnowsze |
Testy porównawcze działań
Oto porównania zadań dla całego potoku na podstawie powyższych wytrenowanych modeli. Wynik opóźnienia to średnie opóźnienie na Pixelu 6 korzystającym z procesora / GPU.
Nazwa modelu | Czas oczekiwania procesora | Opóźnienie GPU |
---|---|---|
Średnie umieszczanie słów | 0,14 ms | - |
klasyfikator BERT | 57,68 ms | - |
Modele niestandardowe
W tym zadaniu możesz użyć niestandardowego modelu ML, jeśli chcesz poprawić lub zmienić możliwości oferowanych modeli. W Kreatorze modeli możesz modyfikować istniejące modele lub tworzyć modele przy użyciu takich narzędzi jak TensorFlow. Modele niestandardowe używane z MediaPipe muszą być w formacie TensorFlow Lite i muszą zawierać określone metadane opisujące parametry operacyjne modelu. Przed utworzeniem własnych modeli rozważ zmodyfikowanie udostępnionych modeli w tym zadaniu za pomocą Kreatora modeli.