Bu codelab hakkında
1. Başlamadan önce
Bu codelab'de, orijinal blog-spam-yorumlar veri kümesiyle derlenen ancak kendi yorumlarınızla geliştirilerek verilerinizle çalışan bir model oluşturabilmeniz için metin sınıflandırma modelini nasıl güncelleyeceğinizi öğreneceksiniz.
Ön koşullar
Bu codelab, Flutter'daki uygulama sınıflandırmasında metin sınıflandırmasını kullanmaya başlama yolunun bir parçasıdır. Bu yoldaki codelab'ler sıralı olarak kullanılır. Üzerinde çalıştığınız uygulama ve model, siz codelab'leri takip ederken önceden oluşturulmuş olmalıdır. Önceki işlemleri henüz tamamlamadıysanız lütfen durup işlemi tamamlayın:
- TensorFlow Lite Model Maker codelab ile yorum spam'ı algılama modelini eğitme
- Yorum spam'i codelab'i algılamak için Flutter uygulaması oluşturma
Neler öğreneceksiniz?
- TensorFlow Lite Model Maker codelab ile yorum spam'i algılama modeli eğitme konusunda oluşturduğunuz metin sınıflandırma modelini güncelleme.
- Modelinizi, uygulamanızda en yaygın spam'i engelleyecek şekilde özelleştirme.
Gerekenler
- Gözlemlediğiniz ve önceki etkinliklerde oluşturduğunuz Flutter uygulaması ve spam filtresi modeli.
2. Metin sınıflandırmasını iyileştirin
- Bu veri havuzunu klonlayarak ve uygulamayı
tfserving-flutter/codelab2/finished
klasöründen yükleyerek bu kodun kodunu alabilirsiniz. - TensorFlow Sunumu Docker görüntüsünü başlattıktan sonra, oluşturduğunuz uygulamada
buy my book to learn online trading
komutunu girin ve ardından gRPC > Classify'ı tıklayın.
Orijinal veri kümesinde çok fazla online alım gerçekleşmediği ve model, spam konusunda bilgi sahibi olmadığı için uygulama düşük spam puanı oluşturur. Bu codelab'de, modeli spam ile aynı cümleyi tanımlayacak şekilde modeli yeni verilerle güncellersiniz.
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. (CSV'yi incelemek isterseniz herhangi bir metin düzenleyicide açın.)
CSV dosyasının yapısı, ilk satırın commenttext
ve spam
etiketli sütunları açıklamasını içerir. Sonraki her satır şu biçimi izler:
Sağdaki etikete spam için true
değeri, spam olmayan için false
değeri atanır. Örneğin, üçüncü satır spam olarak kabul edilir.
Kullanıcılar web sitenizden online ticaret hakkında mesajlarla spam yapıyorsa 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 kaydedin. Örneğin, yeni bir model eğitmek için dosyayı
lmblog_comments.csv
kullanın.
Bu codelab'in geri kalanında online ticaret güncellemelerini kullanarak Cloud Storage'da sağlanan, düzenlenen ve barındırılan örneği kullanıyorsunuz. 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
) kodunu yeniden kullanabilirsiniz ancak lmblog_comments_extras.csv
adı verilen yeni CSV veri kümesine yönlendirebilirsiniz. Güncellenen içeriğe sahip not defterinin tamamını kullanmak istiyorsanız not defterini SpamCommentsUpdateModelMaker.ipynb.
olarak bulabilirsiniz
Colaboratory'ye erişiminiz varsa doğrudan başlatabilirsiniz. Aksi takdirde, kod deposundan alın ve ardından istediğiniz not defteri ortamınızda çalıştırın.
Güncellenen kod şu 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ğittiğinizde modelin yüksek doğruluk oranına sahip olduğunu görmeye devam edersiniz.
/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ı aşağı 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
- İndirdiğiniz
mm_update_spam_savedmodel.zip
dosyasını bir klasörde sıkıştırıp açın ve önceki codelab'den Docker container örneğini durdurup tekrar başlatın. AncakPATH/TO/UPDATE/SAVEDMODEL
yer tutucusunu, indirdiğiniz dosyaları 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ı favori kod düzenleyicinizle açıpinputTensorName
veoutTensorName
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 veoutputTensorName
değişkenini bir'dense_1'
değerine yeniden atayın:
const inputTensorName = 'input_1';
const outputTensorName = 'dense_1';
- İndirdiğiniz
vocab.txt
dosyasını mevcut klasöre değiştirmek içinlib/assets/
klasörüne kopyalayın. - Metin Sınıflandırması 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
komutunu girin ve ardından gRPC > Classify'ı tıklayın.
Bu model, kitapımı internetten satın alımda spam olarak algılayacak şekilde iyileşti.
6. Tebrikler
Modeli yeni verilerle yeniden eğittiniz, Flutter uygulamasıyla entegre ettiniz ve işlevselliği yeni spam cümleleri algılayacak şekilde güncellediniz.