ComeçarComece gratuitamente

Hash de recursos e LabelPoint

Depois de dividir os e-mails em palavras, nossos conjuntos de dados brutos "spam" e "non-spam" são atualmente compostos de mensagens de uma linha. Para classificar essas mensagens, precisamos converter o texto em recursos.

Na segunda parte do exercício, você primeiro criará uma instância do HashingTF() para mapear o texto para vetores de 200 recursos. Em seguida, para cada mensagem nos arquivos "spam" e "non-spam", você as dividirá em palavras e mapeará cada palavra para um recurso. Esses são os recursos que serão usados para decidir se uma mensagem é "spam" ou "non-spam". Em seguida, você criará rótulos para os recursos. Para uma mensagem válida, o rótulo será 0 (ou seja, a mensagem não é spam) e para uma mensagem de "spam", o rótulo será 1 (ou seja, a mensagem é spam). Por fim, você combinará os dois conjuntos de dados rotulados.

Lembre-se de que você tem um SparkContext sc disponível em seu espaço de trabalho. Além disso, as variáveis spam_words e non_spam_words já estão disponíveis em seu espaço de trabalho.

Este exercício faz parte do curso

Fundamentos de Big Data com PySpark

Ver Curso

Instruções de exercício

  • Crie uma instância do HashingTF() para mapear o texto do e-mail para vetores de 200 recursos.
  • Cada mensagem nos conjuntos de dados "spam" e "non-spam" é dividida em palavras, e cada palavra é mapeada para um recurso.
  • Identifique os recursos: 1 para spam, 0 para non-spam.
  • Combine as amostras de spam e non-spam em um único conjunto de dados.

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

# 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 e executar código