Zacznij terazZacznij za darmo

Haszowanie cech i LabeledPoint

Po podzieleniu wiadomości e-mail na słowa nasze zbiory danych „spam" i „nie-spam" składają się z wiadomości jednowierszowych. Aby sklasyfikować te wiadomości, musimy przekształcić tekst w cechy.

W drugiej części ćwiczenia najpierw utworzysz instancję HashingTF(), która odwzoruje tekst na wektory 200 cech. Następnie dla każdej wiadomości ze zbiorów „spam" i „nie-spam" podzielisz ją na słowa i zmapujesz każde słowo na jedną cechę. To właśnie te cechy posłużą do określenia, czy dana wiadomość jest spamem, czy nie. Potem dodasz etykiety do cech: dla prawidłowej wiadomości etykieta wynosi 0 (czyli wiadomość nie jest spamem), a dla wiadomości będącej spamem – 1. Na koniec połączysz oba oetykietowane zbiory danych.

Pamiętaj, że w swoim środowisku masz dostępny SparkContext sc. Zmienne spam_words i non_spam_words są już dostępne w twoim środowisku.

To ćwiczenie jest częścią kursu

Podstawy Big Data z PySpark

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz instancję HashingTF(), która odwzoruje tekst wiadomości e-mail na wektory 200 cech.
  • Podziel każdą wiadomość ze zbiorów „spam" i „nie-spam" na słowa i zmapuj każde słowo na jedną cechę.
  • Nadaj etykiety cechom: 1 dla spamu, 0 dla wiadomości nie będącej spamem.
  • Połącz próbki spamu i nie-spamu w jeden zbiór danych.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod