Créez un modèle de classification de texte personnalisé et utilisez-le pour mettre à jour vos applications.

1. Avant de commencer

Dans cet atelier de programmation, vous allez apprendre à mettre à jour le modèle de classification de texte, créé à partir de l'ensemble de données contenant les commentaires de votre blog d'origine, mais également à l'aide de vos propres commentaires, afin de disposer d'un modèle compatible avec vos données.

Prérequis

Cet atelier de programmation fait partie du parcours de formation sur la classification de texte pour mobile. Les ateliers de programmation de ce parcours sont séquentiels. L'application et le modèle sur lesquels vous allez travailler devraient avoir été créés précédemment, tout en suivant le premier parcours. Si vous n'avez pas encore terminé les activités précédentes, veuillez arrêter la procédure.

  • Créer une application de style de messagerie de base
  • Créer un modèle de machine learning pour les commentaires comportant du spam
  • Mettre à jour votre application pour utiliser un modèle de machine learning avec filtrage du spam

Points abordés

  • Mettre à jour le modèle de classification de texte que vous avez créé dans le parcours de classification de texte pour mobile
  • Personnaliser votre modèle afin de bloquer les spams les plus fréquents dans votre application

Prérequis

  • Application de messagerie et modèle de filtrage antispam que vous avez observés et créés dans les activités précédentes.

2. Améliorer la classification du texte

Vous pouvez obtenir le code pour cela en clonant ce dépôt et en chargeant l'application à partir de TextClassificationStep2. Vous pouvez trouver ce lien dans le chemin TextClassificationOnMobile->Android.

Le code finalisé est également disponible sous la forme TextClassificationStep3.

Si vous ouvrez l'application de chat que vous avez créée et que vous avez essayé ce message, le score en question est très faible:

f111e21903d6fd1f.png

Les fautes d'orthographe sont courantes pour éviter les filtres antispam. Et si le message est inoffensif, les spammeurs ajoutent souvent un lien dans l'ID utilisateur (au lieu du message lui-même, où un lien peut déclencher les filtres).

Dans cet atelier, vous allez découvrir comment mettre à jour le modèle avec de nouvelles données. Lorsque vous avez terminé, exécuter la même phrase pour afficher le résultat ci-dessous, où ce message est identifié comme spam !

C96613a0a4d1fef0.png

3. Modifier le fichier CSV

Pour entraîner le modèle d'origine, un ensemble de données a été créé au format CSV (lmblog_comments.csv) et contient près de mille commentaires marqués comme spam ou non. (Si vous souhaitez inspecter le fichier CSV, ouvrez-le dans un éditeur de texte.)

Dans le fichier CSV, la première ligne doit décrire les colonnes (ici, commenttext et spam).

Chaque ligne suivante se présente comme suit:

64c0128548e1d082.png

Le libellé de droite est vrai pour les spams et "false" pour les spams. Dans ce cas, la ligne 3 est considérée comme du spam.

Si vous souhaitez ajouter vos propres commentaires, par exemple si de nombreux internautes envoient du spam sur votre site à l'aide de messages concernant le commerce en ligne, il vous suffit d'ajouter des exemples de commentaires en bas de votre site. Exemple :

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

Lorsque vous avez terminé, enregistrez le fichier sous un nouveau nom (par exemple, lmblog_comments.csv), et vous pourrez l'utiliser pour entraîner un nouveau modèle.

Dans la suite de cet atelier de programmation, vous allez utiliser l'exemple fourni, modifié et hébergé sur Google Cloud Storage ainsi que les mises à jour du trading en ligne. Vous pouvez modifier l'URL dans le code si vous souhaitez utiliser votre propre ensemble de données.

4. Réentraîner le modèle avec les nouvelles données

Pour réentraîner le modèle, il vous suffit de réutiliser le code précédent (SpamCommentsModelMaker.ipynb), mais vous devez le renvoyer vers le nouvel ensemble de données CSV, appelé lmblog_comments_extras.csv. Si vous souhaitez obtenir le notebook complet avec le contenu mis à jour, vous pouvez le trouver sous SpamCommentsUpdateModelMaker.ipynb.

Si vous avez accès à Google Colab, vous pouvez le lancer directement ici, ou obtenir le code du dépôt et l'exécuter dans l'environnement de votre notebook.

Voici le code mis à jour:

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)

Pendant l'entraînement, vous devriez constater que le modèle continue d'être entraîné avec un niveau de précision élevé.

8886033d1f8161c.png

Parcourez le notebook pour télécharger les fichiers model, vocab et labels. L'étape suivante consiste à les intégrer à Android.

5. Mettre à jour votre application Android

  1. Ouvrez l'application dans Android Studio et vérifiez que Android est sélectionné en haut de l'explorateur de projets.
  2. Recherchez le fichier assets contenant les étiquettes, le modèle et le vocabulaire de l'ancienne version.

91116524e9016ed4.png

  1. Effectuez un clic droit sur le dossier des éléments.
  2. Dans le menu, sélectionnez l'option permettant d'ouvrir le dossier avec le gestionnaire de fichiers de votre système d'exploitation. (Afficher dans le Finder sur Mac, comme illustré ci-dessous) Il s'agit de l'option Afficher dans l'Explorateur sous Windows, et l'option Ouvrir dans Fichiers ou similaire dans Linux.

25f63f9629657e85.png

  1. Le répertoire contenant le modèle, le vocabulaire et les libellés s'ouvre dans le gestionnaire de fichiers de votre système d'exploitation. Copiez les nouveautés que vous avez créées à l'étape précédente.

Vous n'avez pas besoin de modifier le code dans votre application. Exécutez-le et testez-le. Vous obtiendrez des résultats semblables à ceux indiqués ci-dessus, où le modèle s'est amélioré pour détecter le scénario de vente de "onllline".

Une version terminée du code est disponible dans le dépôt au format TextClassificationStep3.

6. Mettre à jour votre application iOS

Vous pouvez obtenir le code pour cela en clonant ce dépôt et en chargeant l'application à partir de TextClassificationStep2. Vous pouvez trouver ce lien dans le chemin TextClassificationOnMobile->Android.

Le code finalisé est également disponible sous la forme TextClassificationStep3.

Si vous avez suivi l'atelier de programmation précédent, vous disposez d'une version iOS de TextClassificationStep2 qui fonctionne avec le modèle de base. Si vous souhaitez utiliser la version existante, il vous suffit de la récupérer dans le dépôt. Cette méthode fonctionne avec le premier modèle entraîné à partir des données de spam dans les commentaires. Le résultat suivant peut s'afficher:

553b845565b5b822.png

Mettre à jour l'application pour utiliser votre nouveau modèle est un jeu d'enfant. Le moyen le plus simple est d'accéder à l'explorateur de fichiers, d'obtenir les nouvelles versions de model.tflite, de vocab et de labels.txt, puis de les copier dans le répertoire de votre projet.

Votre application sera ainsi compatible avec le nouveau modèle et vous pourrez l'essayer. Voici un exemple de même phrase avec le nouveau modèle:

9031ec260b1857a3.png

7. Félicitations

Et voilà ! En réentraînant le modèle avec de nouvelles données et en l'ajoutant à vos applications Android et iOS, vous avez pu mettre à jour leurs fonctionnalités sans avoir à écrire de nouveau code.

Étapes suivantes

Ce modèle n'est qu'un jouet, entraîné uniquement sur 1 000 éléments.

Lorsque vous découvrez le traitement du langage naturel, vous pouvez utiliser des ensembles de données plus volumineux. Vous pouvez également configurer un pipeline d'entraînement continu afin que les nouvelles données signalées et signalées comme des spams puissent automatiquement réentraîner un modèle sur un backend avant de le déployer à l'aide de Firebase Model Hosting.

Vos utilisateurs disposent ainsi d'un modèle mis à jour sans avoir à le copier, le coller en tant qu'élément, le recompiler et le redistribuer. Vous pouvez également utiliser par exemple Firebase Remote Config pour gérer le seuil d'envoi de spam au lieu de la valeur actuelle de 0,8.

Les possibilités sont nombreuses, et nous en parlerons dans les prochains ateliers de programmation de ce cours.