เครื่องหมายวรรคตอน ตัวเลข และ Token
ในตอนท้ายของบทที่แล้ว คุณได้โหลดชุดข้อมูลข้อความ SMS ที่ถูกติดป้ายกำกับว่าเป็น "spam" (ป้ายกำกับ 1) หรือ "ham" (ป้ายกำกับ 0) ขั้นตอนต่อไปคือนำข้อมูลเหล่านั้นมาสร้างโมเดล Classifier
แต่ก่อนอื่น ต้องเตรียมข้อความ SMS ตามขั้นตอนดังนี้:
- ลบเครื่องหมายวรรคตอนและตัวเลขออก
- แบ่ง Token (แยกเป็นคำแต่ละคำ)
- ลบ Stop Word ออก
- ใช้เทคนิค Hashing
- แปลงเป็นรูปแบบ TF-IDF
ในแบบฝึกหัดนี้ จะลบเครื่องหมายวรรคตอนและตัวเลขออก จากนั้นแบ่ง Token ของข้อความ
ข้อมูล SMS พร้อมใช้งานในตัวแปร sms
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning with PySpark
คำแนะนำการฝึกหัด
- นำเข้าฟังก์ชันสำหรับแทนที่นิพจน์ทั่วไป และ Feature สำหรับแบ่ง Token
- แทนที่เครื่องหมายวรรคตอนทั้งหมดในคอลัมน์
textด้วยช่องว่าง แล้วทำแบบเดียวกันกับตัวเลขทั้งหมดในคอลัมน์text - แบ่งคอลัมน์
textออกเป็น Token โดยตั้งชื่อคอลัมน์ผลลัพธ์ว่าwords
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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)