Leitfaden zur Textklassifizierung für das Web

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 für Web- und JavaScript-Apps.

Sie können diese Aufgabe in Aktion sehen, indem Sie die Demo ansehen. 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 JavaScript ausführen. Mit diesem Code können Sie diese Aufgabe testen und mit der Entwicklung Ihrer eigenen Textklassifizierungs-App beginnen. Sie können Daten abrufen, ausführen und Bearbeiten Sie den Beispielcode für den Textklassifikator. ganz einfach in Ihrem Webbrowser.

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 das Web

JavaScript-Pakete

Der Textklassifikatorcode ist über die @mediapipe/tasks-text Paket. Sie können diese Bibliotheken über die Links in der Plattform Leitfaden für die Einrichtung

<ph type="x-smartling-placeholder">

Sie können die erforderlichen Pakete mit dem folgenden Code für das lokale Staging installieren mit dem folgenden Befehl:

npm install @mediapipe/tasks-text

Wenn die Bereitstellung auf einem Server erfolgen soll, können Sie eine Inhaltsübermittlung verwenden. eines Netzwerkdienstes (CDN) wie jsDelivr Code direkt auf Ihrer HTML-Seite einfügen:

<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@0.1/text-bundle.js"
    crossorigin="anonymous"></script>
</head>

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 Ihrem Projektverzeichnis:

<dev-project-root>/assets/bert_text_classifier.tflite

Geben Sie den Pfad des Modells mit dem baseOptions-Objekt modelAssetPath an wie unten gezeigt:

baseOptions: {
        modelAssetPath: `/assets/bert_text_classifier.tflite`
      }

Aufgabe erstellen

Verwenden Sie eine der TextClassifier.createFrom...()-Funktionen des Textklassifikators, um die Aufgabe für die Ausführung von Inferenzen vorbereiten. Sie können die createFromModelPath() verwenden mit einem relativen oder absoluten Pfad zur trainierten Modelldatei. Der Code Im folgenden Beispiel wird die Verwendung von TextClassifier.createFromOptions() veranschaulicht. . Weitere Informationen zu den verfügbaren Konfigurationsoptionen finden Sie unter Konfigurationsoptionen.

Der folgende Code zeigt, wie diese Aufgabe erstellt und konfiguriert wird:

async function createClassifier() {
  const textFiles = await FilesetResolver.forTextTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  textClassifier = await TextClassifier.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-tasks/text_classifier/bert_text_classifier.tflite`
      },
      maxResults: 5
    }
  );
}
createClassifier();

Konfigurationsoptionen

Diese Aufgabe hat die folgenden Konfigurationsoptionen für Web und JavaScript Anwendungen:

Option Beschreibung Wertebereich Standardwert
displayNamesLocale 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
maxResults 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
scoreThreshold 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
categoryAllowlist 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 categoryDenylist gegenseitig aus und verwendet führt beides zu einem Fehler. Alle Strings Nicht festgelegt
categoryDenylist 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 categoryAllowlist und die Verwendung beider führt zu einem Fehler. Alle Strings Nicht festgelegt

Daten vorbereiten

Der Textklassifikator funktioniert mit Textdaten (String). Die Aufgabe verarbeitet die Vorverarbeitung von Dateneingaben, 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.

const inputText = "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.

// Wait to run the function until inner text is set
const result: TextClassifierResult = await textClassifier.classify(
  inputText
);

Ergebnisse verarbeiten und anzeigen

Der Textklassifikator gibt ein TextClassifierResult aus, das die Liste enthält. möglicher Kategorien für den Eingabetext. Die Kategorien werden durch die Wenn Sie verschiedene Kategorien nutzen möchten, wählen Sie ein anderes Modell aus. 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"