Pipeline de spam de SMS
Você não tem analisado os dados de SMS há um bom tempo. Na última vez, fizemos o seguinte:
- dividir o texto em tokens
- palavras de parada removidas
- aplicou o truque de hash
- converteu os dados de contagens para IDF e
- treinou um modelo de regressão logística.
Cada uma dessas etapas foi realizada de forma independente. Esse parece ser um ótimo aplicativo para um pipeline!
As classes Pipeline e LogisticRegression já foram importadas para a sessão, portanto, você não precisa se preocupar com isso!
Este exercício faz parte do curso
Machine learning com PySpark
Instruções do exercício
- Crie um objeto para dividir o texto em tokens.
- Crie um objeto para remover palavras de parada. Em vez de fornecer explicitamente o nome da coluna de entrada, use o método
getOutputCol()no objeto anterior. - Crie objetos para aplicar o truque de hashing e transformar os dados em um TF-IDF. Use o método
getOutputCol()novamente. - Crie um pipeline que envolva todas as etapas acima, bem como um objeto para criar um modelo de regressão logística.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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])