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 agar dapat memiliki model yang sesuai dengan data Anda.
Prasyarat
Codelab ini adalah bagian dari jalur pembelajaran Memulai klasifikasi teks di aplikasi Flutter. Codelab di jalur ini bersifat berurutan. Aplikasi dan model yang akan Anda kerjakan telah di-build sebelumnya, saat Anda mengikuti codelab. Jika Anda belum menyelesaikan aktivitas sebelumnya, berhenti mengikuti codelab ini dan selesaikan aktivitas tersebut sekarang:
- Codelab Melatih model deteksi spam komentar dengan TensorFlow Lite Model Maker
- Codelab Membuat aplikasi Flutter untuk mendeteksi spam komentar
Yang akan Anda pelajari
- Cara mengupdate model klasifikasi teks yang Anda build di codelab Melatih model deteksi spam komentar dengan TensorFlow Lite Model Maker.
- Cara menyesuaikan model untuk memblokir spam yang paling umum di aplikasi Anda.
Yang Anda butuhkan
- Aplikasi Flutter dan model filter spam yang telah Anda pelajari dan build di aktivitas sebelumnya.
2. Meningkatkan kualitas klasifikasi teks
- Anda bisa mendapatkan kode untuk codelab ini dengan meng-clone repositori ini dan memuat aplikasi dari folder
tfserving-flutter/codelab2/finished
. - Setelah memulai image Docker TensorFlow Serving, di aplikasi yang Anda build, masukkan
buy my book to learn online trading
, lalu klik gRPC > Classify.
Aplikasi ini akan menghasilkan skor spam yang rendah karena kalimat trading online tidak banyak muncul di set data asli dan model belum mengetahui bahwa itu merupakan spam. Dalam codelab ini, Anda akan mengupdate model dengan data baru agar model dapat mengidentifikasi kalimat yang sama 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, yang diberi label commenttext
dan spam
. Setiap baris berikutnya mengikuti format berikut:
Label di sebelah kanan diberi nilai true
untuk spam dan nilai false
untuk bukan spam. Misalnya, baris ketiga dianggap sebagai spam.
Jika orang mengirimkan spam ke situs Anda dengan pesan tentang trading online, Anda dapat 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
- Simpan file dengan nama baru, seperti
lmblog_comments.csv
, agar Anda dapat menggunakannya untuk melatih model baru.
Selama codelab ini, Anda akan menggunakan contoh yang disediakan, diedit, dan dihosting di Cloud Storage. Data yang digunakan mencakup teks baru dengan frasa trading online. Jika ingin menggunakan set data Anda sendiri, Anda dapat mengubah URL dalam kode.
4. Melatih kembali model dengan data baru
Untuk melatih ulang model, Anda dapat menggunakan kembali kode dari (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 Colaboratory, Anda dapat meluncurkannya secara langsung. Jika tidak, dapatkan kode dari repositori, lalu jalankan di lingkungan notebook pilihan Anda.
Kode yang diupdate akan terlihat seperti cuplikan kode berikut:
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:
Kompresi seluruh folder /mm_update_spam_savedmodel
dan download file mm_update_spam_savedmodel.zip
yang dihasilkan.
# Rename the SavedModel subfolder to a version number
!mv /mm_update_spam_savedmodel/saved_model /mm_update_spam_savedmodel/123
!zip -r mm_update_spam_savedmodel.zip /mm_update_spam_savedmodel/
5. Memulai Docker dan mengupdate Aplikasi Flutter Anda
- Ekstrak file
mm_update_spam_savedmodel.zip
yang didownload ke folder, lalu hentikan instance container Docker dari codelab sebelumnya dan mulai lagi. Namun, ganti placeholderPATH/TO/UPDATE/SAVEDMODEL
dengan jalur absolut folder yang menghosting file yang Anda download:
docker run -it --rm -p 8500:8500 -p 8501:8501 -v "PATH/TO/UPDATE/SAVEDMODEL:/models/spam-detection" -e MODEL_NAME=spam-detection tensorflow/serving
- Buka file
lib/main.dart
dengan editor kode favorit Anda, lalu cari bagian yang menentukan variabelinputTensorName
danoutTensorName
:
const inputTensorName = 'input_3';
const outputTensorName = 'dense_5';
- Tetapkan ulang variabel
inputTensorName
ke nilai 'input_1'
dan variabeloutputTensorName
ke nilai'dense_1'
:
const inputTensorName = 'input_1';
const outputTensorName = 'dense_1';
- Salin file
vocab.txt
yang telah Anda download ke folderlib/assets/
untuk menggantikan yang ada. - Hapus Klasifikasi Teks di aplikasi Flutter secara manual dari emulator Android.
- Jalankan perintah
'flutter run'
di terminal Anda untuk meluncurkan aplikasi. - Di aplikasi, masukkan
buy my book to learn online trading
, lalu klik gRPC > Classify.
Sekarang, model tersebut telah ditingkatkan kualitasnya untuk mendeteksi beli buku saya untuk melakukan trading online sebagai spam.
6. Selamat
Anda telah melatih ulang model dengan data baru, mengintegrasikannya dengan aplikasi Flutter, dan mengupdate fungsinya untuk mendeteksi kalimat spam baru.