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