ПочатиПочніть безкоштовно

Конвеєр для SMS-спаму

Ви вже певний час не працювали з даними SMS. Востаннє ми зробили таке:

  • розбили текст на токени
  • видалили стоп-слова
  • застосували «хешування ознак» (hashing trick)
  • перетворили дані з лічильників на IDF і
  • натренували модель логістичної регресії.

Кожен із цих кроків виконувався окремо. Це виглядає як чудовий випадок для конвеєра!

Класи Pipeline і LogisticRegression уже імпортовано в середовище, тож про це можете не турбуватися!

Ця вправа є частиною курсу

Machine Learning з PySpark

Переглянути курс

Інструкції до вправи

  • Створіть об'єкт для розбиття тексту на токени.
  • Створіть об'єкт для видалення стоп-слів. Замість явного зазначення назви вхідного стовпця скористайтеся методом getOutputCol() на попередньому об'єкті.
  • Створіть об'єкти для застосування «хешування ознак» і перетворення даних у TF-IDF. Знову використайте метод getOutputCol().
  • Створіть конвеєр, який об'єднує всі кроки вище, а також об'єкт для створення моделі Logistic Regression.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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])
Редагувати та запускати код