เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Stopwords และการแฮช

ขั้นตอนต่อไปคือการลบ stopwords แล้วนำ hashing trick มาใช้ จากนั้นแปลงผลลัพธ์ให้เป็น TF-IDF

ทบทวนแนวคิดเหล่านี้โดยสังเขป:

  • Hashing trick เป็นวิธีที่รวดเร็วและประหยัดพื้นที่ในการแมปชุดข้อมูลขนาดใหญ่มาก (ซึ่งอาจไม่จำกัดจำนวน ในที่นี้คือคำทั้งหมดในข้อความ SMS) ให้กลายเป็นชุดค่าที่มีขนาดเล็กลงและมีจำนวนจำกัด
  • เมทริกซ์ TF-IDF สะท้อนความสำคัญของคำแต่ละคำในแต่ละเอกสาร โดยคำนึงถึงทั้งความถี่ของคำในเอกสารนั้น และความถี่ของคำในเอกสารทั้งหมดในชุดข้อมูล

ข้อมูล SMS ที่ผ่านการ tokenize แล้วถูกเก็บไว้ใน sms ในคอลัมน์ชื่อ words โดยได้ปรับปรุงการจัดการช่องว่างในข้อมูลแล้ว เพื่อให้ข้อความที่ผ่านการ tokenize มีความเป็นระเบียบมากขึ้น

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Machine Learning with PySpark

ดูคอร์ส

คำแนะนำการฝึกหัด

  • นำเข้าคลาส StopWordsRemover, HashingTF และ IDF
  • สร้างออบเจกต์ StopWordsRemover (คอลัมน์อินพุต words คอลัมน์เอาต์พุต terms) แล้วนำไปใช้กับ sms
  • สร้างออบเจกต์ HashingTF (อินพุตมาจากขั้นตอนก่อนหน้า คอลัมน์เอาต์พุต hash) แล้วนำไปใช้กับ wrangled
  • สร้างออบเจกต์ IDF (อินพุตมาจากขั้นตอนก่อนหน้า คอลัมน์เอาต์พุต features) แล้วนำไปใช้กับ wrangled

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

from pyspark.ml.____ import ____, ____, ____

# Remove stopwords
wrangled = ____(inputCol=____, outputCol=____)\
      .____(sms)

# Apply the hashing trick
wrangled = ____(____, ____, numFeatures=1024)\
      .____(wrangled)

# Convert hashed symbols to TF-IDF
tf_idf = ____(____, ____)\
      .____(wrangled).____(wrangled)
      
tf_idf.select('terms', 'features').show(4, truncate=False)
แก้ไขและรันโค้ด