任务
我想为 word2vec
模型创建一个类并调用它,这样过程会更快更高效。
脚本
from docsim import DocSim
from gensim.models.keyedvectors import KeyedVectors
word2vec_model = 'w2vec_wiki_id_case_doc'
model = KeyedVectors.load(word2vec_model, mmap='r')
ds = DocSim(model)
问题
使用我的代码,读取word2vec
模型的过程需要很长时间。我该如何解决这个问题?
最佳答案
有了 gensim
,就无法解决模型的初始加载时间问题。您可以使用较小的模型来减少加载时间,但是在您的应用程序初始化时,大型模型文件不可避免地需要几秒钟才能加载。但是,如果您正确设计了您的应用程序,那么这应该是您只需支付一次的成本(当您的程序首次启动时)。
如果在启动时节省那几秒钟真的很重要,您可以考虑从 gensim
的 word2vec 实现切换到 magnitude
,它的初始加载时间不到一秒,并且在许多其他领域提高了速度/可用性(例如,对于许多任务,速度提高比 gensim 快数百到数千倍)。如果您有兴趣了解一下震级背后的背景,可以阅读其作者的学术论文(可在 arXiv 上免费阅读):
Magnitude: A Fast, Efficient Universal Vector Embedding Utility Package
关于python - word2vec 模型类 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55038641/