CommencerCommencer gratuitement

Canalisation des spams par SMS

Vous n'avez pas regardé les données SMS depuis un certain temps. La dernière fois, nous avons fait ce qui suit :

  • diviser le texte en jetons
  • suppression des mots vides
  • a appliqué l'astuce du hachage
  • a converti les données de l'effectif à l'IDF et
  • a formé un modèle de régression logistique.

Chacune de ces étapes a été réalisée indépendamment. Cela semble être une excellente application pour un pipeline !

Les classes Pipeline et LogisticRegression ont déjà été importées dans la session, vous n'avez donc pas à vous en préoccuper !

Cet exercice fait partie du cours

Apprentissage automatique avec PySpark

Afficher le cours

Instructions

  • Créez un objet pour diviser le texte en jetons.
  • Créez un objet pour supprimer les mots vides. Plutôt que d'indiquer explicitement le nom de la colonne d'entrée, utilisez la méthode getOutputCol() sur l'objet précédent.
  • Créez des objets pour appliquer l'astuce de hachage et transformer les données en TF-IDF. Utilisez à nouveau la méthode getOutputCol().
  • Créez un pipeline qui englobe toutes les étapes ci-dessus ainsi qu'un objet pour créer un modèle de régression logistique.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

from pyspark.ml.feature import Tokenizer, StopWordsRemover, HashingTF, IDF

# Break text into tokens at non-word characters
tokenizer = ____(inputCol='text', outputCol='words')

# Remove stop words
remover = ____(inputCol=____, outputCol='terms')

# Apply the hashing trick and transform to TF-IDF
hasher = ____(inputCol=____, outputCol="hash")
idf = ____(inputCol=____, outputCol="features")

# Create a logistic regression object and add everything to a pipeline
logistic = LogisticRegression()
pipeline = Pipeline(stages=[____, ____, ____, ____, logistic])
Modifier et exécuter le code