開始使用免費開始

使用較長的 n-gram

到目前為止,你是基於每段文字中的單字來建立特徵。這在機器學習模型中相當有用,不過你可能會擔心只看單字會忽略許多語境。為了在建立模型時兼顧語境,你可以使用 n-gram,也就是把連續的 n 個單字視為一個序列。例子如下:

  • bigram:兩個連續單字所組成的序列
  • trigram:三個連續單字所組成的序列

在你的資料集中,可以透過將 ngram_range 參數指定為 (n1, n2) 這樣的 tuple,來自動建立這些特徵;其中會包含從 n1n2 的所有 n-gram。

本練習屬於課程

Feature Engineering for Machine Learning in Python

檢視課程

練習說明

  • sklearn.feature_extraction.text 匯入 CountVectorizer
  • 建立 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.____)
編輯並執行程式碼