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 starten
Folgen Sie einer dieser Implementierungsanleitungen für die Plattform, an der Sie arbeiten, um diese Aufgabe zu erledigen:
- Android – Codebeispiel
- Python – Beispielcode
- Web – Codebeispiel – Anleitung
- iOS – Codebeispiel
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:
|
Der Textklassifikator gibt eine Liste von Kategorien mit folgenden Elementen aus:
|
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.
BERT-Klassifizierungsmodell (empfohlen)
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.