TensorFlow Lite Model Maker ile özel metin sınıflandırma modeli oluşturun

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:

Neler öğreneceksiniz?

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

  1. Bu veri havuzunu klonlayarak ve uygulamayı tfserving-flutter/codelab2/finished klasöründen yükleyerek bu kodun kodunu alabilirsiniz.
  2. 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.

8f1e1974522f274d.png

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.

2bd68691a26aa3da.png

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:

62025273971c9a7f.png

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.

96a1547ddb6edf5b.png

/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

  1. İ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. Ancak PATH/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
  1. lib/main.dart dosyasını favori kod düzenleyicinizle açıp inputTensorName ve outTensorName değişkenlerini tanımlayan bölümü bulun:
const inputTensorName = 'input_3';
const outputTensorName = 'dense_5';
  1. inputTensorName değişkenini "input_1' değerine ve outputTensorName değişkenini bir 'dense_1' değerine yeniden atayın:
const inputTensorName = 'input_1';
const outputTensorName = 'dense_1';
  1. İndirdiğiniz vocab.txt dosyasını mevcut klasöre değiştirmek için lib/assets/ klasörüne kopyalayın.
  2. Metin Sınıflandırması Flutter uygulamasını Android emülatöründen manuel olarak kaldırın.
  3. Uygulamayı başlatmak için terminalinizde 'flutter run' komutunu çalıştırın.
  4. 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.

Daha fazla bilgi