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
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])