在Scikit TfidfVectorizer中同时使用min_df,max_df和max_features

时间:2018-10-01 11:27:54

标签: python machine-learning scikit-learn nlp

我试图弄清楚是否可以同时使用min_dfmax_dfmax_features作为Scikit.Sklearn中TfidfVectorizer类的参数。我完全理解他们每个人的目的。

我已将数据传递给TfidfVectorizer(),修复了min_df = 0.05max_df = 0.95,这意味着出现在我文档中少于5%的术语将被忽略,并且与出现在95个以上文档中的术语相同我的文件百分比(如 Understanding min_df and max_df in scikit CountVectorizer

像这样,我的数据在执行TF-IDF之后有360列。但是,这太多了,因此我想设置max_features = 100。但是,在转换后打印新数据的形状时,我仍然得到360列,而不是原本应该的100列。

我还尝试仅修复max_features = 100来检查是否没有其他参数,它仅返回100列,但实际上没有952列。我阅读了文档,并说该参数应该返回顶级的max_features,但是我看不到。

有人知道发生了什么吗?

1 个答案:

答案 0 :(得分:-1)

我试图用max_features=100, min_df=0.05, max_df= 0.95复制它,结果是<11858x100 sparse matrix of type '<class 'numpy.float64'>',所以它按预期工作。检查您是否使用通过max_features创建的矢量化器来拟合数据。

如果您可以提供代码,则可以更轻松地确定问题所在。