Pipeline spam SMS
Sudah cukup lama Anda tidak melihat data SMS. Terakhir kali kita melakukan hal-hal berikut:
- membagi teks menjadi token
- menghapus stop word
- menerapkan hashing trick
- mengonversi data dari hitungan ke IDF dan
- melatih model logistic regression.
Setiap langkah tersebut dilakukan secara terpisah. Ini tampaknya merupakan kasus yang sangat tepat untuk sebuah pipeline!
Kelas Pipeline dan LogisticRegression sudah diimpor ke sesi, jadi Anda tidak perlu khawatir tentang itu!
Latihan ini adalah bagian dari kursus
Machine Learning dengan PySpark
Petunjuk latihan
- Buat objek untuk membagi teks menjadi token.
- Buat objek untuk menghapus stop word. Alih-alih menyebutkan nama kolom masukan secara eksplisit, gunakan metode
getOutputCol()pada objek sebelumnya. - Buat objek untuk menerapkan hashing trick dan mentransformasikan data menjadi TF-IDF. Gunakan metode
getOutputCol()lagi. - Buat sebuah pipeline yang membungkus semua langkah di atas serta sebuah objek untuk membuat model Logistic Regression.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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])