【发布时间】:2020-01-02 21:54:47
【问题描述】:
我下载了wiki-news-300d-1M-subword.bin.zip,加载如下:
import gensim
print(gensim.__version__)
model = gensim.models.fasttext.load_facebook_model('./wiki-news-300d-1M-subword.bin')
print(type(model))
model_keyedvectors = model.wv
print(type(model_keyedvectors))
model_keyedvectors.save('./wiki-news-300d-1M-subword.keyedvectors')
正如预期的那样,我看到了以下输出:
3.8.1
<class 'gensim.models.fasttext.FastText'>
<class 'gensim.models.keyedvectors.FastTextKeyedVectors'>
我还看到以下三个 numpy 数组序列化到磁盘:
$ du -h wiki-news-300d-1M-subword.keyedvectors*
127M wiki-news-300d-1M-subword.keyedvectors
2.3G wiki-news-300d-1M-subword.keyedvectors.vectors_ngrams.npy
2.3G wiki-news-300d-1M-subword.keyedvectors.vectors.npy
2.3G wiki-news-300d-1M-subword.keyedvectors.vectors_vocab.npy
我了解vectors_vocab.npy 和vectors_ngrams.npy,但是,vectors.npy 在gensim.models.keyedvectors.FastTextKeyedVectors 内部用于什么?如果我查看源代码以找出word vector,我看不出vectors 属性是如何在任何地方使用的。我看到使用的属性vectors_vocab 和vectors_ngrams bing。但是,如果我删除 vectors.npy 文件,我将无法使用 gensim.models.keyedvectors.FastTextKeyedVectors.load 方法加载模型。
有人能解释一下这个变量在哪里使用吗?如果我只对查找词向量感兴趣(以减少内存占用),我可以删除它吗?
谢谢。
【问题讨论】: