ComeçarComece de graça

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

Ver curso

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)
Editar e executar o código