Pontuação, números e tokens
No final do capítulo anterior, você carregou um conjunto de dados de SMS mensagens que foram rotuladas como "spam" (rótulo 1
) ou "ham" (rótulo 0
). Agora você usará esses dados para criar um modelo de classificador.
Mas primeiro você precisará preparar as mensagens do SMS da seguinte forma:
- remover pontuação e números
- tokenizar (dividir em palavras individuais)
- remover palavras de parada
- aplicar o truque de hashing
- converter para TF-IDF representação.
Neste exercício, você removerá a pontuação e os números e, em seguida, tokenizará as mensagens.
Os dados do site SMS estão disponíveis em sms
.
Este exercício faz parte do curso
Aprendizado de máquina com PySpark
Instruções de exercício
- Importe a função para substituir as expressões regulares e o recurso para tokenizar.
- Substitua todos os caracteres de pontuação da coluna
text
por um espaço. Faça o mesmo com todos os números da colunatext
. - Divida a coluna
text
em tokens. Nomeie a coluna de saída comowords
.
Exercício interativo prático
Experimente este exercício preenchendo 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)