gpt4 book ai didi

python - Tfidftransformer 和 Tfidfvectorizer 有什么区别?

转载 作者:行者123 更新时间:2023-12-01 23:58:41 26 4
gpt4 key购买 nike

我对 TfidftransformerTfidfvectorizer 的使用感到有点困惑,因为它们看起来很相似。一个使用单词将矩阵转换 (Tfidfvectorizer),另一个使用已经转换的文本 (using CountVectorizer) 到矩阵。

谁能解释一下这两者的区别?

最佳答案

CountVectorizer + TfidfTransformer = TfidfVectorizer 这是简单实用的理解方式。 TfidfVectorizer 一步执行 CountVectorizer 和 TfidfTransformer。

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.pipeline import Pipeline

# transformer a
a = Pipeline(steps =[
('count_verctorizer', CountVectorizer()),
('tfidf', TfidfTransformer()),
])

# transformer b
b = TfidfVectorizer()

ab 转换器将执行相同的转换。

如果在向模型提供特征之前预处理仅包括 TFIDF,则 b 将是最佳选择。但有时我们想拆分预处理。例如,我们希望在执行逆文档频率之前仅保留最佳术语。在这种时候,我们会选择 a。因为我们可以执行 CountVectorizer 然后在 IDF 之前进行额外的预处理。例如


from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.feature_selection import chi2
from sklearn.feature_selection import SelectKBest
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LogisticRegressionCV

# do counter terms and allow max 150k terms with 1-2 Ngrams
# select the best 10K (reducing the size of our features)
# do the IDF and the pass to our model

hisia = Pipeline(steps =[
('count_verctorizer', CountVectorizer(ngram_range=(1, 2),
max_features=150000,

)
),
('feature_selector', SelectKBest(chi2, k=10000)),
('tfidf', TfidfTransformer(sublinear_tf=True)),
('logistic_regression', LogisticRegressionCV(cv=5,
solver='saga',
scoring='accuracy',
max_iter=200,
n_jobs=-1,
random_state=42,
verbose=0))
])

在示例中,我们在将术语传递给 IDF 之前对其进行了特征选择。这是可能的,因为我们可以通过首先执行 CountVectorizerTfidfTransformer

来拆分 TFIDF

关于python - Tfidftransformer 和 Tfidfvectorizer 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62241331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com