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

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

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

  • bigrams: ลำดับของคำต่อเนื่องกัน 2 คำ
  • trigrams: ลำดับของคำต่อเนื่องกัน 3 คำ

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

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

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

ดูคอร์ส

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

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

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

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

# 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.____)
แก้ไขและรันโค้ด