【发布时间】:2021-03-07 12:08:46
【问题描述】:
我正在尝试运行此代码来计算一堆文档中每个单词的相对频率(很多,超过 40000),我无法减少词汇量,并且在 Colab 上运行时会抛出内存不足错误配备 12 GB 内存。 如何重构代码,这样我就不必调用 X.toarray() 从稀疏转换为密集并引发内存不足错误(120000 字 * 40000 个文档)。
vect = CountVectorizer(vocabulary=list(word_to_index.keys()), tokenizer=lambda x: x.split())
X = vect.fit_transform(docs)
X_arr = X.toarray()
rel_freq = np.sum(X_arr, axis=0) / len(docs)
names = vect.get_feature_names()
如果您想知道为什么我需要这样做是因为我正在实现 ConWea 代码: https://github.com/dheeraj7596/ConWea 数据量比作者多。 非常感谢大家。
【问题讨论】:
-
尝试参数
max_df和/或min_df
标签: python scikit-learn nlp out-of-memory text-classification