1. Übersicht

Willkommen beim Codelab zur Textklassifizierung mit TensorFlow Lite und Firebase. In diesem Codelab erfahren Sie, wie Sie mit TensorFlow Lite und Firebase ein Textklassifizierungsmodell trainieren und in Ihrer App bereitstellen. Dieses Codelab basiert auf diesem TensorFlow Lite-Beispiel.
Bei der Textklassifizierung werden Textinhalten Tags oder Kategorien zugewiesen. Sie ist eine der grundlegenden Aufgaben im Bereich Natural Language Processing (NLP) und wird in vielen Anwendungen eingesetzt, z. B. bei der Sentimentanalyse, der Themenkennzeichnung, der Spamerkennung und der Absichtserkennung.
Die Sentimentanalyse ist die Interpretation und Klassifizierung von Emotionen (positiv, negativ und neutral) in Textdaten mithilfe von Textanalysetechniken. Mit der Sentimentanalyse können Unternehmen die Kundenstimmung in Bezug auf Produkte, Marken oder Dienstleistungen in Online-Gesprächen und ‑Feedback ermitteln.
In dieser Anleitung wird gezeigt, wie Sie ein Modell für maschinelles Lernen für die Sentimentanalyse erstellen, insbesondere zum Klassifizieren von Text als positiv oder negativ. Dies ist ein Beispiel für die binäre oder Zwei-Klassen-Klassifizierung, eine wichtige und weit verbreitete Art von Machine-Learning-Problem.
Lerninhalte
- TF Lite-Sentimentanalysemodelle mit TF Lite Model Maker trainieren
- TF Lite-Modelle in Firebase ML bereitstellen und über Ihre App darauf zugreifen
- TF Lite-Sentimentanalysemodelle mithilfe der TF Lite-Task Library in Ihre App einbinden
Voraussetzungen
- Die neueste Version von Android Studio.
- Beispielcode.
- Ein Testgerät mit Android 5.0 oder höher und Google Play-Diensten 9.8 oder höher oder ein Emulator mit Google Play-Diensten 9.8 oder höher
- Wenn Sie ein Gerät verwenden, ein Verbindungskabel.
Wie werden Sie diese Anleitung verwenden?
Wie würden Sie Ihre Erfahrung mit der Entwicklung von Android-Apps bewerten?
2. Beispielcode abrufen
Klonen Sie das GitHub-Repository über die Befehlszeile.
$ git clone https://github.com/FirebaseExtended/codelab-textclassification-android.git
Wenn Sie Git nicht installiert haben, können Sie das Beispielprojekt auch von der GitHub-Seite oder über diesen Link herunterladen.
3. Start-App importieren
Wählen Sie in Android Studio das Verzeichnis codelab-textclassification-android-master (
) aus dem Download des Beispielcodes aus (File > Open > .../codelab-textclassification-android-master/start).
Das Startprojekt sollte jetzt in Android Studio geöffnet sein.
4. Start-App ausführen
Nachdem Sie das Projekt in Android Studio importiert haben, können Sie die App zum ersten Mal ausführen. Verbinden Sie Ihr Android-Gerät und klicken Sie in der Android Studio-Symbolleiste auf Ausführen (
).
Die App sollte auf Ihrem Gerät gestartet werden. Sie enthält nur eine einfache Benutzeroberfläche, die es erleichtert, Textklassifizierungsmodelle in den nächsten Schritten zu integrieren und zu testen. Wenn Sie jetzt versuchen, Stimmungen vorherzusagen, gibt die App nur einige Dummy-Ergebnisse zurück.

5. Firebase Console-Projekt erstellen
Firebase zum Projekt hinzufügen
- Rufen Sie die Firebase Console auf.
- Wählen Sie Projekt hinzufügen aus.
- Wählen Sie einen Projektnamen aus oder geben Sie ihn ein.
- Folgen Sie den verbleibenden Einrichtungsschritten in der Firebase Console und klicken Sie dann auf „Projekt erstellen“ (oder „Firebase hinzufügen“, wenn Sie ein vorhandenes Google-Projekt verwenden).
6. Firebase zur App hinzufügen
- Klicken Sie auf dem Übersichtsbildschirm Ihres neuen Projekts auf das Android-Symbol, um den Einrichtungsworkflow zu starten.
- Geben Sie den Paketnamen des Codelabs ein:
org.tensorflow.lite.codelabs.textclassification
Datei „google-services.json“ Ihrer App hinzufügen
Nachdem Sie den Paketnamen hinzugefügt und „Registrieren“** ausgewählt haben, klicken Sie auf „google-services.json herunterladen“**, um die Firebase-Konfigurationsdatei für Android zu erhalten. Kopieren Sie dann die Datei google-services.json in das Verzeichnis app in Ihrem Projekt.
Google-Services-Plug-in zur App hinzufügen
Folgen Sie der Anleitung in der Firebase Console, um die build.gradle.kts-Dateien zu aktualisieren und Firebase zu Ihrer App hinzuzufügen.
Das Google-Dienste-Plug-in verwendet die Datei „google-services.json“, um Ihre Anwendung für die Verwendung von Firebase zu konfigurieren.
Projekt mit Gradle-Dateien synchronisieren
Damit alle Abhängigkeiten für Ihre App verfügbar sind, sollten Sie Ihr Projekt jetzt mit Gradle-Dateien synchronisieren. Wählen Sie in der Android Studio-Symbolleiste Datei > Projekt mit Gradle-Dateien synchronisieren aus.
7. App mit Firebase ausführen
Nachdem Sie das google-services-Plug-in mit Ihrer JSON-Datei konfiguriert haben, können Sie die App mit Firebase ausführen. Verbinden Sie Ihr Android-Gerät und klicken Sie in der Android Studio-Symbolleiste auf Ausführen (
).
Die App sollte auf Ihrem Gerät gestartet werden. An diesem Punkt sollte Ihre App weiterhin erfolgreich erstellt werden.
8. Sentimentanalyse-Modell trainieren
Wir verwenden TensorFlow Lite Model Maker, um ein Textklassifizierungsmodell zu trainieren, das das Sentiment eines bestimmten Texts vorhersagt.
Dieser Schritt wird als Python-Notebook dargestellt, das Sie in Google Colab öffnen können. Sie können Laufzeit > Alle ausführen auswählen, um das gesamte Notebook auf einmal auszuführen.
In Colab öffnen
Nach Abschluss dieses Schritts haben Sie ein TensorFlow Lite-Modell für die Sentimentanalyse, das für die Bereitstellung in einer mobilen App bereit ist.
9. Modell in Firebase ML bereitstellen
Die Bereitstellung eines Modells in Firebase ML ist aus zwei Hauptgründen sinnvoll:
- Wir können die Installationsgröße der App gering halten und das Modell nur bei Bedarf herunterladen.
- Das Modell kann regelmäßig und mit einem anderen Release-Zyklus als die gesamte App aktualisiert werden.
Das Modell kann entweder über die Konsole oder programmatisch mit dem Firebase Admin SDK bereitgestellt werden. In diesem Schritt stellen wir die Funktion über die Console bereit.
Öffnen Sie zuerst die Firebase Console und klicken Sie im linken Navigationsbereich auf „Machine Learning“. Klicken Sie auf „Erste Schritte“, wenn Sie die Funktion zum ersten Mal öffnen. Klicken Sie dann auf „Benutzerdefiniert“ und auf die Schaltfläche „Modell hinzufügen“.
Geben Sie bei entsprechender Aufforderung den Namen sentiment_analysis für das Modell ein und laden Sie die Datei hoch, die Sie im vorherigen Schritt aus Colab heruntergeladen haben.

10. Modell aus Firebase ML herunterladen
Es kann schwierig sein, den richtigen Zeitpunkt für das Herunterladen des Remote-Modells aus Firebase in Ihre App zu wählen, da TFLite-Modelle relativ groß werden können. Im Idealfall möchten wir vermeiden, das Modell sofort beim Start der App zu laden. Wenn unser Modell nur für eine Funktion verwendet wird und der Nutzer diese Funktion nie verwendet, haben wir unnötigerweise eine große Menge an Daten heruntergeladen. Wir können auch Downloadoptionen festlegen, z. B. dass Modelle nur abgerufen werden, wenn eine WLAN-Verbindung besteht. Wenn Sie sicherstellen möchten, dass das Modell auch ohne Netzwerkverbindung verfügbar ist, ist es wichtig, es als Backup auch ohne die App zu bündeln.
Der Einfachheit halber entfernen wir das standardmäßig gebündelte Modell und laden immer ein Modell aus Firebase herunter, wenn die App zum ersten Mal gestartet wird. So können Sie bei der Sentimentanalyse sicher sein, dass die Inferenz mit dem von Firebase bereitgestellten Modell ausgeführt wird.
Fügen Sie in der Datei app/build.gradle.kts die Firebase Machine Learning-Abhängigkeit hinzu.
app/build.gradle.kts
Suchen Sie diesen Kommentar:
// TODO 1: Add Firebase ML dependency
Fügen Sie dann Folgendes hinzu:
implementation(platform("com.google.firebase:firebase-bom:32.0.0"))
implementation("com.google.firebase:firebase-ml-modeldownloader:24.1.2")
Wenn Sie von Android Studio aufgefordert werden, Ihr Projekt zu synchronisieren, wählen Sie Sync Now aus.
Fügen wir nun etwas Code hinzu, um das Modell von Firebase herunterzuladen.
MainActivity.java
Suchen Sie diesen Kommentar:
// TODO 2: Implement a method to download TFLite model from Firebase
Fügen Sie dann Folgendes hinzu:
/** Download model from Firebase ML. */
private synchronized void downloadModel(String modelName) {
CustomModelDownloadConditions conditions = new CustomModelDownloadConditions.Builder()
.requireWifi()
.build();
FirebaseModelDownloader.getInstance()
.getModel("sentiment_analysis", DownloadType.LOCAL_MODEL, conditions)
.addOnSuccessListener(model -> {
try {
// TODO 6: Initialize a TextClassifier with the downloaded model
predictButton.setEnabled(true);
} catch (IOException e) {
Log.e(TAG, "Failed to initialize the model. ", e);
Toast.makeText(
MainActivity.this,
"Model initialization failed.",
Toast.LENGTH_LONG)
.show();
predictButton.setEnabled(false);
}
})
.addOnFailureListener(e -> {
Log.e(TAG, "Failed to download the model. ", e);
Toast.makeText(
MainActivity.this,
"Model download failed, please check your connection.",
Toast.LENGTH_LONG)
.show();
}
);
}
Rufen Sie als Nächstes die Methode downloadModel in der Methode onCreate der Aktivität auf.
MainActivity.java
Suchen Sie diesen Kommentar:
// TODO 3: Call the method to download TFLite model
Fügen Sie dann Folgendes hinzu:
downloadModel("sentiment_analysis");
11. Modell in Ihre App einbinden
Mit der TensorFlow Lite Task Library können Sie TensorFlow Lite-Modelle mit nur wenigen Codezeilen in Ihre App einbinden. Wir initialisieren eine NLClassifier-Instanz mit dem TensorFlow Lite-Modell, das von Firebase heruntergeladen wurde. Anschließend verwenden wir sie, um die Texteingabe der App-Nutzer zu klassifizieren und das Ergebnis auf der Benutzeroberfläche anzuzeigen.
Abhängigkeit hinzufügen
Rufen Sie die Gradle-Datei der App auf und fügen Sie die TensorFlow Lite Task Library (Text) in die Abhängigkeiten der App ein.
app/build.gradle
Suchen Sie diesen Kommentar:
// TODO 4: Add TFLite Task API (Text) dependency
Fügen Sie dann Folgendes hinzu:
implementation("org.tensorflow:tensorflow-lite-task-text:0.3.0")
Wenn Sie von Android Studio aufgefordert werden, Ihr Projekt zu synchronisieren, wählen Sie Sync Now aus.
Textklassifizierer initialisieren
Anschließend laden wir das aus Firebase heruntergeladene Sentimentanalysemodell mit NLClassifier aus der Task Library.
MainActivity.java
Deklarieren wir eine NLClassifier-Instanzvariable. Suchen Sie diesen Kommentar:
// TODO 5: Define a NLClassifier variable
Fügen Sie dann Folgendes hinzu:
private NLClassifier textClassifier;
Initialisieren Sie die Variable textClassifier mit dem aus Firebase heruntergeladenen Modell für die Sentimentanalyse. Suchen Sie diesen Kommentar:
// TODO 6: Initialize a TextClassifier with the downloaded model
Fügen Sie dann Folgendes hinzu:
textClassifier = NLClassifier.createFromFile(model.getFile());
Text klassifizieren
Nachdem die textClassifier-Instanz eingerichtet wurde, können Sie die Sentimentanalyse mit einem einzigen Methodenaufruf ausführen.
MainActivity.java
Suchen Sie diesen Kommentar:
// TODO 7: Run sentiment analysis on the input text
Fügen Sie dann Folgendes hinzu:
List<Category> results = textClassifier.classify(text);
Nachbearbeitung implementieren
Schließlich wandeln wir die Ausgabe des Modells in einen beschreibenden Text um, der auf dem Bildschirm angezeigt wird.
MainActivity.java
Suchen Sie diesen Kommentar:
// TODO 8: Convert the result to a human-readable text
Entfernen Sie den Code, der den Dummy-Ergebnistext generiert:
String textToShow = "Dummy classification result.\n";
Fügen Sie dann Folgendes hinzu:
String textToShow = "Input: " + text + "\nOutput:\n";
for (int i = 0; i < results.size(); i++) {
Category result = results.get(i);
textToShow += String.format(" %s: %s\n", result.getLabel(),
result.getScore());
}
textToShow += "---------\n";
12. Endgültige App ausführen
Sie haben das Sentimentanalysemodell in die App integriert. Lassen Sie uns es testen. Verbinden Sie Ihr Android-Gerät und klicken Sie in der Android Studio-Symbolleiste auf Ausführen (
).
Die App sollte das Sentiment der eingegebenen Filmrezension richtig vorhersagen können.

13. App mit weiteren Firebase-Funktionen optimieren
Neben dem Hosting Ihrer TFLite-Modelle bietet Firebase mehrere andere Funktionen, mit denen Sie Ihre Anwendungsfälle für maschinelles Lernen optimieren können:
- Firebase Performance Monitoring, um die Geschwindigkeit der Modellinferenz auf dem Gerät des Nutzers zu messen.
- Mit Google Analytics for Firebase können Sie die Leistung Ihres Modells in der Produktion anhand der Nutzerreaktionen messen.
- Firebase A/B Testing zum Testen mehrerer Versionen Ihres Modells
- Erinnern Sie sich, dass wir vorhin zwei Versionen unseres TFLite-Modells trainiert haben? A/B-Tests sind eine gute Möglichkeit, um herauszufinden, welche Version in der Produktion besser abschneidet.
Weitere Informationen zur Verwendung dieser Funktionen in Ihrer App finden Sie in den folgenden Codelabs:
14. Glückwunsch!
In diesem Codelab haben Sie gelernt, wie Sie ein TFLite-Modell zur Sentimentanalyse trainieren und es mit Firebase in Ihrer mobilen App bereitstellen. Weitere Informationen zu TFLite und Firebase finden Sie in den anderen TFLite-Beispielen und den Anleitungen für die ersten Schritte mit Firebase.
Behandelte Themen
- TensorFlow Lite
- Firebase ML
Nächste Schritte
- Mit Firebase Performance Monitoring können Sie die Inferenzgeschwindigkeit Ihres Modells messen.
- Stellen Sie das Modell direkt aus Colab über die Firebase ML Model Management API in Firebase bereit.
- Fügen Sie ein Verfahren hinzu, mit dem Nutzer Feedback zum Vorhersageergebnis geben können, und verwenden Sie Google Analytics for Firebase, um Nutzerfeedback zu erfassen.
- Führen Sie A/B-Tests für das Average Word Vector-Modell und das MobileBERT-Modell mit Firebase A/B Testing durch.
Weitere Informationen
- Dokumentation zu Firebase Machine Learning
- TensorFlow Lite-Dokumentation
- App-Leistung mit Firebase messen
- Modelle mit Firebase A/B Testing testen