在tfidf上训练大型数据集时出现内存错误

时间:2019-05-10 20:06:44

标签: python tf-idf

我正在尝试训练一个大型数据集,其中包含700万行,其中包含210+百万个单词。我有8 GB的内存。当我尝试通过tfidf进行训练时,它给了我内存错误。有人可以指导我我到底在做什么错 这是我的示例培训代码

  

self.vectorizer = TfidfVectorizer(min_df = 0.001,max_df = 0.2,norm ='l2',Analyzer ='word')

    self.dim = None

def learn(self, all_clean_text):      

    print('Train feature extractor')
    x = self.vectorizer.fit_transform(all_clean_text).toarray()

    print (x.shape)
    self.dim = x.shape[1]
    print (self.dim)

1 个答案:

答案 0 :(得分:0)

内存错误意味着所有这些数据都无法容纳在您的内存中。 700k x 210m就是14.7万亿,所以它太大了。您可以先删除停用词,这样可以大大减少停用词的数量。此外,您可以确保使用的是64位Python。您也可以使用max_dfmin_dfmax_features,但我不确定这会有所帮助。