Aufgabenleitfaden für die Textklassifizierung

Beispiel für eine Benutzeroberfläche, in der eine positive Filmrezension als Eingabe und fünf Sterne und ein Daumen nach oben als Ausgabe angezeigt werden

Mit der MediaPipe-Textklassifizierungsaufgabe können Sie Text in eine Reihe von definierten Kategorien klassifizieren, z. B. in positive oder negative Stimmung. Die Kategorien werden während des Trainings des Modells definiert. Bei dieser Aufgabe werden Textdaten mit einem Modell für maschinelles Lernen (ML) als statische Daten verarbeitet und eine Liste von Kategorien und ihre Wahrscheinlichkeitsbewertungen ausgegeben.

Jetzt testen!

Jetzt starten

Folgen Sie einer dieser Implementierungsanleitungen für die Plattform, an der Sie arbeiten, um diese Aufgabe zu erledigen:

In diesen plattformspezifischen Anleitungen wird eine grundlegende Implementierung dieser Aufgabe beschrieben, einschließlich eines empfohlenen Modells und eines Codebeispiels mit empfohlenen Konfigurationsoptionen.

Taskdetails

In diesem Abschnitt werden die Funktionen, Eingaben, Ausgaben und Konfigurationsoptionen dieser Aufgabe beschrieben.

Funktionen

  • Textverarbeitung: Unterstützung der Tokenisierung außerhalb des Graphen für Modelle ohne Tokenisierung innerhalb des Graphen
  • Mehrere Klassifizierungs-Überschriften: Für jede Überschrift kann ein eigener Kategoriensatz verwendet werden.
  • Labelzuordnungs-Locale: Legen Sie die Sprache fest, die für Anzeigenamen verwendet wird.
  • Grenzwert für die Punktzahl: Ergebnisse nach Vorhersagepunktzahl filtern
  • Top-K-Klassifizierungsergebnisse: Hier können Sie die Anzahl der Erkennungsergebnisse filtern.
  • Zulassungs- und Sperrliste für Labels: Hier können Sie die erkannten Kategorien angeben.
Aufgabeneingaben Aufgabenausgaben
Der Textklassifikator akzeptiert den folgenden Eingabedatentyp:
  • String
Der Textklassifikator gibt eine Liste von Kategorien mit folgenden Elementen aus:
  • Kategorieindex: Der Index der Kategorie in den Modellausgaben
  • Wert: Der Konfidenzwert für diese Kategorie, ausgedrückt als Wahrscheinlichkeit zwischen 0 und 1 als Gleitkommawert.
  • Kategoriename (optional): Der Name der Kategorie, wie in den TensorFlow Lite-Modellmetadaten angegeben, sofern verfügbar.
  • Anzeigename der Kategorie (optional): Ein Anzeigename für die Kategorie, wie in den TensorFlow Lite-Modellmetadaten angegeben, in der Sprache, die über die Optionen für die Spracheneinstellungen für Anzeigenamen angegeben ist (falls verfügbar).

Konfigurationsoptionen

Für diese Aufgabe gibt es die folgenden Konfigurationsoptionen:

Option Beschreibung Wertebereich Standardwert
displayNamesLocale Legt die Sprache der Labels fest, die für die Anzeigenamen verwendet werden, die in den Metadaten des Modells der Aufgabe angegeben sind, sofern verfügbar. Der Standardwert ist en für Englisch. Mit der TensorFlow Lite Metadata Writer API können Sie den Metadaten eines benutzerdefinierten Modells lokalisierte Labels hinzufügen. Gebietscode de
maxResults Legt die optionale maximale Anzahl der Klassifizierungsergebnisse mit der höchsten Punktzahl fest, die zurückgegeben werden sollen. Wenn der Wert kleiner als 0 ist, werden alle verfügbaren Ergebnisse zurückgegeben. Beliebige positive Zahlen -1
scoreThreshold Legt den Schwellenwert für die Vorhersagebewertung fest, der den in den Modellmetadaten angegebenen Wert (falls vorhanden) überschreibt. Ergebnisse unter diesem Wert werden abgelehnt. Beliebiger Float Nicht festgelegt
categoryAllowlist Legt die optionale Liste der zulässigen Kategorienamen fest. Wenn die Liste nicht leer ist, werden Klassifizierungsergebnisse herausgefiltert, deren Kategoriename nicht in dieser Liste enthalten ist. Doppelte oder unbekannte Kategorienamen werden ignoriert. Diese Option schließt categoryDenylist aus. Die Verwendung beider Optionen führt zu einem Fehler. Beliebige Strings Nicht festgelegt
categoryDenylist Hiermit wird eine optionale Liste der nicht zulässigen Kategorienamen festgelegt. Wenn der Wert nicht leer ist, werden Klassifizierungsergebnisse herausgefiltert, deren Kategoriename in diesem Set enthalten ist. Doppelte oder unbekannte Kategorienamen werden ignoriert. Diese Option schließt categoryAllowlist aus. Die Verwendung beider Optionen führt zu einem Fehler. Beliebige Strings Nicht festgelegt

Modelle

Der Textklassifikator kann mit mehreren ML-Modellen verwendet werden. Beginnen Sie mit dem standardmäßigen, empfohlenen Modell für Ihre Zielplattform, wenn Sie mit dieser Aufgabe beginnen. Bei den anderen verfügbaren Modellen müssen in der Regel Kompromisse zwischen Leistung, Genauigkeit, Auflösung und Ressourcenanforderungen eingegangen werden. In einigen Fällen sind zusätzliche Funktionen enthalten.

Die vortrainierten Modelle sind für die Sentimentanalyse trainiert und prognostizieren, ob das Sentiment des Eingabetexts positiv oder negativ ist. Die Modelle wurden mit dem SST-2-Dataset (Stanford Sentiment Treebank) trainiert, das aus Filmrezensionen besteht, die als positiv oder negativ gekennzeichnet sind. Die Modelle unterstützen nur Englisch. Da sie mit einem Dataset mit Filmrezensionen trainiert wurden, ist die Qualität bei Texten zu anderen Themen möglicherweise geringer.

Dieses Modell verwendet eine BERT-basierte Architektur (insbesondere das MobileBERT-Modell) und wird aufgrund seiner hohen Genauigkeit empfohlen. Sie enthält Metadaten, mit denen die Aufgabe eine BERT-Tokenisierung außerhalb des Graphen ausführen kann.

Modellname Eingabeform Quantisierungstyp Versionen
BERT-Klassifikator [1x128],[1x128],[1x128] Dynamikumfang Neueste

Durchschnittliches Modell für Worteinbettungen

Dieses Modell verwendet eine Architektur mit durchschnittlichen Worteinbettungen. Dieses Modell bietet eine kleinere Modellgröße und eine geringere Latenz, aber eine geringere Vorhersagegenauigkeit als der BERT-Klassifikator. Die Anpassung dieses Modells durch zusätzliches Training ist außerdem schneller als das Training des BERT-basierten Klassifikators. Dieses Modell enthält Metadaten, die es der Aufgabe ermöglichen, eine reguläre Ausdruckstokenisierung außerhalb des Graphen durchzuführen.

Modellname Eingabeform Quantisierungstyp Versionen
Durchschnittliche Worteinbettung 1 × 256 Keine (float32) Neueste

Benchmarks für Aufgaben

Hier sind die Aufgaben-Benchmarks für die gesamte Pipeline basierend auf den oben genannten vorab trainierten Modellen. Das Latenzergebnis ist die durchschnittliche Latenz auf Pixel 6 mit CPU / GPU.

Modellname CPU-Latenz GPU-Latenz
Durchschnittliche Worteinbettung 0,14 ms -
BERT-Klassifikator 57,68 ms -

Benutzerdefinierte Modelle

Sie können für diese Aufgabe ein benutzerdefiniertes ML-Modell verwenden, wenn Sie die Funktionen der bereitgestellten Modelle verbessern oder ändern möchten. Mit Model Maker können Sie vorhandene Modelle ändern oder mit Tools wie TensorFlow ein Modell erstellen. Benutzerdefinierte Modelle, die mit MediaPipe verwendet werden, müssen im TensorFlow Lite-Format vorliegen und bestimmte metadata enthalten, die die Betriebsparameter des Modells beschreiben. Sie sollten die bereitgestellten Modelle für diese Aufgabe mit dem Model Maker anpassen, bevor Sie ein eigenes Modell erstellen.