Mit der Textklassifikatoraufgabe „MediaPipe“ können Sie Text in eine Reihe definierter Kategorien einteilen, z. B. nach positiver oder negativer Stimmung. Die Kategorien werden während des Trainings des Modells definiert. Diese Aufgabe verarbeitet Textdaten mit einem Modell für maschinelles Lernen (ML) als statische Daten und gibt eine Liste von Kategorien und ihren Wahrscheinlichkeitswerten aus.
Jetzt starten
Beginnen Sie mit dieser Aufgabe. Folgen Sie dazu einer der folgenden Implementierungsleitfäden für die Plattform, an der Sie gerade arbeiten:
- Android – Codebeispiel – Leitfaden
- Python – Codebeispiel – Anleitung
- Web – Codebeispiel – Leitfaden
- iOS – Codebeispiel – Leitfaden
Diese plattformspezifischen Leitfäden führen Sie durch eine grundlegende Implementierung dieser Aufgabe, 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
- Eingabetextverarbeitung: Unterstützung der Out-of-Graph-Tokenisierung für Modelle ohne In-Graph-Tokenisierung.
- Mehrere Klassifizierungskopfzeilen: Jeder Kopf kann einen eigenen Kategoriesatz verwenden.
- Gebietsschema für Labelkarte: die Sprache für Anzeigenamen festlegen
- Score-Schwellenwert: Ergebnisse basierend auf den Vorhersagewerten filtern
- Top-K-Klassifizierungsergebnisse – Anzahl der Erkennungsergebnisse filtern
- Zulassungs- und Sperrliste für Labels: Geben Sie die erkannten Kategorien an.
Aufgabeneingaben | Aufgabenausgaben |
---|---|
Der Textklassifikator unterstützt die folgenden Eingabedatentypen:
|
Der Textklassifikator gibt eine Liste von Kategorien aus, die Folgendes enthalten:
|
Konfigurationsoptionen
Diese Aufgabe hat die folgenden Konfigurationsoptionen:
Option | Beschreibung | Wertebereich | Standardwert |
---|---|---|---|
displayNamesLocale |
Legt die Sprache von Labels fest, die für Anzeigenamen bereitgestellt werden, die in den Metadaten des Aufgabenmodells angegeben sind, sofern verfügbar. Der Standardwert für Englisch ist en . Mit der TensorFlow Lite Metadata Writer API können Sie den Metadaten eines benutzerdefinierten Modells lokalisierte Labels hinzufügen.
| Sprachcode | en |
maxResults |
Legt die optionale maximale Anzahl der Klassifizierungsergebnisse mit den besten Bewertungen fest, die zurückgegeben werden sollen. Wenn < 0, werden alle verfügbaren Ergebnisse zurückgegeben. | Beliebige positive Zahlen | -1 |
scoreThreshold |
Legt den Schwellenwert für den Vorhersagewert fest, der den in den Modellmetadaten angegebenen Grenzwert überschreibt (falls vorhanden). Ergebnisse unter diesem Wert werden abgelehnt. | Beliebige Gleitkommazahl | Nicht festgelegt |
categoryAllowlist |
Legt die optionale Liste der zulässigen Kategorienamen fest. Wenn das Feld nicht leer ist, werden Klassifizierungsergebnisse herausgefiltert, deren Kategoriename nicht in diesem Set enthalten ist. Doppelte oder unbekannte Kategorienamen werden ignoriert.
Diese Option und categoryDenylist schließen sich gegenseitig aus und die Verwendung beider Werte führt zu einem Fehler. |
Beliebige Strings | Nicht festgelegt |
categoryDenylist |
Legt die optionale Liste der nicht zulässigen Kategorienamen fest. Wenn das Feld nicht leer ist, werden Klassifizierungsergebnisse herausgefiltert, deren Kategoriename in diesem Satz enthalten ist. Doppelte oder unbekannte Kategorienamen werden ignoriert. Diese Option und categoryAllowlist schließen sich gegenseitig aus und die Verwendung beider Optionen führt zu einem Fehler. |
Beliebige Strings | Nicht festgelegt |
Modelle
Der Textklassifikator kann mit mehr als einem ML-Modell verwendet werden. Beginnen Sie mit dem standardmäßigen, empfohlenen Modell für Ihre Zielplattform, wenn Sie mit dieser Aufgabe beginnen. Die anderen verfügbaren Modelle machen in der Regel Kompromisse zwischen Leistung, Genauigkeit, Auflösung und Ressourcenanforderungen und beinhalten in einigen Fällen zusätzliche Funktionen.
Die vortrainierten Modelle werden für die Sentimentanalyse trainiert und sagen voraus, ob die Stimmung des Eingabetexts positiv oder negativ ist. Die Modelle wurden mit dem Dataset SST-2 (Stanford Sentiment Treebank) trainiert, das aus Filmrezensionen besteht, die entweder positiv oder negativ gekennzeichnet sind. Die Modelle unterstützen nur Englisch. Da sie mit einem Datensatz von Filmrezensionen trainiert wurden, ist die Qualität von Texten zu anderen Themen möglicherweise verringert.
BERT-Klassifizierungsmodell (empfohlen)
Dieses Modell verwendet eine BERT-basierte Architektur (insbesondere das MobileBERT-Modell) und wird aufgrund der hohen Genauigkeit empfohlen. Es enthält Metadaten, mit denen die Aufgabe eine BERT-Tokenisierung außerhalb des Diagramms ausführen kann.
Modellname | Form eingeben | Quantisierungstyp | Versionen |
---|---|---|---|
BERT-Klassifikator | [1x128],[1x128],[1x128] | dynamischer Bereich | Neueste |
Durchschnittliches Worteinbettungsmodell
Dieses Modell verwendet eine durchschnittliche Architektur zum Einbetten von Wörtern. Dieses Modell bietet eine kleinere Modellgröße und eine geringere Latenz, allerdings auf Kosten einer geringeren Vorhersagegenauigkeit im Vergleich zum BERT-Klassifikator. Das Anpassen dieses Modells durch zusätzliches Training ist außerdem schneller als das Training des BERT-basierten Klassifikators. Dieses Modell enthält Metadaten, mit denen die Aufgabe eine Regex-Tokenisierung außerhalb des Diagramms durchführen kann.
Modellname | Form eingeben | Quantisierungstyp | Versionen |
---|---|---|---|
Durchschnittliche Worteinbettung | 1 x 256 | Keine (float32) | Neueste |
Aufgaben-Benchmarks
Im Folgenden sind die Aufgaben-Benchmarks für die gesamte Pipeline basierend auf den oben vortrainierten Modellen aufgeführt. 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. Sie können Model Maker verwenden, um die vorhandenen Modelle zu ändern, oder ein Modell mit Tools wie TensorFlow erstellen. Benutzerdefinierte Modelle, die mit MediaPipe verwendet werden, müssen im TensorFlow Lite-Format vorliegen und bestimmte Metadaten enthalten, die die Betriebsparameter des Modells beschreiben. Sie sollten die Verwendung von Model Maker in Betracht ziehen, um die bereitgestellten Modelle für diese Aufgabe zu ändern, bevor Sie eigene erstellen.