จำกัดจำนวน 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(____)