我正在使用在这个问题(Similarity between two text documents)的最多投票答案中给出的代码来计算文档之间的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).
有人可以告诉我如何摆脱这个错误?
答案 0 :(得分:3)
默认情况下(在sklearn< = 0.13中)min_df
设置为min_df=2
,这意味着每个单词必须至少出现在语料库的2个不同文档中,以包含在矢量化程序的词汇表中。虽然这对于大型语料库来说是一个合理的选择,但是只有几个句子才能将玩具数据集中包含的内容限制得太多,因此我得到的错误信息非常明确。 min_df=2
默认值已在scikit的开发分支中更改为min_df=1
- 了解如何对在玩具数据集上使用默认参数值尝试库的新用户感到困惑。