機器學習_ML_TfidfVectorizer
仔細看會發現TfidfVectorizer跟CountVectorizer有許多相同的參數!
一般來說,TfidfVectorizer = CountVectorizer + TfidfTransformer,一般啦!
IMPORT
from sklearn.feature_extraction.text import TfidfVectorizer
CLASS
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.int64'>,
norm='l2',
use_idf=True,
smooth_idf=True,
sublinear_tf=False)
參數說明
token_pattern
在另篇說明CountVectorizer的說明中,有一個範例print(count),就會把所有的預帶參數列出!
有發現到預設也是token_pattern=’(?u)\b\w\w+\b’
binary
default False {True, False}
這邊的設置,如果設置True的話,會發現列印出tf只會有0跟1。
就會是純詞頻,而不會是該詞在文件的總數!
use_idf
default True {True, False}
如果設置為False,則只計算純tf,不會做idf的計算!
其效果即同CountVectorizer。
smooth_idf
default True {True, False}
True idf=ln((文件總數+1)/(含該詞步的文件數+1))+1
False idf=ln(文件總數/含該詞步的文件數)+1
這部份在讀資料科學於商業應用的時候有提到,加1的目的在於淡化…什麼的我忘了!
需要再翻一下書!
sublinear_tf
default False {True, False}
True 則tf = 1 + log(tf)
這部份資料科學於商業應用的時候也有提到…
相同的來源設置True的情況下其準確率是有影響的
true:CV Accuracy: 0.824
false:CV Accuracy: 0.784
範例
再來補上!
沒有留言:
張貼留言