Zacznij terazZacznij za darmo

Pipeline do wykrywania spamu SMS

Dane SMS nie były przez chwilę w centrum uwagi. Ostatnio wykonaliśmy na nich następujące kroki:

  • podział tekstu na tokeny,
  • usunięcie stop słów,
  • zastosowanie techniki hashowania,
  • przekształcenie danych z liczby wystąpień na wartości TF-IDF,
  • wytrenowanie modelu regresji logistycznej.

Każdy z tych kroków był wykonywany osobno. To świetny przykład zastosowania pipeline'u!

Klasy Pipeline i LogisticRegression zostały już zaimportowane do sesji, więc nie musisz się tym przejmować.

To ćwiczenie jest częścią kursu

Uczenie maszynowe z PySpark

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz obiekt do podziału tekstu na tokeny.
  • Utwórz obiekt do usuwania stop słów. Zamiast podawać nazwę kolumny wejściowej wprost, użyj metody getOutputCol() na poprzednim obiekcie.
  • Utwórz obiekty do zastosowania techniki hashowania i przekształcenia danych do postaci TF-IDF. Ponownie skorzystaj z metody getOutputCol().
  • Utwórz pipeline, który połączy wszystkie powyższe kroki oraz obiekt budujący model regresji logistycznej.

Interaktywne ćwiczenie praktyczne

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

from pyspark.ml.feature import Tokenizer, StopWordsRemover, HashingTF, IDF

# Break text into tokens at non-word characters
tokenizer = ____(inputCol='text', outputCol='words')

# Remove stop words
remover = ____(inputCol=____, outputCol='terms')

# Apply the hashing trick and transform to TF-IDF
hasher = ____(inputCol=____, outputCol="hash")
idf = ____(inputCol=____, outputCol="features")

# Create a logistic regression object and add everything to a pipeline
logistic = LogisticRegression()
pipeline = Pipeline(stages=[____, ____, ____, ____, logistic])
Edytuj i uruchom kod