vectorizer = CountVectorizer() #構建一個計算詞頻(TF)的玩意兒,固然這裏面不足是能夠作這些
transformer = TfidfTransformer() #構建一個計算TF-IDF的玩意兒
tfidf = transformer.fit_transform(vectorizer.fit_transform(corpus))
#vectorizer.fit_transform(corpus)將文本corpus輸入,獲得詞頻矩陣
#將這個矩陣做爲輸入,用transformer.fit_transform(詞頻矩陣)獲得TF-IDF權重矩陣
TfidfTransformer + CountVectorizer = TfidfVectorizer
值得注意的是,CountVectorizer()和TfidfVectorizer()裏面都有一個成員叫作vocabulary_(後面帶一個下劃線)
這個成員的意義是詞典索引,對應的是TF-IDF權重矩陣的列,只不過一個是私有成員,一個是外部輸入,原則上應該保持一致。
vectorizer = TfidfVectorizer(stop_words=stpwrdlst, sublinear_tf = True, max_df = 0.5)
關於參數:
input:string{'filename', 'file', 'content'}
若是是'filename',序列做爲參數傳遞給擬合器,預計爲文件名列表,這須要讀取原始內容進行分析
若是是'file',序列項目必須有一個」read「的方法(相似文件的對象),被調用做爲獲取內存中的字節數
不然,輸入預計爲序列串,或字節數據項都預計可直接進行分析。
encoding:string, ‘utf-8’by default
若是給出要解析的字節或文件,此編碼將用於解碼
decode_error: {'strict', 'ignore', 'replace'}
若是一個給出的字節序列包含的字符不是給定的編碼,指示應該如何去作。默認狀況下,它是'strict',這意味着的UnicodeDecodeError將提升,其餘值是'ignore'和'replace'
strip_accents: {'ascii', 'unicode', None}
在預處理步驟中去除編碼規則(accents),」ASCII碼「是一種快速的方法,僅適用於有一個直接的ASCII字符映射,"unicode"是一個稍慢一些的方法,None(默認)什麼都不作
analyzer:string,{'word', 'char'} or callable
定義特徵爲詞(word)或n-gram字符,若是傳遞給它的調用被用於抽取未處理輸入源文件的特徵序列
preprocessor:callable or None(default)
當保留令牌和」n-gram「生成步驟時,覆蓋預處理(字符串變換)的階段
tokenizer:callable or None(default)
當保留預處理和n-gram生成步驟時,覆蓋字符串令牌步驟
ngram_range: tuple(min_n, max_n)
要提取的n-gram的n-values的下限和上限範圍,在min_n <= n <= max_n區間的n的所有值
stop_words:string {'english'}, list, or None(default)
若是未english,用於英語內建的停用詞列表
若是未list,該列表被假定爲包含停用詞,列表中的全部詞都將從令牌中刪除
若是None,不使用停用詞。max_df能夠被設置爲範圍[0.7, 1.0)的值,基於內部預料詞頻來自動檢測和過濾停用詞
lowercase:boolean, default True
在令牌標記前轉換全部的字符爲小寫
token_pattern:string
正則表達式顯示了」token「的構成,僅當analyzer == ‘word’時才被使用。兩個或多個字母數字字符的正則表達式(標點符號徹底被忽略,始終被視爲一個標記分隔符)。
max_df: float in range [0.0, 1.0] or int, optional, 1.0 by default
當構建詞彙表時,嚴格忽略高於給出閾值的文檔頻率的詞條,語料指定的停用詞。若是是浮點值,該參數表明文檔的比例,整型絕對計數值,若是詞彙表不爲None,此參數被忽略。
min_df:float in range [0.0, 1.0] or int, optional, 1.0 by default
當構建詞彙表時,嚴格忽略低於給出閾值的文檔頻率的詞條,語料指定的停用詞。若是是浮點值,該參數表明文檔的比例,整型絕對計數值,若是詞彙表不爲None,此參數被忽略。
max_features: optional, None by default
若是不爲None,構建一個詞彙表,僅考慮max_features--按語料詞頻排序,若是詞彙表不爲None,這個參數被忽略
vocabulary:Mapping or iterable, optional
也是一個映射(Map)(例如,字典),其中鍵是詞條而值是在特徵矩陣中索引,或詞條中的迭代器。若是沒有給出,詞彙表被肯定來自輸入文件。在映射中索引不能有重複,而且不能在0到最大索引值之間有間斷。
binary:boolean, False by default
若是未True,全部非零計數被設置爲1,這對於離散機率模型是有用的,創建二元事件模型,而不是整型計數
dtype:type, optional
經過fit_transform()或transform()返回矩陣的類型
norm:'l1', 'l2', or None,optional
範數用於標準化詞條向量。None爲不歸一化
use_idf:boolean, optional
啓動inverse-document-frequency從新計算權重
smooth_idf:boolean,optional
經過加1到文檔頻率平滑idf權重,爲防止除零,加入一個額外的文檔
sublinear_tf:boolean, optional
應用線性縮放TF,例如,使用1+log(tf)覆蓋tf
正則表達式