1. Başlamadan önce
Bu codelab'de, orijinal blog-spam-comments veri kümesinden oluşturulan ancak kendi yorumlarınızla geliştirilen metin sınıflandırma modelini nasıl güncelleyeceğinizi öğreneceksiniz. Böylece, verilerinizle çalışan bir model elde edebilirsiniz.
Ön koşullar
Bu codelab, Flutter uygulamalarında metin sınıflandırmayı kullanmaya başlama yolunun bir parçasıdır. Bu rotadaki codelab'ler sıralıdır. Üzerinde çalışacağınız uygulama ve model, codelab'leri takip ederken daha önce oluşturulmuş olmalıdır. Önceki etkinlikleri henüz tamamlamadıysanız lütfen durup şimdi tamamlayın:
- TensorFlow Lite Model Maker codelab ile yorumlardaki spam'leri algılama modeli eğitme
- Yorum spam'ini algılamak için Flutter uygulaması oluşturma codelab'i
Neler öğreneceksiniz?
- Train a comment-spam detection model with TensorFlow Lite Model Maker codelab'de oluşturduğunuz metin sınıflandırma modelini güncelleme
- Modelinizi, uygulamanızdaki en yaygın spam'i engelleyecek şekilde özelleştirme
İhtiyacınız olanlar
- Önceki etkinliklerde gözlemlediğiniz ve oluşturduğunuz Flutter uygulaması ve spam filtresi modeli.
2. Metin sınıflandırmayı geliştirme
- Bu kodun kodunu almak için bu depoyu klonlayıp uygulamayı
tfserving-flutter/codelab2/finished
klasöründen yükleyebilirsiniz. - TensorFlow Serving Docker görüntüsünü başlattıktan sonra oluşturduğunuz uygulamada
buy my book to learn online trading
girin ve gRPC > Classify'ı (Sınıflandır) tıklayın.
Uygulama, orijinal veri kümesinde online ticaret çok fazla geçmediği ve model bunun spam olduğunu öğrenmediği için düşük bir spam puanı oluşturuyor. Bu codelab'de, modeli yeni verilerle güncelleyerek aynı cümleyi spam olarak tanımlamasını sağlayacaksınız.
3. CSV dosyanızı düzenleme
Orijinal modeli eğitmek için CSV (lmblog_comments.csv
) olarak bir veri kümesi oluşturuldu. Bu veri kümesi, spam veya spam değil olarak etiketlenmiş yaklaşık bin yorum içeriyordu. (İncelemek isterseniz CSV dosyasını herhangi bir metin düzenleyicide açın.)
CSV dosyasının yapısında, ilk satırda commenttext
ve spam
olarak etiketlenen sütunlar açıklanır. Sonraki her satır şu biçimde olmalıdır:
Sağdaki etikete spam için true
değeri, spam değil için false
değeri atanır. Örneğin, üçüncü satır spam olarak değerlendirilir.
Kullanıcılar, web sitenizi online ticaretle ilgili mesajlarla spam'liyorlarsa web sitenizin en altına spam yorum örnekleri ekleyebilirsiniz. Örneğin:
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
- Dosyayı yeni bir adla (ör.
lmblog_comments.csv
) kaydedin. Böylece, yeni bir modeli eğitmek için bu dosyayı kullanabilirsiniz.
Bu codelab'in geri kalanında, online ticaret güncellemeleriyle birlikte Cloud Storage'da sağlanan, düzenlenen ve barındırılan örneği kullanacaksınız. Kendi veri kümenizi kullanmak istiyorsanız koddaki URL'yi değiştirebilirsiniz.
4. Modeli yeni verilerle yeniden eğitme
Modeli yeniden eğitmek için (SpamCommentsModelMaker.ipynb
) adresindeki kodu yeniden kullanabilir ancak bu kodu lmblog_comments_extras.csv
adlı yeni CSV veri kümesine yönlendirebilirsiniz. Güncellenmiş içeriklerin yer aldığı not defterinin tamamını SpamCommentsUpdateModelMaker.ipynb.
olarak bulabilirsiniz.
Colaboratory'ye erişiminiz varsa doğrudan başlatabilirsiniz. Aksi takdirde, kodu depodan alın ve tercih ettiğiniz not defteri ortamında çalıştırın.
Güncellenen kod, aşağıdaki kod snippet'ine benzer:
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)
Eğitim sırasında modelin yüksek doğruluk düzeyinde eğitilmeye devam ettiğini görmelisiniz:
/mm_update_spam_savedmodel
klasörünün tamamını sıkıştırın ve oluşturulan mm_update_spam_savedmodel.zip
dosyasını indirin.
# 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. Docker'ı başlatın ve Flutter uygulamanızı güncelleyin
- İndirilen
mm_update_spam_savedmodel.zip
dosyasını bir klasöre çıkartın, ardından önceki codelab'deki Docker kapsayıcı örneğini durdurup tekrar başlatın ancakPATH/TO/UPDATE/SAVEDMODEL
yer tutucusunu, indirilen dosyalarınızı barındıran klasörün mutlak yoluyla değiştirin:
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
lib/main.dart
dosyasını en sevdiğiniz kod düzenleyiciyle açın veinputTensorName
ileoutTensorName
değişkenlerini tanımlayan bölümü bulun:
const inputTensorName = 'input_3';
const outputTensorName = 'dense_5';
inputTensorName
değişkenini "input_1'
" değerine,outputTensorName
değişkenini ise'dense_1'
değerine yeniden atayın:
const inputTensorName = 'input_1';
const outputTensorName = 'dense_1';
- İndirdiğiniz
vocab.txt
dosyasını, mevcut olanın yerinelib/assets/
klasörüne kopyalayın. - Text Classification Flutter uygulamasını Android emülatöründen manuel olarak kaldırın.
- Uygulamayı başlatmak için terminalinizde
'flutter run'
komutunu çalıştırın. - Uygulamada
buy my book to learn online trading
yazın ve gRPC > Classify'ı (gRPC > Sınıflandır) tıklayın.
Model artık kitabımı satın alarak online ticarete başla gibi ifadeleri spam olarak algılayacak şekilde geliştirildi.
6. Tebrikler
Modeli yeni verilerle yeniden eğittiniz, Flutter uygulamasıyla entegre ettiniz ve yeni spam cümleleri algılayacak şekilde işlevselliğini güncellediniz.