[英]Do I need to standardize data when doing text classification in Scikit
我正在使用Scikit.
開發垃圾郵件過濾器Scikit.
這是我遵循的步驟:
Xdata = ["This is spam" , "This is Ham" , "This is spam again"]
Matrix
= Countvectorizer (XData)
。 矩陣將包含所有文檔中每個單詞的計數。 所以Matrix [i] [j]會給我文件i
中單詞j
計數
Matrix_idfX
= TFIDFVectorizer(Matrix)
。 它將標准化分數。
Matrix_idfX_Select
= SelectKBest( Matrix_IdfX , 500)
。 它將減少矩陣到500個最佳分數列
Multinomial.train( Matrix_Idfx_Select)
現在是我的問題,是否需要通過上述四個步驟中的任何一個執行標准化或標准化 ? 如果是,那么在哪一步之后為什么?
謝謝
您可能需要在標記化(詞干或詞根化)之前對單詞進行標准化。 例如,請參閱相關問題 。
注意:您不需要,因為“ TfidfVectorizer在單個模型中結合了CountVectorizer和TfidfTransformer的所有選項”( scikit docs )還請注意,“雖然tf–idf歸一化通常非常有用,但在某些情況下,二進制發生標記可能提供更好的功能,這可以通過使用CountVectorizer的二進制參數來實現,尤其是某些估算器(例如Bernoulli Naive Bayes)可以顯式地對離散的布爾型隨機變量進行建模;而且,很短的文本可能會有嘈雜的tf–idf值,而二進制出現信息更加穩定。” (相同的文檔)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.