本文簡要介紹python語言中 sklearn.feature_extraction.text.TfidfVectorizer
的用法。
用法:
class sklearn.feature_extraction.text.TfidfVectorizer(*, input='content', encoding='utf-8', decode_error='strict', strip_accents=None, lowercase=True, preprocessor=None, tokenizer=None, analyzer='word', stop_words=None, token_pattern='(?u)\\b\\w\\w+\\b', ngram_range=(1, 1), max_df=1.0, min_df=1, max_features=None, vocabulary=None, binary=False, dtype=<class 'numpy.float64'>, norm='l2', use_idf=True, smooth_idf=True, sublinear_tf=False)
將原始文檔集合轉換為TF-IDF 特征矩陣。
相當於
CountVectorizer
後跟TfidfTransformer
。在用戶指南中閱讀更多信息。
- input:{‘filename’, ‘file’, ‘content’},默認='內容'
- 如果
'filename'
,作為參數傳遞給 fit 的序列應該是需要讀取以獲取要分析的原始內容的文件名列表。 - 如果
'file'
,則序列項必須有一個 ‘read’ 方法(file-like 對象),該方法被調用以獲取內存中的字節。 - 如果
'content'
,則輸入應為字符串或字節類型的項目序列。
- 如果
- encoding:str,默認='utf-8'
如果要分析字節或文件,則使用此編碼進行解碼。
- decode_error:{‘strict’, ‘ignore’, ‘replace’},默認='嚴格'
如果要分析的字節序列包含不屬於給定
encoding
的字符,請說明如何處理。默認情況下,它是‘strict’,這意味著將引發UnicodeDecodeError。其他值為‘ignore’ 和‘replace’。- strip_accents:{‘ascii’, ‘unicode’},默認=無
在預處理步驟中刪除重音並執行其他字符規範化。 ‘ascii’ 是一種快速方法,僅適用於具有直接 ASCII 映射的字符。 ‘unicode’ 是一種稍慢的方法,適用於任何字符。無(默認)什麽都不做。
‘ascii’ 和 ‘unicode’ 都使用
unicodedata.normalize
的 NFKD 標準化。- lowercase:布爾,默認=真
在標記化之前將所有字符轉換為小寫。
- preprocessor:可調用,默認=無
覆蓋預處理(字符串轉換)階段,同時保留標記化和n-grams 生成步驟。僅當
analyzer
不可調用時才適用。- tokenizer:可調用,默認=無
覆蓋字符串標記化步驟,同時保留預處理和n-grams 生成步驟。僅適用於
analyzer == 'word'
。- analyzer:{‘word’, ‘char’, ‘char_wb’} 或可調用,默認='word'
特征是由單詞還是字符組成n-grams。選項 ‘char_wb’ 僅從單詞邊界內的文本創建字符 n-grams; n-grams 在單詞的邊用空格填充。
如果傳遞了一個可調用對象,則它用於從未處理的原始輸入中提取特征序列。
- stop_words:{‘english’},列表,默認=無
如果是字符串,則將其傳遞給 _check_stop_list 並返回相應的停止列表。 ‘english’ 是當前唯一支持的字符串值。 ‘english’ 有幾個已知問題,您應該考慮替代方案(請參閱使用停用詞)。
如果是列表,則假定該列表包含停用詞,所有這些都將從生成的標記中刪除。僅適用於
analyzer == 'word'
。如果沒有,將不使用停用詞。 max_df 可以設置為 [0.7, 1.0) 範圍內的值,以根據術語的語料庫文檔內頻率自動檢測和過濾停用詞。
- token_pattern:str, 默認=r”(?u)\b\w\w+\b”
表示構成 “token” 的正則表達式,僅在
analyzer == 'word'
時使用。默認的正則表達式選擇 2 個或更多字母數字字符的標記(標點符號被完全忽略並始終被視為標記分隔符)。如果 token_pattern 中有捕獲組,則捕獲的組內容,而不是整個匹配項,將成為令牌。最多允許一個捕獲組。
- ngram_range:元組 (min_n, max_n), 默認=(1, 1)
n-values範圍的上下邊界,用於提取不同的n-grams。將使用所有滿足 min_n <= n <= max_n 的 n 值。例如,
(1, 1)
的ngram_range
僅表示一元組,(1, 2)
表示一元組和二元組,而(2, 2)
表示僅二元組。僅在analyzer
不可調用時適用。- max_df:浮點數或整數,默認=1.0
在構建詞匯表時,忽略文檔頻率嚴格高於給定閾值的術語(corpus-specific 停用詞)。如果 float 在 [0.0, 1.0] 範圍內,該參數表示文檔的比例,整數絕對計數。如果詞匯表不是無,則忽略此參數。
- min_df:浮點數或整數,默認=1
在構建詞匯表時,忽略文檔頻率嚴格低於給定閾值的術語。該值在文獻中也稱為cut-off。如果 float 在 [0.0, 1.0] 範圍內,該參數表示文檔的比例,整數絕對計數。如果詞匯表不是無,則忽略此參數。
- max_features:整數,默認=無
如果不是 None,則構建一個僅考慮按語料庫中的詞頻排序的頂部 max_features 的詞匯表。
如果詞匯表不是無,則忽略此參數。
- vocabulary:映射或可迭代,默認=None
一個映射(例如,一個字典),其中鍵是術語,值是特征矩陣中的索引,或者是可迭代的術語。如果未給出,則從輸入文檔中確定詞匯表。
- binary:布爾,默認=假
如果為 True,則所有非零項計數都設置為 1。這並不意味著輸出將隻有 0/1 值,隻是 tf-idf 中的 tf 項是二進製的。 (將 idf 和規範化設置為 False 以獲得 0/1 輸出)。
- dtype:數據類型,默認=float64
fit_transform() 或 transform() 返回的矩陣類型。
- norm:{‘l1’, ‘l2’},默認='l2'
每個輸出行都有單位範數,或者:
- ‘l2’:向量元素的平方和為 1。當應用 l2 範數時,兩個向量之間的餘弦相似度是它們的點積。
- ‘l1’:向量元素的絕對值之和為 1。參見
preprocessing.normalize
。
- use_idf:布爾,默認=真
啟用 inverse-document-frequency 重新加權。如果為假,則 idf(t) = 1。
- smooth_idf:布爾,默認=真
通過在文檔頻率上加一來平滑 idf 權重,就好像看到一個額外的文檔包含集合中的每個術語恰好一次。防止零分裂。
- sublinear_tf:布爾,默認=假
應用次線性 tf 縮放,即將 tf 替換為 1 + log(tf)。
- vocabulary_:dict
術語到特征索引的映射。
- fixed_vocabulary_:bool
如果用戶提供了術語到索引映射的固定詞匯表,則為真。
idf_
形狀數組(n_features,)逆文檔頻率向量,僅在
use_idf=True
時定義。- stop_words_:set
被忽略的術語,因為它們:
發生在太多文檔中(
max_df
)發生在太少的文檔中(
min_df
)被特征選擇(
max_features
)切斷。
這僅在沒有給出詞匯表的情況下可用。
參數:
屬性:
注意:
stop_words_
屬性在酸洗時會變大並增加模型大小。此屬性僅用於自省,可以使用 delattr 安全刪除或在酸洗前設置為 None。例子:
>>> from sklearn.feature_extraction.text import TfidfVectorizer >>> corpus = [ ... 'This is the first document.', ... 'This document is the second document.', ... 'And this is the third one.', ... 'Is this the first document?', ... ] >>> vectorizer = TfidfVectorizer() >>> X = vectorizer.fit_transform(corpus) >>> vectorizer.get_feature_names_out() array(['and', 'document', 'first', 'is', 'one', 'second', 'the', 'third', 'this'], ...) >>> print(X.shape) (4, 9)
相關用法
- Python sklearn TfidfTransformer用法及代碼示例
- Python sklearn TweedieRegressor用法及代碼示例
- Python sklearn TSNE用法及代碼示例
- Python sklearn TheilSenRegressor用法及代碼示例
- Python sklearn TruncatedSVD用法及代碼示例
- Python sklearn TransformedTargetRegressor用法及代碼示例
- Python sklearn TimeSeriesSplit用法及代碼示例
- Python sklearn jaccard_score用法及代碼示例
- Python sklearn WhiteKernel用法及代碼示例
- Python sklearn CalibrationDisplay.from_predictions用法及代碼示例
- Python sklearn VotingRegressor用法及代碼示例
- Python sklearn gen_batches用法及代碼示例
- Python sklearn ExpSineSquared用法及代碼示例
- Python sklearn MDS用法及代碼示例
- Python sklearn adjusted_rand_score用法及代碼示例
- Python sklearn MLPClassifier用法及代碼示例
- Python sklearn train_test_split用法及代碼示例
- Python sklearn RandomTreesEmbedding用法及代碼示例
- Python sklearn GradientBoostingRegressor用法及代碼示例
- Python sklearn GridSearchCV用法及代碼示例
- Python sklearn log_loss用法及代碼示例
- Python sklearn r2_score用法及代碼示例
- Python sklearn ndcg_score用法及代碼示例
- Python sklearn ShrunkCovariance用法及代碼示例
- Python sklearn SelfTrainingClassifier用法及代碼示例
注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.feature_extraction.text.TfidfVectorizer。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。