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

การใช้ n-gram ที่ยาวขึ้น

จนถึงตอนนี้คุณได้สร้างฟีเจอร์โดยอิงจากคำแต่ละคำในแต่ละข้อความ วิธีนี้อาจมีประสิทธิภาพมากเมื่อนำไปใช้ในโมเดลการเรียนรู้ของเครื่อง แต่ก็อาจกังวลได้ว่าการพิจารณาคำทีละคำจะทำให้บริบทจำนวนมากถูกละเลยไป เพื่อแก้ปัญหานี้เมื่อสร้างโมเดล คุณสามารถใช้ n-gram ซึ่งเป็นลำดับของคำจำนวน n คำที่จัดกลุ่มเข้าด้วยกัน ตัวอย่างเช่น

  • bigram: ลำดับของคำสองคำที่เรียงต่อกัน
  • trigram: ลำดับของคำสามคำที่เรียงต่อกัน

คุณสามารถสร้าง n-gram เหล่านี้ในชุดข้อมูลได้โดยอัตโนมัติ โดยระบุอาร์กิวเมนต์ ngram_range เป็นทูเพิล (n1, n2) ซึ่งจะรวม n-gram ทั้งหมดที่อยู่ในช่วงตั้งแต่ n1 ถึง n2

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

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

ดูคอร์ส

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

  • นำเข้า CountVectorizer จาก sklearn.feature_extraction.text
  • สร้างอินสแตนซ์ของ CountVectorizer โดยพิจารณาเฉพาะ trigram เท่านั้น
  • ฟิตตัวแปลงข้อมูลและนำไปใช้กับคอลัมน์ text_clean ในขั้นตอนเดียว
  • พิมพ์ชื่อฟีเจอร์ที่ตัวแปลงข้อมูลสร้างขึ้น

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

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

# Import CountVectorizer
from sklearn.feature_extraction.text import ____

# Instantiate a trigram vectorizer
cv_trigram_vec = CountVectorizer(max_features=100, 
                                 stop_words='english', 
                                 ____)

# Fit and apply trigram vectorizer
cv_trigram = ____(speech_df['text_clean'])

# Print the trigram features
print(cv_trigram_vec.____)
แก้ไขและรันโค้ด