【问题标题】:Memory Error when training large dataset on tfidf在 tfidf 上训练大型数据集时出现内存错误
【发布时间】:2019-09-28 18:02:26
【问题描述】:

我正在尝试训练一个包含 700000 行的大型数据集,其中包含 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)

【问题讨论】:

    标签: python tf-idf


    【解决方案1】:

    内存错误意味着所有这些数据都无法放入您的 ram。 700k x 210m 是 1470000 亿,所以自然是太大了。您可以从删除停用词开始,这可以大大减少单词的数量。此外,您可以确保您使用的是 64 位 Python。您也可以使用max_dfmin_dfmax_features,但我不确定这是否会有所帮助。

    【讨论】:

    • 其实不是700000*2.1亿。每行平均包含 300 个单词,因此总共有 2.1 亿个单词。你能指导我多少最小和最大 df 合适
    猜你喜欢
    • 2018-08-15
    • 1970-01-01
    • 2015-01-10
    • 2015-08-07
    • 1970-01-01
    • 2019-11-10
    • 2021-11-14
    • 2020-05-28
    • 2020-06-16
    相关资源
    最近更新 更多