ComenzarEmpieza gratis

Método hash y LabelPoint

Tras dividir los mensajes de correo electrónico en palabras, nuestros conjuntos de datos sin procesar "spam" y "non-spam" están formados actualmente por mensajes de 1 línea. Para clasificar estos mensajes, debemos convertir texto en características.

En la segunda parte del ejercicio, crearás primero una instancia de HashingTF() para asignar texto a vectores de 200 características. A continuación, dividirás cada mensaje de los archivos "spam" y "non-spam" en palabras y asignarás cada palabra a una característica. Estas son las características que se utilizarán para decidir si un mensaje es "spam" o "non-spam". A continuación, crearás etiquetas para las características. Para un mensaje válido, la etiqueta será 0 (es decir, el mensaje no es spam) y para un mensaje "spam", la etiqueta será 1 (es decir, el mensaje es spam). Por último, combinarás ambos conjuntos de datos etiquetados.

Recuerda que tienes sc de SparkContext disponible en tu espacio de trabajo. Las variables spam_words y non_spam_words también están ya disponibles en tu espacio de trabajo.

Este ejercicio forma parte del curso

Fundamentos de big data con PySpark

Ver curso

Instrucciones de ejercicio

  • Crea una instancia de HashingTF() para asignar texto de correo electrónico a vectores de 200 características.
  • Cada mensaje de los conjuntos de datos "spam" y "non-spam" se divide en palabras, y cada palabra se asigna a una característica.
  • Etiqueta las características: 1 para spam, 0 para no spam.
  • Combina las muestras de spam y no spam en un único conjunto de datos.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# Create a HashingTF instance with 200 features
tf = ____(numFeatures=200)

# Map each word to one feature
spam_features = tf.____(spam_words)
non_spam_features = tf.____(____)

# Label the features: 1 for spam, 0 for non-spam
spam_samples = spam_features.map(lambda features:LabeledPoint(____, features))
non_spam_samples = non_spam_features.map(lambda features:_____(____, features))

# Combine the two datasets
samples = spam_samples.____(non_spam_samples)
Editar y ejecutar código