2017-12-24 5 views
1

나는 gensim의 word2vec와 아무런 관련이없는 신경망으로 훈련 된 임베딩 세트를 가지고있다.gensim Word2vec 전송 학습 (비 gensim 모델에서)

이러한 삽입을 gensim.Word2vec의 초기 가중치로 사용하고 싶습니다.

지금 내가 본 것은 model.load(SOME_MODEL) 일 수 있고 훈련을 계속할 수 있지만 입력으로 gensim modle이 필요합니다. 또한 reset_from() 다른 gensim 모델 만 수락 것으로 보인다. 하지만 제 경우에는 gensim 모델이 없지만 embedding의 word2vec 형식의 텍스트 파일이 있습니다.

그렇다면 word2vec 텍스트 파일에서 gensim.Word2vec으로 전송 학습을 시작하려면 어떻게해야합니까?

답변

0

당신은

import io 

from gensim.models.keyedvectors import KeyedVectors 

# first line is vocab size and vector dim 
model_buf = io.StringIO(""" 
2 3 
word0 -0.000737 -0.002106 0.001851 
word1 -0.000878 -0.002106 0.002834 
""".lstrip()) 

model = KeyedVectors.load_word2vec_format(model_buf, binary=False) 

model['word0'] 
+0

내가 훈련을 계속하는 데 필요한 원래 Word2Vec 모델의 키 벡터 형식을 사용하여 다른 모델을로드 할 수 있습니다, 나는'모델을 시도 = Word2Vec(); model.wv.load_word2vec_format (filename); model.train (...)'하지만 작동하지 않습니다. – bluesummers

+0

다음과 같이하면됩니다. : model.build_vocab (new_sentences, update = True) model.train (new_sentences) – ksindi

+0

@bluesummers build_vocab과 train이 일부입니다. Word2Vec. 위의 예제에서'Modeled'를'KeyedVectors'에서'Word2Vec' 인스턴스로 바꾸는 방법을 알아야합니다. – ksindi

관련 문제