如何使用tf-idf对新文档进行分类?

Isb*_*ter 5 python text-analysis text-mining tf-idf scikit-learn

如果我使用TfidfVectorizerfrom sklearn生成特征向量为:

features = TfidfVectorizer(min_df=0.2, ngram_range=(1,3)).fit_transform(myDocuments)

然后,我将如何生成特征向量以对新文档进行分类?由于您无法为单个文档计算tf-idf。

用以下方法提取特征名称是否正确?

feature_names = TfidfVectorizer.get_feature_names()

然后根据feature_names?计算新文档的术语频率。

但是,那么我将不会获得具有单词重要性信息的权重。

max*_*moo 8

您需要保存 TfidfVectorizer 的实例,它会记住用于拟合它的术语频率和词汇。如果不是使用fit_transform,而是单独使用fit和,则可能会使事情更清楚transform

vec = TfidfVectorizer(min_df=0.2, ngram_range=(1,3))
vec.fit(myDocuments)
features = vec.transform(myDocuments)
new_features = fec.transform(myNewDocuments)
Run Code Online (Sandbox Code Playgroud)

  • 最后一行打错字,应该是:new_features = vec.transform(myNewDocuments) (2认同)