Przewodnik po zadaniach klasyfikacji tekstu

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.

Wypróbuj!

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:

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:
  • Ciąg znaków
Klasyfikator tekstu generuje listę kategorii zawierającą:
  • Indeks kategorii: indeks kategorii w danych wyjściowych modelu
  • Wynik: poziom ufności dla tej kategorii wyrażony jako prawdopodobieństwo z zakresu od 0 do 1 jako wartość zmiennoprzecinkowa.
  • Nazwa kategorii (opcjonalna): nazwa kategorii określona w metadanych modelu TensorFlow Lite, jeśli są dostępne.
  • Wyświetlana nazwa kategorii (opcjonalna): wyświetlana nazwa kategorii określona w metadanych modelu TensorFlow Lite w języku określonym za pomocą opcji regionalnych nazw wyświetlanych, jeśli są dostępne.

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.

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.