2017-08-08 11 views
0

我正在尝试将大型.log文件(具有超过六万行)读入内存。我想应用在gensim中实现的Word2Vec算法。我尝试了很多解决方案,但是他们都没有工作。任何帮助,将不胜感激。将大文件读入内存以进行word2vec转换

代码1:

​​3210

代码2:

for i,line in enumerate(open(file_obj,'r')): 
     print(i,line) 
     sentences += line 
+0

你遇到了什么问题? – abagshaw

+0

这个问题与word2vec没有任何关系。你不能将你的文件加载到内存中,对吗? – gobrewers14

+0

是的,我无法将文件加载到内存中。 – Adeel

回答

0

您需要大块的文件不知何故。由于您的文件是基于行的,因此您可以使用python的正常行分块(即for line in file)。您正在运行到问题是,这

​​3210

加载整个文件到您的return语句。

而不是这样做,您需要在读取该行的同时组装矢量。当你遇到每个单词时,在那里做停用词移除和注释,如果剩下任何东西,就把它添加到你的矢量中。

或者,如果每个单词需要更多上下文,则逐句处理它。在任何一种情况下,在阅读器中进行处理,而不是从文件中收集所有数据,然后对其进行处理。

+0

谢谢。它的工作,我一次读1000行,并不断将它们添加到列表中。 – Adeel

+0

很高兴听到。处理大文件是一件非常痛苦的事情,通常你必须找出一种方法来分块或流式传输。 – RagingRoosevelt

相关问题