vectorizer = CountVectorizer() #構(gòu)建一個計算詞頻(TF)的玩意兒琳钉,當(dāng)然這里面不足是可以做這些
transformer = TfidfTransformer() #構(gòu)建一個計算TF-IDF的玩意兒
TfidfTransformer + CountVectorizer = TfidfVectorizer
TF-IDF相關(guān)資料http://www.ruanyifeng.com/blog/2013/03/tf-idf.html
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer(stop_words='english', ngram_range=(1, 1),
analyzer='word', max_df=.57, binary=False,
token_pattern=r"\w+",sublinear_tf=False)
stop_words:string {'english'}, list, or None(default)如果未english达址,用于英語內(nèi)建的停用詞列表车伞,如果未list框仔,該列表被假定為包含停用詞碰镜,列表中的所有詞都將從令牌中刪除, 如果None,不使用停用詞琼懊。max_df可以被設(shè)置為范圍[0.7, 1.0)的值,基于內(nèi)部預(yù)料詞頻來自動檢測和過濾停用詞爬早。
ngram_range(min,max):是指將text分成min哼丈,min+1,min+2,.........max 個不同的詞組筛严。比如'Python is useful'中ngram_range(1,3)之后可得到'Python' 'is' 'useful' 'Python is' 'is useful' 和'Python is useful'如果是ngram_range (1,1) 則只能得到單個單詞'Python' 'is'和'useful'
analyzer:string醉旦,{'word', 'char'} or callable定義特征為詞(word)或n-gram字符
max_df: float in range [0.0, 1.0] or int, optional, 1.0 by default當(dāng)構(gòu)建詞匯表時,嚴(yán)格忽略高于給出閾值的文檔頻率的詞條,語料指定的停用詞车胡。如果是浮點值檬输,該參數(shù)代表文檔的比例,整型絕對計數(shù)值匈棘,如果詞匯表不為None丧慈,此參數(shù)被忽略。
binary:boolean主卫, False by default
如果為True逃默,所有非零計數(shù)被設(shè)置為1,這對于離散概率模型是有用的队秩,建立二元事件模型笑旺,而不是整型計數(shù)。
token_pattern: 正則表達(dá)式顯示了”token“的構(gòu)成馍资,僅當(dāng)analyzer == ‘word’時才被使用。
sublinear_tf:boolean关噪, optional應(yīng)用線性縮放TF鸟蟹,例如,使用1+log(tf)覆蓋tf