1. Sebelum memulai
Dalam codelab ini, Anda akan mempelajari cara mengupdate model klasifikasi teks yang di-build dari set data komentar spam blog asli, tetapi ditingkatkan kualitasnya dengan komentar Anda sendiri, sehingga Anda dapat memiliki model yang sesuai dengan data Anda.
Prasyarat
Codelab ini adalah bagian dari jalur pembelajaran Memulai klasifikasi teks seluler. Codelab di jalur ini bersifat berurutan. Aplikasi dan model yang akan Anda kerjakan telah di-build sebelumnya, saat Anda mengikuti jalur pembelajaran pertama. Jika Anda belum menyelesaikan aktivitas sebelumnya, berhenti mengikuti codelab ini dan selesaikan aktivitas tersebut sekarang:
- Membangun aplikasi gaya pesan dasar
- Membangun model machine learning spam komentar
- Memperbarui aplikasi Anda untuk menggunakan model Machine Learning pemfilteran spam
Yang akan Anda pelajari
- Cara mengupdate model klasifikasi teks yang Anda buat di jalur pembelajaran Mulai menggunakan klasifikasi teks seluler
- Cara menyesuaikan model untuk memblokir spam yang paling umum di aplikasi Anda
Yang Anda butuhkan
- Aplikasi pesan dan model pemfilteran spam yang telah Anda pelajari dan buat di aktivitas sebelumnya.
2. Meningkatkan kualitas klasifikasi teks
Anda bisa mendapatkan kode untuk codelab ini dengan meng-clone repo ini dan memuat aplikasi dari TextClassificationStep2. Anda dapat menemukannya di jalur TextClassificationOnMobile->Android.
Kode selesai juga tersedia untuk Anda sebagai TextClassificationStep3.
Jika Anda membuka aplikasi pesan yang Anda buat dan mencoba pesan ini, pesan tersebut akan memberikan skor spam yang sangat rendah:

Kesalahan ejaan seperti ini adalah cara umum untuk menghindari filter spam. Meskipun pesannya tidak berbahaya, spammer sering kali menambahkan link di ID pengguna (bukan di pesan itu sendiri, yang jika ada link di dalamnya dapat memicu filter).
Dalam lab ini, Anda akan melihat cara mengupdate model dengan data baru. Setelah selesai, menjalankan dengan kalimat yang sama akan memberikan hasil di bawah, di mana pesan ini diidentifikasi sebagai spam.

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.)
File CSV disusun dengan membuat baris pertama mendeskripsikan kolom – di sini kolom diberi label commenttext dan spam.
Setiap baris berikutnya mengikuti format berikut:

Label di sebelah kanan bernilai benar untuk spam, dan salah untuk bukan spam. Dalam hal ini, baris 3 dianggap sebagai spam.
Untuk menambahkan komentar Anda sendiri, misalnya, jika banyak orang mengirimkan spam ke situs Anda dengan pesan tentang trading online, Anda hanya perlu menambahkan contoh komentar spam di bagian bawah situs Anda. 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.
Selama codelab ini, Anda akan menggunakan contoh yang disediakan, diedit, dan dihosting di Google Cloud Storage. Data yang digunakan mencakup teks baru dengan frasa trading 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 dapat 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 diperbarui:
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 masih dilatih untuk mendapatkan tingkat akurasi yang tinggi:

Buka notebook untuk mendownload file model, vocab, dan labels. Pada langkah berikutnya, Anda akan mengintegrasikannya di Android.
5. Mengupdate Aplikasi Android Anda
- Buka aplikasi di Android Studio, dan pastikan Android dipilih di bagian atas project explorer.
- Temukan file
assetsyang berisi label, model, dan kosakata dari file model versi lama.

- Klik kanan folder aset.
- Di menu, pilih opsi untuk membuka folder dengan file manager sistem operasi Anda. (Reveal in Finder di Mac, seperti yang ditunjukkan. Opsinya adalah Show in Explorer di Windows, dan Open in Files atau yang serupa di Linux.)

- Cara ini akan membuka direktori yang berisi model, kosakata, dan label di pengelola file sistem operasi Anda. Salin baru yang Anda buat di langkah sebelumnya ke atasnya.
Anda tidak perlu melakukan perubahan apa pun pada kode di aplikasi. Jalankan dan uji, lalu Anda akan melihat hasil seperti di atas, di mana model telah ditingkatkan untuk mendeteksi skenario teks "perdagangan online".
Versi kode yang sudah selesai tersedia di repo sebagai TextClassificationStep3.
6. Mengupdate Aplikasi iOS Anda
Anda bisa mendapatkan kode untuk codelab ini dengan meng-clone repo ini dan memuat aplikasi dari TextClassificationStep2. Anda dapat menemukannya di jalur TextClassificationOnMobile->Android.
Kode selesai juga tersedia untuk Anda sebagai TextClassificationStep3.
Jika Anda telah menyelesaikan codelab sebelumnya, Anda akan memiliki versi iOS TextClassificationStep2 yang berfungsi dengan model dasar. Jika Anda ingin memulai dari versi yang ada, cukup ambil versi tersebut dari repo. Model ini akan berfungsi dengan model pertama yang dilatih pada data spam komentar, dan Anda mungkin melihat hasil seperti ini:

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 Anda akan berfungsi dengan model baru, dan Anda dapat mencobanya. Berikut adalah contoh kalimat yang sama, tetapi menggunakan model baru:

7. Selamat
Selesai! Dengan melatih ulang model menggunakan data baru, dan menambahkannya ke aplikasi Android dan iOS, Anda dapat mengupdate fungsinya tanpa menulis kode baru.
Langkah Berikutnya
Model ini hanyalah model mainan, yang dilatih dengan hanya 1.000 item data.
Saat mempelajari pemrosesan bahasa 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, data tersebut dapat secara otomatis melatih ulang model di backend, lalu men-deploy model tersebut menggunakan Firebase Model Hosting.
Pengguna Anda akan mendapatkan model yang diupdate dengan lancar tanpa Anda perlu menyalin dan menempelkannya sebagai aset, mengompilasi ulang, dan mendistribusikan ulang. Misalnya, Anda juga dapat menggunakan Firebase Remote Config untuk mengelola nilai minimum untuk mengirim spam, bukan 0, 8 yang Anda miliki sekarang.
Ada banyak kemungkinan, dan kita akan menjelajahinya dalam codelab mendatang di kursus ini.