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ê usará esses dados para criar um modelo de classificador.

Mas primeiro você precisará preparar as mensagens 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 a representação TF-IDF.

Neste exercício, você removerá a pontuação e os números e, em seguida, tokenizará as mensagens.

Os dados de 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

  • 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 coluna text.
  • Divida a coluna text em tokens. Nomeie a coluna de saída como words.

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