model - 在 spacy 中,如何使用自己在 gensim 中创建的 word2vec 模型?
问题描述
我已经在 gensim 中训练了我自己的 word2vec 模型,我正在尝试在 spacy 中加载该模型。首先,我需要将它保存在我的磁盘中,然后尝试在 spacy 中加载一个 init-model,但无法弄清楚到底如何。
gensimmodel
Out[252]:
<gensim.models.word2vec.Word2Vec at 0x110b24b70>
import spacy
spacy.load(gensimmodel)
OSError: [E050] Can't find model 'Word2Vec(vocab=250, size=1000, alpha=0.025)'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.
解决方案
以纯文本格式训练和保存模型:
from gensim.test.utils import common_texts, get_tmpfile
from gensim.models import Word2Vec
path = get_tmpfile("./data/word2vec.model")
model = Word2Vec(common_texts, size=100, window=5, min_count=1, workers=4)
model.wv.save_word2vec_format("./data/word2vec.txt")
压缩文本文件:
gzip word2vec.txt
这会产生一个word2vec.txt.gz
文件。
运行以下命令:
python -m spacy init-model en ./data/spacy.word2vec.model --vectors-loc word2vec.txt.gz
使用以下方法加载向量:
nlp = spacy.load('./data/spacy.word2vec.model/')
推荐阅读
- windows - 备份脚本 - 按模式查找文件,读取它的全名并传递给脚本
- c++ - 使对象消失并出现在OpenGL中
- jquery - 带有媒体查询问题的 Bootstrap 4 粘性导航
- javascript - 如何在 ChartJS 的分组条形图中包含额外的条形?
- css - 如何像这样重新设计我的 wordpress 网站页脚?
- apache-spark - 拆分 SQL 查询以提高 Spark 效率
- graph - 写在 doxygen 点图中的箭头旁边
- image - 更好的分割方法
- django - 外键访问数据 Django
- ios - 黑白 self.packetFlow.ReadBytes 与套接字读取的区别