Stopwords y hashing
Los siguientes pasos serán eliminar stopwords y luego aplicar el truco del hashing, convirtiendo los resultados en un TF-IDF.
Un recordatorio rápido sobre estos conceptos:
- El truco del hashing proporciona una forma rápida y eficiente en términos de espacio de mapear un conjunto muy grande (posiblemente infinito) de elementos (en este caso, todas las palabras contenidas en los mensajes SMS) en un número más pequeño y finito de valores.
- La matriz TF-IDF refleja la importancia de una palabra en cada documento. Tiene en cuenta tanto la frecuencia de la palabra dentro de cada documento como la frecuencia de la palabra en todos los documentos de la colección.
Los datos SMS tokenizados se almacenan en sms en una columna llamada words. Has limpiado el tratamiento de los espacios en los datos para que el texto tokenizado quede más ordenado.
Este ejercicio forma parte del curso
Machine learning con PySpark
Instrucciones del ejercicio
- Importa las clases
StopWordsRemover,HashingTFyIDF. - Crea un objeto
StopWordsRemover(columna de entradawords, columna de salidaterms). Inscríbete ensms. - Crea un objeto
HashingTF(resultados de entrada del paso anterior, columna de salidahash). Inscríbete enwrangled. - Crea un objeto
IDF(resultados de entrada del paso anterior, columna de salidafeatures). Inscríbete enwrangled.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
from pyspark.ml.____ import ____, ____, ____
# Remove stopwords
wrangled = ____(inputCol=____, outputCol=____)\
.____(sms)
# Apply the hashing trick
wrangled = ____(____, ____, numFeatures=1024)\
.____(wrangled)
# Convert hashed symbols to TF-IDF
tf_idf = ____(____, ____)\
.____(wrangled).____(wrangled)
tf_idf.select('terms', 'features').show(4, truncate=False)