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

จำกัดจำนวน Feature

อย่างที่เห็นกัน การใช้ CountVectorizer ด้วยค่าเริ่มต้นจะสร้าง feature สำหรับทุกคำใน corpus ซึ่งอาจทำให้ได้ feature มากเกินไป และหลายคำก็ไม่ได้มีคุณค่าเชิงวิเคราะห์เลย

เพื่อแก้ปัญหานี้ CountVectorizer มีพารามิเตอร์สำหรับลดจำนวน feature ดังนี้

  • min_df : ใช้เฉพาะคำที่ปรากฏในเอกสารมากกว่าเปอร์เซ็นต์ที่กำหนด ช่วยกำจัดคำที่พบน้อยเกินไปและไม่สามารถนำไปใช้ได้ทั่วไป
  • max_df : ใช้เฉพาะคำที่ปรากฏในเอกสารน้อยกว่าเปอร์เซ็นต์ที่กำหนด ช่วยตัดคำที่พบบ่อยมากจนไม่เพิ่มคุณค่า เช่น "and" หรือ "the"

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

Feature Engineering สำหรับ Machine Learning ใน Python

ดูคอร์ส

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

  • จำกัดจำนวน feature ใน CountVectorizer โดยกำหนดให้คำต้องปรากฏในเอกสารขั้นต่ำ 20% และสูงสุด 80%
  • Fit และนำ vectorizer ไปใช้กับคอลัมน์ text_clean ในขั้นตอนเดียว
  • แปลง array แบบ sparse ที่ได้เป็น numpy array ที่มีค่าการนับ
  • แสดงขนาด (dimensions) ของ array ที่ลดขนาดแล้ว

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

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

# Import CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer

# Specify arguements to limit the number of features generated
cv = ____

# Fit, transform, and convert into array
cv_transformed = ____(speech_df['text_clean'])
cv_array = ____

# Print the array shape
print(____)
แก้ไขและรันโค้ด