Pontuação, números e tokens
No final do capítulo anterior, você carregou um conjunto de dados de mensagens SMS que foram rotuladas como “spam” (rótulo 1
) ou “ham” (rótulo 0
). Agora você vai usar esses dados pra criar um modelo classificador.
Mas primeiro você precisa preparar as mensagens SMS assim:
- tirar pontuação e números
- tokenizar (dividir em palavras individuais)
- tirar palavras que não fazem sentido
- usar o truque do hash
- converter para representação TF-IDF.
Neste exercício, você vai tirar pontuação e números e, depois, tokenizar as mensagens.
Os dados SMS estão disponíveis em sms
.
Este exercício faz parte do curso
Machine Learning com PySpark
Instruções do exercício
- Importa a função pra substituir expressões regulares e o recurso pra tokenizar.
- Troca todos os sinais de pontuação da coluna “
text
” por um espaço. Faça o mesmo com todos os números na coluna “text
”. - Divida a coluna “
text
” em tokens. Dê o nome “words
” à coluna de saída.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Import the necessary functions
from pyspark.sql.functions import ____
from pyspark.ml.feature import ____
# Remove punctuation (REGEX provided) and numbers
wrangled = sms.withColumn('text', ____(sms.text, '[_():;,.!?\\-]', ____))
wrangled = wrangled.withColumn(____, ____(____, ____, ____))
# Merge multiple spaces
wrangled = wrangled.withColumn('text', regexp_replace(wrangled.text, ' +', ' '))
# Split the text into words
wrangled = ____(inputCol='text', outputCol=____).____(wrangled)
wrangled.show(4, truncate=False)