Noktalama işaretleri, sayılar ve belirteçler
Önceki bölümün sonunda, "spam" (etiket 1) veya "ham" (etiket 0) olarak etiketlenmiş bir SMS veri kümesini yüklemiştin. Şimdi bu verileri kullanarak bir sınıflandırıcı model oluşturacaksın.
Ama önce SMS mesajlarını şu şekilde hazırlaman gerekiyor:
- noktalama işaretlerini ve sayıları kaldır
- belirteçle (tek tek kelimelere ayır)
- stop words kaldır
- hashing trick uygula
- TF-IDF temsiline dönüştür.
Bu egzersizde noktalama işaretlerini ve sayıları kaldıracak, ardından mesajları belirteçleyeceksin.
SMS verileri sms olarak mevcut.
Bu egzersiz
PySpark ile Machine Learning
kursunun bir parçasıdırEgzersiz talimatları
- Düzenli ifadeleri değiştirme fonksiyonunu ve belirteçleme özelliğini içe aktar.
textsütunundaki tüm noktalama karakterlerini bir boşlukla değiştir.textsütunundaki tüm sayılar için de aynı işlemi yap.textsütununu belirteçlere ayır. Çıktı sütununun adıwordsolsun.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Import the necessary functions
from pyspark.sql.functions import ____
from pyspark.ml.feature import ____
# Remove punctuation (REGEX provided) and numbers
wrangled = sms.withColumn('text', ____(sms.text, '[_():;,.!?\\-]', ____))
wrangled = wrangled.withColumn(____, ____(____, ____, ____))
# Merge multiple spaces
wrangled = wrangled.withColumn('text', regexp_replace(wrangled.text, ' +', ' '))
# Split the text into words
wrangled = ____(inputCol='text', outputCol=____).____(wrangled)
wrangled.show(4, truncate=False)