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

Tf-idf

การนับจำนวนครั้งที่คำปรากฏในข้อความอาจเป็นประโยชน์สำหรับการสร้างโมเดล แต่คำที่ปรากฏบ่อยมากอาจทำให้ผลลัพธ์เบี่ยงเบนไปในทิศทางที่ไม่ต้องการ วิธีหนึ่งที่ช่วยลดอิทธิพลของคำเหล่านี้คือการใช้การ normalize ข้อมูล ในบทเรียนนี้จะใช้ Term frequency-inverse document frequency (Tf-idf) ตามที่ได้อธิบายไว้ในวิดีโอ Tf-idf จะลดค่าน้ำหนักของคำที่พบบ่อย ในขณะเดียวกันก็เพิ่มน้ำหนักให้กับคำที่ปรากฏในเอกสารน้อยกว่า

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

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

ดูคอร์ส

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

  • นำเข้า TfidfVectorizer จาก sklearn.feature_extraction.text
  • สร้าง TfidfVectorizer โดยกำหนดจำนวน feature สูงสุดไว้ที่ 100 และตัด stop words ภาษาอังกฤษออก
  • Fit และนำ vectorizer ไปใช้กับคอลัมน์ text_clean ในขั้นตอนเดียว
  • สร้าง DataFrame ชื่อ tv_df ที่บรรจุค่าน้ำหนักของคำและใช้ชื่อ feature เป็นชื่อคอลัมน์

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

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

# Import TfidfVectorizer
____

# Instantiate TfidfVectorizer
tv = ____

# Fit the vectroizer and transform the data
tv_transformed = ____(speech_df['text_clean'])

# Create a DataFrame with these features
tv_df = pd.DataFrame(tv_transformed.____, 
                     columns=tv.____).add_prefix('TFIDF_')
print(tv_df.head())
แก้ไขและรันโค้ด