TFIDFVectorizer占用了太多内存,矢量化470MB的100k文档需要超过6GB的内存,如果我们处理2100万个文档,它将无法容纳60GB的RAM。
所以我们选择了HashingVectorizer,但仍然需要知道如何分发哈希矢量器。Fit和partial Fit什么都不做,那么如何使用巨大语料库呢?
我强烈建议您在大型数据集上拟合模型时使用HashingVectorizer。
HashingVectorizer
是独立于数据的,只有来自vectorizer.get_params()
的参数是重要的。因此(取消)pickle`HashingVectorizer实例应该非常快。
基于词汇表的矢量器更适合在小型数据集上进行探索性分析。
克服HashingVectorizer无法解释IDF的一种方法是将数据索引到elasticsearch或lucene中,并从中检索术语向量,使用这些术语向量可以计算Tf-IDF。