Puntuación, números y fichas
Al final del capítulo anterior cargaste un conjunto de datos de mensajes SMS que habían sido etiquetados como "spam" (etiqueta 1
) o "jamón" (etiqueta 0
). Ahora vas a utilizar esos datos para construir un modelo clasificador.
Pero primero tendrás que preparar los mensajes SMS como se indica a continuación:
- eliminar la puntuación y los números
- tokenizar (dividir en palabras individuales)
- eliminar palabras vacías
- aplica el truco del hashing
- convertir a representación TF-IDF.
En este ejercicio eliminarás los signos de puntuación y los números, y luego tokenizarás los mensajes.
Los datos de los SMS están disponibles en sms
.
Este ejercicio forma parte del curso
Machine learning con PySpark
Instrucciones de ejercicio
- Importa la función para sustituir expresiones regulares y la función para tokenizar.
- Sustituye todos los caracteres de puntuación de la columna
text
por un espacio. Haz lo mismo con todos los números de la columnatext
. - Divide la columna
text
en fichas. Nombra la columna de salidawords
.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este 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)