Tambahkan Klasifikasi Teks di perangkat ke aplikasi Anda dengan TensorFlow Lite dan Firebase - Android Codelab

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

1. Ikhtisar

teks-klasifikasi-hasil.png

Selamat datang di Klasifikasi Teks dengan TensorFlow Lite dan Firebase codelab. Dalam codelab ini, Anda akan mempelajari cara menggunakan TensorFlow Lite dan Firebase untuk melatih dan menerapkan model klasifikasi teks ke aplikasi Anda. Codelab ini didasarkan pada contoh TensorFlow Lite ini .

Klasifikasi teks adalah proses pemberian tag atau kategori ke teks sesuai dengan isinya. Ini adalah salah satu tugas mendasar dalam Natural Language Processing (NLP) dengan aplikasi luas seperti analisis sentimen, pelabelan topik, deteksi spam, dan deteksi niat.

Analisis sentimen adalah interpretasi dan klasifikasi emosi (positif, negatif dan netral) dalam data teks menggunakan teknik analisis teks. Analisis sentimen memungkinkan bisnis untuk mengidentifikasi sentimen pelanggan terhadap produk, merek, atau layanan dalam percakapan dan umpan balik online.

Tutorial ini menunjukkan cara membangun model pembelajaran mesin untuk analisis sentimen, khususnya mengklasifikasikan teks sebagai positif atau negatif. Ini adalah contoh klasifikasi biner—atau dua kelas—, jenis masalah pembelajaran mesin yang penting dan dapat diterapkan secara luas.

Apa yang akan Anda pelajari?

  • Latih model analisis sentimen TF Lite dengan TF Lite Model Maker
  • Terapkan model TF Lite ke Firebase ML dan akses dari aplikasi Anda
  • Integrasikan model analisis sentimen TF Lite ke aplikasi Anda menggunakan Perpustakaan Tugas TF Lite

Apa yang Anda butuhkan?

  • Android Studio versi 4.0+.
  • Kode sampel.
  • Perangkat uji dengan Android 4.4+ dan layanan Google Play 9.8 atau lebih baru, atau Emulator dengan layanan Google Play 9.8 atau lebih baru
  • Jika menggunakan perangkat, kabel koneksi.

Bagaimana Anda akan menggunakan tutorial ini?

Baca sampai habis saja Baca dan selesaikan latihannya

Bagaimana penilaian pengalaman Anda dalam membuat aplikasi Android?

pemula Intermediat Ahli

2. Dapatkan kode sampel

Kloning repositori GitHub dari baris perintah.

$ git clone https://github.com/FirebaseExtended/codelab-textclassification-android.git

Jika Anda belum menginstal git, Anda juga dapat mengunduh proyek sampel dari halaman GitHub-nya atau dengan mengeklik tautan ini .

3. Impor aplikasi pemula

Dari Android Studio, pilih codelab-textclassification-android-master ( android_studio_folder.png ) dari unduhan kode sampel ( File > Open > .../codelab-textclassification-android-master/start).

Anda sekarang harus membuka proyek awal di Android Studio.

4. Jalankan aplikasi pemula

Sekarang setelah Anda mengimpor proyek ke Android Studio, Anda siap menjalankan aplikasi untuk pertama kalinya. Hubungkan perangkat Android Anda, dan klik Jalankan ( eksekusi.png ) di bilah alat Android Studio.

Aplikasi harus diluncurkan di perangkat Anda. Ini hanya berisi UI sederhana yang memudahkan untuk mengintegrasikan dan menguji model klasifikasi teks di langkah selanjutnya. Pada titik ini, jika Anda mencoba memprediksi sentimen, aplikasi hanya akan mengembalikan beberapa hasil dummy.

2fb4e69fafb2e3ed.png

5. Buat proyek konsol Firebase

Tambahkan Firebase ke proyek

  1. Buka konsol Firebase .
  2. Pilih Tambahkan proyek .
  3. Pilih atau masukkan nama Proyek.
  4. Ikuti langkah penyiapan selanjutnya di Firebase console, lalu klik Buat proyek (atau Tambahkan Firebase, jika Anda menggunakan proyek Google yang sudah ada).

6. Tambahkan Firebase ke aplikasi

  1. Dari layar ikhtisar proyek baru Anda, klik ikon Android untuk meluncurkan alur kerja penyiapan.
  2. Masukkan nama paket codelab: org.tensorflow.lite.codelabs.textclassification

Tambahkan file google-services.json ke aplikasi Anda

Setelah menambahkan nama paket dan memilih Daftar**, Klik Unduh google-services.json** untuk mendapatkan file konfigurasi Firebase Android Anda lalu salin file google-services.json ke dalam direktori * app * di proyek Anda.

Tambahkan plugin layanan-google ke aplikasi Anda

Ikuti petunjuk di Konsol Firebase yang memperbarui file build.gradle untuk menambahkan Firebase ke aplikasi Anda.

Plugin google-services menggunakan file google-services.json untuk mengonfigurasi aplikasi Anda agar menggunakan Firebase.

Sinkronkan proyek Anda dengan file gradle

Untuk memastikan bahwa semua dependensi tersedia untuk aplikasi Anda, Anda harus menyinkronkan proyek Anda dengan file gradle pada saat ini. Pilih File > Sync Project with Gradle Files dari toolbar Android Studio.

7. Jalankan aplikasi dengan Firebase

Sekarang setelah Anda mengonfigurasi plugin google-services dengan file JSON, Anda siap menjalankan aplikasi dengan Firebase. Hubungkan perangkat Android Anda, dan klik Jalankan ( eksekusi.png ) di bilah alat Android Studio.

Aplikasi harus diluncurkan di perangkat Anda. Pada titik ini, aplikasi Anda masih harus berhasil dibangun.

8. Latih model analisis sentimen

Kami akan menggunakan TensorFlow Lite Model Maker untuk melatih model klasifikasi teks guna memprediksi sentimen dari teks tertentu.

Langkah ini disajikan sebagai notebook Python yang dapat Anda buka di Google Colab. Anda dapat memilih Runtime > Run all untuk menjalankan semua notebook sekaligus.

Buka di Colab

Setelah menyelesaikan langkah ini, Anda akan memiliki model analisis sentimen TensorFlow Lite yang siap diterapkan ke aplikasi seluler.

9. Terapkan model ke Firebase ML

Menerapkan model ke Firebase ML berguna karena dua alasan utama:

  1. Kami dapat menjaga ukuran pemasangan aplikasi tetap kecil dan hanya mengunduh model jika diperlukan
  2. Model dapat diperbarui secara teratur dan dengan siklus rilis yang berbeda dari seluruh aplikasi

Model dapat diterapkan baik melalui konsol, atau secara terprogram, menggunakan Firebase Admin SDK. Pada langkah ini kami akan menyebarkan melalui konsol.

Pertama, buka Firebase Console dan klik Machine Learning di panel navigasi kiri. Klik 'Memulai' jika Anda membuka ini pertama kali. Kemudian arahkan ke "Kustom" dan klik tombol "Tambah model".

Saat diminta, beri nama model sentiment_analysis dan unggah file yang Anda unduh dari Colab di langkah sebelumnya.

3c3c50e6ef12b3b.png

10. Unduh model dari Firebase ML

Memilih kapan mengunduh model jarak jauh dari Firebase ke dalam aplikasi Anda bisa jadi rumit karena model TFLite dapat tumbuh relatif besar. Idealnya kami ingin menghindari memuat model segera saat aplikasi diluncurkan, karena jika model kami digunakan hanya untuk satu fitur dan pengguna tidak pernah menggunakan fitur itu, kami akan mengunduh sejumlah besar data tanpa alasan. Kami juga dapat mengatur opsi unduhan seperti hanya mengambil model saat terhubung ke wifi. Jika Anda ingin memastikan bahwa model tersedia bahkan tanpa koneksi jaringan, penting juga untuk memaketkannya tanpa aplikasi sebagai cadangan.

Demi kesederhanaan, kami akan menghapus model bundel default dan selalu mengunduh model dari Firebase saat aplikasi dimulai untuk pertama kalinya. Dengan cara ini saat menjalankan analisis sentimen, Anda dapat yakin bahwa inferensi berjalan dengan model yang disediakan dari Firebase.

Di file app/build.gradle , tambahkan dependensi Firebase Machine Learning.

app/build.gradle

Temukan komentar ini:

// TODO 1: Add Firebase ML dependency

Kemudian tambahkan:

implementation platform('com.google.firebase:firebase-bom:29.3.0')
implementation 'com.google.firebase:firebase-ml-modeldownloader:24.0.4'

Saat diminta oleh Android Studio untuk menyinkronkan proyek Anda, pilih Sinkronkan Sekarang .

Kemudian mari tambahkan beberapa kode untuk mengunduh model dari Firebase.

MainActivity.java

Temukan komentar ini:

// TODO 2: Implement a method to download TFLite model from Firebase

Kemudian tambahkan:

  /** 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();

                      }
              );

}

Selanjutnya, panggil metode downloadModel dalam metode onCreate aktivitas.

MainActivity.java

Temukan komentar ini:

// TODO 3: Call the method to download TFLite model

Kemudian tambahkan:

downloadModel("sentiment_analysis");

11. Integrasikan model di aplikasi Anda

Pustaka Tugas Tensorflow Lite membantu Anda mengintegrasikan model TensorFlow Lite ke dalam aplikasi Anda hanya dengan beberapa baris kode. Kami akan menginisialisasi instance NLClassifier menggunakan model TensorFlow Lite yang diunduh dari Firebase. Kemudian kita akan menggunakannya untuk mengklasifikasikan input teks dari pengguna aplikasi dan menampilkan hasilnya di UI.

Tambahkan ketergantungan

Buka file Gradle aplikasi dan tambahkan Perpustakaan Tugas TensorFlow Lite (Teks) di dependensi aplikasi.

app/build.gradle

Temukan komentar ini:

// TODO 4: Add TFLite Task API (Text) dependency

Kemudian tambahkan:

implementation 'org.tensorflow:tensorflow-lite-task-text:0.3.0'

Saat diminta oleh Android Studio untuk menyinkronkan proyek Anda, pilih Sinkronkan Sekarang .

Inisialisasi pengklasifikasi teks

Kemudian kita akan memuat model analisis sentimen yang diunduh dari Firebase menggunakan NLClassifier dari Pustaka Tugas.

MainActivity.java

Mari kita mendeklarasikan variabel instans NLClassifier. Temukan komentar ini:

// TODO 5: Define a NLClassifier variable

Kemudian tambahkan:

private NLClassifier textClassifier;

Inisialisasi variabel textClassifier dengan model analisis sentimen yang diunduh dari Firebase. Temukan komentar ini:

// TODO 6: Initialize a TextClassifier with the downloaded model

Kemudian tambahkan:

textClassifier = NLClassifier.createFromFile(model.getFile());

Mengklasifikasikan teks

Setelah instance textClassifier telah disiapkan, Anda dapat menjalankan analisis sentimen dengan satu panggilan metode.

MainActivity.java

Temukan komentar ini:

// TODO 7: Run sentiment analysis on the input text

Kemudian tambahkan:

List<Category> results = textClassifier.classify(text);

Terapkan pasca-pemrosesan

Terakhir, kita akan mengonversi output model menjadi teks deskriptif untuk ditampilkan di layar.

MainActivity.java

Temukan komentar ini:

// TODO 8: Convert the result to a human-readable text

Hapus kode yang menghasilkan teks hasil dummy:

String textToShow = "Dummy classification result.\n";

Kemudian tambahkan:

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. Jalankan aplikasi terakhir

Anda telah mengintegrasikan model analisis sentimen ke aplikasi, jadi mari kita uji. Hubungkan perangkat Android Anda, dan klik Jalankan ( eksekusi.png ) di bilah alat Android Studio.

Aplikasi harus dapat memprediksi sentimen ulasan film yang Anda masukkan dengan benar.

img/text-classification-result.png

13. Tingkatkan aplikasi dengan lebih banyak fitur Firebase

Selain menghosting model TFLite Anda, Firebase menyediakan beberapa fitur lain untuk memperkuat kasus penggunaan machine learning Anda:

  • Firebase Performance Monitoring untuk mengukur kecepatan inferensi model Anda yang berjalan di perangkat pengguna.
  • Firebase Analytics untuk mengukur seberapa baik performa model Anda dalam produksi dengan mengukur reaksi pengguna.
  • Pengujian A/B Firebase untuk menguji beberapa versi model Anda
  • Apakah Anda ingat kami melatih dua versi model TFLite kami sebelumnya? Pengujian A/B adalah cara yang baik untuk mengetahui versi mana yang berperforma lebih baik dalam produksi!

Untuk mempelajari lebih lanjut tentang cara memanfaatkan fitur-fitur ini di aplikasi Anda, lihat codelab di bawah ini:

14. Selamat!

Dalam codelab ini, Anda mempelajari cara melatih model TFLite analisis sentimen dan menerapkannya ke aplikasi seluler Anda menggunakan Firebase. Untuk mempelajari lebih lanjut tentang TFLite dan Firebase, lihat contoh TFLite lainnya dan panduan memulai Firebase.

Apa yang telah kita bahas

  • TensorFlow Lite
  • Firebase ML

Langkah selanjutnya

  • Ukur kecepatan inferensi model Anda dengan Firebase Performance Monitoring.
  • Deploy model dari Colab langsung ke Firebase melalui Firebase ML Model Management API.
  • Tambahkan mekanisme untuk memungkinkan pengguna memberi masukan tentang hasil prediksi, dan gunakan Firebase Analytics untuk melacak masukan pengguna.
  • Uji A/B model Average Word Vector dan model MobileBERT dengan pengujian A/B Firebase.

Belajarlah lagi

Punya Pertanyaan?

Laporkan Masalah