Membuat model klasifikasi teks kustom, dan mengupdate aplikasi Anda dengan model tersebut

1. Sebelum memulai

Dalam codelab ini, Anda akan mempelajari cara memperbarui model klasifikasi teks, yang dibuat dari set data komentar spam blog asli, tetapi disempurnakan dengan komentar Anda sendiri, sehingga Anda dapat memiliki model yang berfungsi dengan data Anda.

Prasyarat

Codelab ini adalah bagian dari jalur Memulai klasifikasi teks seluler. Codelab di jalur ini bersifat berurutan. Aplikasi dan model yang akan Anda kerjakan seharusnya dibuat sebelumnya, saat Anda mengikuti jalur pertama. Jika Anda belum menyelesaikan aktivitas sebelumnya, hentikan dan lakukan sekarang:

  • Membuat aplikasi gaya pesan dasar
  • Membuat model machine learning spam komentar
  • Mengupdate aplikasi untuk menggunakan model Machine Learning pemfilteran spam

Yang akan Anda pelajari

  • Cara memperbarui model klasifikasi teks yang Anda buat di jalur Memulai klasifikasi teks seluler
  • Cara menyesuaikan model agar memblokir spam yang paling umum di aplikasi Anda

Yang Anda butuhkan

  • Model aplikasi pesan dan pemfilteran spam yang Anda amati dan buat di aktivitas sebelumnya.

2. Meningkatkan kualitas klasifikasi teks

Anda bisa mendapatkan kode untuk ini dengan meng-clone repositori ini dan memuat aplikasi dari TextClassificationStep2. Anda dapat menemukannya di jalur TextClassificationOnMobile->Android.

Kode yang selesai juga tersedia untuk Anda sebagai TextClassificationStep3.

Jika Anda membuka aplikasi pesan yang Anda buat dan mencoba pesan ini, skor spam yang akan diberikan akan sangat rendah:

f111e21903d6fd1f.png

Salah ejaan seperti ini adalah cara umum untuk menghindari filter spam. Selain itu, meskipun pesan tidak berbahaya, spammer akan sering menambahkan link dalam ID pengguna (bukan pesan itu sendiri, dengan link yang dapat memicu filter).

Di lab ini, Anda akan melihat cara memperbarui model dengan data baru. Setelah selesai, dengan menjalankan kalimat yang sama, Anda akan mendapatkan hasil di bawah, yang mana pesan ini diidentifikasi sebagai spam.

c96613a0a4d1fef0.png

3 Mengedit file CSV

Untuk melatih model asli, set data dibuat sebagai CSV (lmblog_comments.csv) yang berisi hampir seribu komentar yang diberi label spam atau bukan spam. (Buka CSV di editor teks apa pun jika Anda ingin memeriksanya.)

Susunan CSV adalah membuat baris pertama menjelaskan kolom – di sini baris diberi label commenttext dan spam.

Setiap baris berikutnya mengikuti format berikut:

64c0128548e1d082.png

Label di sebelah kanan adalah benar untuk spam, dan salah untuk bukan spam. Dalam kasus ini, baris 3 dianggap sebagai spam.

Untuk menambahkan komentar sendiri, misalnya, jika Anda memiliki banyak orang yang mengirimkan spam ke situs dengan pesan tentang perdagangan online, Anda hanya perlu menambahkan contoh komentar spam di bagian bawah situs. Contoh:

online trading can be highly highly effective,true
online trading can be highly effective,true
online trading now,true
online trading here,true
online trading for the win,true

Setelah selesai, simpan file dengan nama baru (misalnya lmblog_comments.csv), dan Anda akan dapat menggunakannya untuk melatih model baru.

Untuk sisa codelab ini, Anda akan menggunakan contoh yang disediakan, diedit, dan dihosting di Google Cloud Storage dengan pembaruan perdagangan online. Anda dapat mengubah URL dalam kode jika ingin menggunakan set data Anda sendiri.

4. Melatih ulang model dengan data baru

Untuk melatih ulang model, Anda cukup menggunakan kembali kode dari sebelumnya (SpamCommentsModelMaker.ipynb), tetapi mengarahkannya ke set data CSV baru, yang disebut lmblog_comments_extras.csv. Jika menginginkan notebook lengkap dengan konten yang diupdate, Anda dapat menemukannya sebagai SpamCommentsUpdateModelMaker.ipynb.

Jika memiliki akses ke Google Colab, Anda dapat meluncurkannya langsung dari sini, jika tidak, dapatkan kode dari repo dan jalankan di lingkungan notebook pilihan Anda.

Berikut kode yang diupdate:

training_data = tf.keras.utils.get_file(fname='comments-spam-extras.csv',
          origin='https://storage.googleapis.com/laurencemoroney-blog.appspot.com/
                  lmblog_comments_extras.csv',
          extract=False)

Saat melatih, Anda akan melihat bahwa model tersebut akan tetap dilatih dengan tingkat akurasi yang tinggi:

8886033d1f8161c.png

Buka notebook untuk mendownload file model, vocab, dan label. Pada langkah berikutnya, Anda akan mengintegrasikannya di Android.

5. Mengupdate Aplikasi Android

  1. Buka aplikasi di Android Studio, dan pastikan Android dipilih di bagian atas penjelajah project.
  2. Temukan file assets yang berisi label, model, dan kosa kata dari versi lama file model.

91116524e9016ed4.png

  1. Klik kanan folder aset.
  2. Di menu, pilih opsi untuk membuka folder dengan file manager sistem operasi Anda. (Reveal in Finder di Mac, seperti yang ditampilkan. Akan ada Show in Explorer pada Windows, dan Open in Files atau yang serupa pada Linux.)

25f63f9629657e85.png

  1. Tindakan ini akan membuka direktori yang berisi model, vocab, dan label dalam file manager sistem operasi Anda. Salin kode baru yang Anda buat pada langkah sebelumnya.

Anda tidak perlu membuat perubahan apa pun pada kode di aplikasi Anda. Jalankan dan uji, dan Anda akan melihat hasil seperti di atas, saat model telah ditingkatkan untuk mendeteksi skenario teks "perdagangan online".

Versi kode yang sudah selesai tersedia di repo sebagai TextClassificationStep3.

6. Mengupdate Aplikasi iOS

Anda bisa mendapatkan kode untuk ini dengan meng-clone repositori ini dan memuat aplikasi dari TextClassificationStep2. Anda dapat menemukannya di jalur TextClassificationOnMobile->Android.

Kode yang selesai juga tersedia untuk Anda sebagai TextClassificationStep3.

Jika Anda telah mengerjakan codelab sebelumnya, Anda akan memiliki versi TextClassificationStep2 iOS yang berfungsi dengan model dasar. Jika Anda ingin memulai dari versi yang ada, cukup ambil versi tersebut dari repo. Fitur ini akan berfungsi dengan model pertama yang dilatih pada data spam komentar, dan Anda mungkin melihat hasil seperti ini:

553b845565b5b822.png

Mengupdate aplikasi untuk menggunakan model baru Anda sangatlah mudah. Cara termudah adalah dengan membuka file explorer, mendapatkan versi baru model.tflite, vocab, dan labels.txt, lalu menyalinnya ke direktori project Anda.

Setelah melakukannya, aplikasi akan berfungsi dengan model baru, dan Anda dapat mencobanya. Berikut adalah contoh kalimat yang sama, tetapi menggunakan model baru:

9031ec260b1857a3.png

7. Selamat

Selesai. Dengan melatih ulang model menggunakan data baru, lalu menambahkannya ke aplikasi Android dan iOS, Anda dapat mengupdate fungsinya tanpa menulis kode baru.

Langkah Berikutnya

Model ini hanyalah mainan, yang dilatih hanya pada 1000 item data.

Saat menjelajahi pemrosesan bahasa yang alami, Anda mungkin ingin bekerja dengan set data yang lebih besar. Anda juga dapat menyiapkan pipeline pelatihan berkelanjutan, sehingga saat data baru masuk dan ditandai sebagai spam, model ini bisa secara otomatis melatih ulang model di backend, kemudian men-deploy model tersebut menggunakan Firebase Model Hosting.

Pengguna dapat dengan mudah mendapatkan model yang diperbarui tanpa perlu menyalin dan menempelkannya sebagai aset, kompilasi ulang, dan mendistribusikan ulang. Anda juga dapat menggunakan Firebase Remote Config untuk mengelola nilai minimum untuk mengirim spam, bukan 0,8 yang kini Anda miliki.

Ada begitu banyak kemungkinan, dan kita akan mempelajarinya di codelab berikutnya dalam kursus ini.