将大文件加载为字典

时间:2015-11-12 21:31:52

标签: python numpy dictionary pickle word2vec

关于stackoverflow的第一个问题:)

我正在尝试从Glove向量中加载一个相关的向量,并创建一个字典作为键,相应的向量作为值。我做了通常天真的方法:

fp=open(wordEmbdfile)
self.wordVectors={}
# Create wordVector dictionary
for aline in fp:
    w=aline.rstrip().split()
    self.wordVectors[w[0]]=w[1:]
fp.close()

我看到活动监视器面临巨大的内存压力,最终在尝试了一两个小时之后就崩溃了。

我将尝试拆分多个较小的文件并创建多个词典。

与此同时,我有以下问题:

  1. 要阅读word2vec文件,如果我使用gzip.open读取gzip压缩文件或解压缩它然后以普通打开方式阅读它会更好。

  2. 单词矢量文件在第一列中有文本并在其余部分中浮动,从numpy使用genfromtext或loadtext会更优化吗?

  3. 我打算用chicle保存这本字典,我知道加载它也很难。我读了使用shelve的建议,它与cPickle在加载时间和访问时间方面的比较。如果能够改进未来的访问(如果cPickle没有崩溃,使用8G RAM)可能会花更多时间加载cPickle,这可能会更好吗?有没有人对此提出一些建议?

  4. 谢谢!

0 个答案:

没有答案