簡體   English   中英

在Scikit中進行文本分類時是否需要標准化數據

[英]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"]

  1. Matrix = Countvectorizer (XData) 矩陣將包含所有文檔中每個單詞的計數。 所以Matrix [i] [j]會給我文件i中單詞j計數

  2. Matrix_idfX = TFIDFVectorizer(Matrix) 它將標准化分數。

  3. Matrix_idfX_Select = SelectKBest( Matrix_IdfX , 500) 它將減少矩陣到500個最佳分數列

  4. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM