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 del 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
Prueba este ejercicio y completa el 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])