0

我正在使用该问题(两个文本文档之间的相似性)中获得最多投票的答案中给出的代码来计算文档之间的 TF-IDF。但是,我观察到,当我运行代码而不指定自定义值min_df(1,在代码中)时,如果两个文档完全不同(例如其中没有共同词),而不是接收 TF-IDF值为0,我得到以下错误:

ValueError: empty vocabulary; training set may have contained only stop words or min_df (resp. max_df) may be too high (resp. too low).

有人可以告诉我如何摆脱这个错误吗?

4

1 回答 1

3

默认情况下(在 sklearn <= 0.13 中)min_df设置为min_df=2这意味着每个单词必须至少出现在来自语料库的 2 个不同文档中才能包含在矢量化器的词汇表中。虽然这对于大型语料库来说是一个合理的选择,但仅用几句话就无法将任何内容包含在玩具数据集中,因此您收到的错误消息我觉得非常明确。min_df=2默认值已更改为scikit-learn 的开发分支中的min_df=1默认值,以减少在玩具数据集上尝试使用默认参数值的库的新用户的困惑。

于 2013-05-22T08:20:31.637 回答