关于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()
我看到活动监视器面临巨大的内存压力,最终在尝试了一两个小时之后就崩溃了。
我将尝试拆分多个较小的文件并创建多个词典。
与此同时,我有以下问题:
要阅读word2vec文件,如果我使用gzip.open
读取gzip压缩文件或解压缩它然后以普通打开方式阅读它会更好。
单词矢量文件在第一列中有文本并在其余部分中浮动,从numpy使用genfromtext或loadtext会更优化吗?
我打算用chicle保存这本字典,我知道加载它也很难。我读了使用shelve的建议,它与cPickle在加载时间和访问时间方面的比较。如果能够改进未来的访问(如果cPickle没有崩溃,使用8G RAM)可能会花更多时间加载cPickle,这可能会更好吗?有没有人对此提出一些建议?
谢谢!