CommencerCommencer gratuitement

Pipeline de spam SMS

Vous n'avez pas consulté les données SMS depuis un certain temps. La dernière fois, nous avons effectué les opérations suivantes :

  • diviser le texte en tokens
  • mots vides supprimés
  • a appliqué l'astuce du hachage
  • converti les données de comptage en IDF et
  • Nous avons formé un modèle de régression logistique.

Chacune de ces étapes a été réalisée de manière indépendante. 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 soucier.

Cet exercice fait partie du cours

Apprentissage automatique avec PySpark

Afficher le cours

Instructions

  • Créez un objet permettant de diviser le texte en tokens.
  • Créer un objet pour supprimer les mots vides. Au lieu d'indiquer explicitement le nom de la colonne d'entrée, veuillez utiliser la méthode getOutputCol() sur l'objet précédent.
  • Créez des objets pour appliquer la technique de hachage et transformer les données en TF-IDF. Veuillez utiliser à nouveau la méthode d'getOutputCol().
  • Veuillez créer 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