web-dev-qa-db-ja.com

Spacyで、gensimで作成された独自のWord2vecモデルを使用する方法は?

私は自分のWord2vecモデルをgensimでトレーニングし、そのモデルをスペイシーでロードしようとしています。まず、それをディスクに保存してから、initモデルをスペイシーでロードしようとする必要がありますが、正確な方法を理解できません。

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.
9

モデルをトレーニングしてプレーンテキスト形式で保存します。

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圧縮します。

gzip Word2vec.txt

これはWord2vec.txt.gzファイル。

次のコマンドを実行します。

python -m spacy init-model en ./data/spacy.Word2vec.model --vectors-loc Word2vec.txt.gz

以下を使用してベクトルをロードします。

nlp = spacy.load('en', vectors='./data/spacy.Word2vec.model/')
13
Roger TheAlien

説明したように、 ここ を使用して、Gensim、Fast Text、またはTomas MikolovのオリジナルのWord2vec実装を使用してトレーニングしたカスタムWordベクトルをインポートできます。

_wget https://s3-us-west-1.amazonaws.com/fasttext-vectors/Word-vectors-v2/cc.la.300.vec.gz
python -m spacy init-model en your_model --vectors-loc cc.la.300.vec.gz
_

次に、モデル、nlp = spacy.load('your_model')をロードして使用できます。

こちら と回答した同様の質問も参照してください。

4
Ali Zarezade