在我在网上搜索这个主题之后,我发现我并不是唯一一个遇到这个问题的人,但我无法理解是否有办法克服这个问题。
我有5036个文本文件和15985个单词的单词列表。对于文本文件中找到的单词列表的每个单词,我想在我的矩阵上放一个1。但我收到错误: MemoryError 。
我还试图创建矩阵并进行打印(如果我的python代码中有错误)..我得到了同样的错误。 有什么建议吗?
Query query = new Query(new Criteria().andOperator(
Criteria.where("_id").is("f9091ed9-c828-4b52-b1c3-44e42f719694"),
Criteria.where("participants._id").is("6b49b373-1e61-4c98-a703-c1c2bc4da0e2"));
Update update = new Update();
update.set("participants.$.firstName", "foo");
update.set("participants.$.lastName", "bar");
mongoTemplate.updateFirst(query, update, Conference.class);
编辑:我的代码可能有一些错误.. 它应该以这种方式工作:
最后打印矩阵。
matrix = np.zeros(shape=(5036,15985))
答案 0 :(得分:1)
您收到内存错误可能是因为您的矩阵太大,或者您的计算机中没有足够的可用RAM内存。
您可以尝试迭代所有文本文件,因此您只需创建一个矩阵,如:
matrix = np.zeros(shape=(15985))
然后将结果保存到每个文本的文件中。
答案 1 :(得分:1)
根据具体的错误消息:
文件 " C:/Users/KP/Desktop/FSC_Treetag/out/f3_test_from_files_to_matrix_fonctions.py" ;, 第6行,矩阵= np.zeros(shape =(5037,15999))MemoryError
您没有足够的内存来分配阵列。根据您的系统,matrix
中的每个值都将使用8字节之类的内容,因此这个数组只能出现大约600 MB的内存...实际上并不多。可能还有其他东西(进程,打开文件等)占用了你所有的系统内存。
同时,由于您只是查找文件中是否存在每个单词,因此矩阵中的每个文件单词条目只需要一个位。在这种情况下,您应该只需use a bitarray(即每个条目的一个位)。