Mit der Aufgabe „Textklassifikator“ von MediaPipe können Sie Text in eine Reihe definierter Kategorien, wie positive oder negative Stimmungen. Die Kategorien hängen vom Modell ab, und wie dieses Modell trainiert wurde. In dieser Anleitung erfahren Sie, wie Sie den Textklassifikator mit Python.
Sie können diese Aufgabe in Aktion sehen, indem Sie die Web-Demo: Weitere Informationen zu den Funktionen, Modellen und Die Konfigurationsoptionen dieser Aufgabe finden Sie in der Übersicht.
Codebeispiel
Der Beispielcode für den Textklassifikator bietet eine vollständige Implementierung dieses in Python. Dieser Code hilft Ihnen, diese Aufgabe zu testen und mit der Entwicklung einer eigenen App zur Textklassifizierung. Sie können Daten abrufen, ausführen und Textklassifikator bearbeiten Beispielcode ganz einfach in Ihrem Webbrowser.
Wenn Sie den Textklassifikator für Raspberry Pi implementieren, finden Sie weitere Informationen in der Beispiel für Raspberry Pi App.
Einrichtung
In diesem Abschnitt werden die wichtigsten Schritte zum Einrichten Ihrer Entwicklungsumgebung und mit dem Textklassifikator verwendet werden soll. Allgemeine Informationen zu Einrichten Ihrer Entwicklungsumgebung für die Verwendung von MediaPipe Tasks, einschließlich Plattformversionsanforderungen finden Sie in der Einrichtungsleitfaden für Python
<ph type="x-smartling-placeholder">Pakete
Der Textklassifikator verwendet das pip-Paket von mediapipe. Sie können Folgendes installieren: diese Abhängigkeiten durch Folgendes:
$ python -m pip install mediapipe
Importe
Importieren Sie die folgenden Klassen, um auf die Aufgabenfunktionen des Textklassifikators zuzugreifen:
from mediapipe.tasks import python
from mediapipe.tasks.python import text
Modell
Für die Aufgabe „Textklassifikator“ von MediaPipe ist ein trainiertes Modell erforderlich, das mit dieser für die Aufgabe. Weitere Informationen zu verfügbaren trainierten Modellen für den Textklassifikator finden Sie unter in der Aufgabenübersicht im Abschnitt „Modelle“.
Wählen Sie ein Modell aus, laden Sie es herunter und speichern Sie es dann in einem lokalen Verzeichnis:
model_path = '/absolute/path/to/text_classifier.tflite'
Geben Sie den Pfad des Modells mit dem BaseOptions
-Objekt model_asset_path
an
wie unten gezeigt:
base_options = BaseOptions(model_asset_path=model_path)
Aufgabe erstellen
In der Aufgabe „Textklassifikator“ von MediaPipe wird mit der Funktion create_from_options
die Methode
für die Aufgabe. Die Funktion create_from_options
akzeptiert Werte für die Konfiguration
um die Klassifikator-Optionen festzulegen. Sie können die Aufgabe auch mit
die Factory-Funktion create_from_model_path
. Das create_from_model_path
akzeptiert einen relativen oder absoluten Pfad zur Datei des trainierten Modells.
Weitere Informationen zu Konfigurationsoptionen finden Sie unter
Konfigurationsoptionen.
Der folgende Code zeigt, wie diese Aufgabe erstellt und konfiguriert wird.
base_options = python.BaseOptions(model_asset_path=model_path)
options = text.TextClassifierOptions(base_options=base_options)
with python.text.TextClassifier.create_from_options(options) as classifier:
classification_result = classifier.classify(text)
Konfigurationsoptionen
Diese Aufgabe bietet die folgenden Konfigurationsoptionen für Android-Apps:
Option | Beschreibung | Wertebereich | Standardwert |
---|---|---|---|
display_names_locale |
Legt die Sprache der Labels fest, die für Anzeigenamen in der
Metadaten des Aufgabenmodells, falls verfügbar. Standardwert ist en für
Englisch. Sie können den Metadaten eines benutzerdefinierten Modells lokalisierte Labels hinzufügen
mit der TensorFlow Lite Metadata Writer API
| Gebietsschemacode | de |
max_results |
Legt die optionale maximale Anzahl der am besten bewerteten Klassifizierungsergebnisse fest auf zurückgeben. Wenn < 0 setzen, werden alle verfügbaren Ergebnisse zurückgegeben. | Beliebige positive Zahlen | -1 |
score_threshold |
Legt den Schwellenwert für die Vorhersagepunktzahl fest, der den Wert in die Modellmetadaten (falls vorhanden). Ergebnisse unter diesem Wert werden abgelehnt. | Beliebiger Gleitkommawert | Nicht festgelegt |
category_allowlist |
Legt die optionale Liste der zulässigen Kategorienamen fest. Wenn das Feld nicht leer ist,
Klassifizierungsergebnisse, deren Kategoriename nicht in dieser Gruppe enthalten ist, werden
herausgefiltert. Doppelte oder unbekannte Kategorienamen werden ignoriert.
Diese Option schließt sich mit category_denylist gegenseitig aus und verwendet
führt beides zu einem Fehler. |
Alle Strings | Nicht festgelegt |
category_denylist |
Legt die optionale Liste der unzulässigen Kategorienamen fest. Wenn
nicht leer ist, werden Klassifizierungsergebnisse gefiltert, deren Kategoriename in diesem Satz enthalten ist.
aus. Doppelte oder unbekannte Kategorienamen werden ignoriert. Diese Option
ausschließlich mit category_allowlist und die Verwendung beider führt zu einem Fehler. |
Alle Strings | Nicht festgelegt |
Daten vorbereiten
Der Textklassifikator funktioniert mit Textdaten (str
). Die Aufgabe verarbeitet die Dateneingabe
Vorverarbeitung, einschließlich Tokenisierung und Tensor-Vorverarbeitung.
Die gesamte Vorverarbeitung erfolgt über die Funktion classify
. Es ist nicht nötig,
zur zusätzlichen Vorverarbeitung des Eingabetexts.
input_text = 'The input text to be classified.'
Aufgabe ausführen
Der Textklassifikator verwendet die Funktion classify
, um Inferenzen auszulösen. Für Text
Klassifizierung bedeutet, dass die möglichen Kategorien für den Eingabetext zurückgegeben werden.
Der folgende Code zeigt, wie die Verarbeitung mit der Aufgabe ausgeführt wird. modellieren.
with python.text.TextClassifier.create_from_options(options) as classifier:
classification_result = classifier.classify(text)
Ergebnisse verarbeiten und anzeigen
Der Textklassifikator gibt ein TextClassifierResult
-Objekt mit einer Liste aus
möglicher Kategorien für den Eingabetext. Die Kategorien werden durch die
Wählen Sie ein anderes Modell aus,
wenn Sie verschiedene Kategorien nutzen möchten.
oder ein vorhandenes neu trainieren.
Im Folgenden sehen Sie ein Beispiel für die Ausgabedaten dieser Aufgabe:
TextClassificationResult:
Classification #0 (single classification head):
ClassificationEntry #0:
Category #0:
category name: "positive"
score: 0.8904
index: 0
Category #1:
category name: "negative"
score: 0.1096
index: 1
Dieses Ergebnis erhalten Sie, indem Sie den BERT-Klassifikator für den Eingabetext ausgeführt haben:
"an imperfect but overall entertaining mystery"