Canalización de spam SMS
Hace tiempo que no miras los datos de los SMS. La última vez hicimos lo siguiente
- divide el texto en tokens
- eliminar palabras vacías
- aplicó el truco del hashing
- convirtió los datos de recuentos a IDF y
- entrenó un modelo de regresión logística.
Cada uno de estos pasos se realizó de forma independiente. ¡Esto parece una gran aplicación para una tubería!
Las clases Pipeline
y LogisticRegression
ya se han importado a la sesión, ¡así que no tienes que preocuparte por eso!
Este ejercicio forma parte del curso
Machine learning con PySpark
Instrucciones de ejercicio
- Crea un objeto para dividir texto en tokens.
- Crea un objeto para eliminar las palabras vacías. En lugar de dar explícitamente el nombre de la columna de entrada, utiliza el método
getOutputCol()
en el objeto anterior. - Crea objetos para aplicar el truco de hashing y transformar los datos en un TF-IDF. Utiliza de nuevo el método
getOutputCol()
. - Crea una canalización que englobe todos los pasos anteriores, así como un objeto para crear un modelo de Regresión Logística.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
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])