Pipeline pour pourriels SMS
Vous n'avez pas consulté les données SMS depuis un bon moment. La dernière fois, nous avons :
- découpé le texte en jetons (tokens)
- retiré les mots vides (stop words)
- appliqué la technique de hachage (hashing trick)
- converti les données des comptes vers l'IDF et
- entraîné un modèle de régression logistique.
Chacune de ces étapes a été effectuée indépendamment. Ça semble être un excellent cas d'utilisation pour un pipeline!
Les classes Pipeline et LogisticRegression ont déjà été importées dans la session, donc vous n'avez pas à vous en préoccuper!
Cette activité fait partie du cours
Machine Learning avec PySpark
Instructions de l’exercice
- Créez un objet pour découper le texte en jetons (tokens).
- Créez un objet pour retirer 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 la technique de hachage et transformer les données en TF‑IDF. Utilisez encore la méthode
getOutputCol(). - Créez un pipeline qui encapsule 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 ce code d’exemple.
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])