Pandas 通过排除某些词汇表,更快地加载fasttext模型

Pandas 通过排除某些词汇表,更快地加载fasttext模型,pandas,scikit-learn,nlp,stanford-nlp,fasttext,Pandas,Scikit Learn,Nlp,Stanford Nlp,Fasttext,在本地机器上加载Facebook Research发布的经过预训练的fasttext WordVector需要很长时间,我喜欢这样: model = fs.load_word2vec_format('wiki.en.vec') print(model['test']) # get the vector of the word 'test' 我试图通过删除数据集中未出现的单词的单词向量来减少加载时间。也就是说,我想将预训练向量模型简化为组成我需要分析的数据集的单词,数据集是预训练模型的子集

在本地机器上加载Facebook Research发布的经过预训练的fasttext WordVector需要很长时间,我喜欢这样:

model =  fs.load_word2vec_format('wiki.en.vec') 
print(model['test']) # get the vector of the word 'test'
我试图通过删除数据集中未出现的单词的单词向量来减少加载时间。也就是说,我想将预训练向量模型简化为组成我需要分析的数据集的单词,数据集是预训练模型的子集

我正准备尝试通过提取所需的字向量并保存到新模型来构建新模型,但类型将从FastTextKeyedVectors更改为FastText:


如何减少我的加载时间?我的方法有意义吗?还是我走错了路?

如果可以迭代.vec格式,那将是消除不需要的单词的最快方法。要了解这一点,您应该查看数据库的结构。如果它与xml格式很接近,那么这应该是可行的,并且python中如何迭代xml文件已经有了广泛的文档

然而,关于您的方法,假设您只是以字典的形式在RAM中加载了整个
模型
,只是一个简单的提示,请使用理解语法:

model={model[word] for word in model if word in mywords}
其中,
mywords
是您要保留的单词列表。

这会抛出错误“int不可编辑”,但所涉及的结构都不是int类型。您能帮忙吗?
model={model[word] for word in model if word in mywords}