Canal de spam por SMS
No has consultado los datos SMS desde hace bastante tiempo. La última vez hicimos lo siguiente:
- dividir el texto en tokens
- palabras vacías eliminadas
- aplicaste el truco del hash
- convertí 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. ¡Parece una aplicación estupenda 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 el texto en tokens.
- Crea un objeto para eliminar palabras vacías. En lugar de indicar 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 hash y transformar los datos en TF-IDF. Vuelve a utilizar 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])