Puntuación, números y tokens
Al final del capítulo anterior, cargaste un conjunto de datos de mensajes SMS que habían sido etiquetados como «spam» (etiqueta 1
) o «ham» (etiqueta 0
). Ahora vas a utilizar esos datos para crear un modelo clasificador.
Pero primero tendrás que preparar los mensajes SMS de la siguiente manera:
- eliminar puntuación y números
- tokenizar (dividir en palabras individuales)
- eliminar palabras vacías
- aplicar el truco del hash
- convertir a representación TF-IDF.
En este ejercicio eliminarás la puntuación y los números, y luego tokenizarás los mensajes.
Los datos SMS están disponibles en sms
.
Este ejercicio forma parte del curso
Machine learning con PySpark
Instrucciones del ejercicio
- Importa la función para reemplazar expresiones regulares y la función para tokenizar.
- Reemplaza todos los caracteres de puntuación de la columna «
text
» por un espacio. Haz lo mismo con todos los números de la columna «text
». - Divide la columna «
text
» en tokens. Nombra la columna de salida «words
».
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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)