한 가지 해결책은 모델을 C 기반 word2vec 형식으로 저장하고 원래 단어를 awk
을 사용하여 새 단어의 매핑으로 바꾸는 것입니다. 옆으로 내 매핑이 실제로 배열했다로서 내가 훈련이에 어디에
import subprocess as sp
import shlex
from gensim.models import Word2Vec
model.save_word2vec_format('embeddings.txt', binary=False)
CMD = r"""
awk -F'[ ]|:' 'FNR==NR {a[$1]=$2; next} FNR==1{print $0} FNR!=1{$1=a[$1]; print $0}' map.txt embeddings.txt
"""
with open('new_embeddings.txt', 'w') as f:
p = sp.Popen(shlex.split(CMD), stdout=f)
new_model = Word2Vec.load_word2vec_format('new_embeddings.txt')
new_model.create_binary_tree()
: 우리를 통해 모델을 다시 만들 수 있습니다
$ cat map.txt
foo:bar
...
:
우리는 형식의 파일 매핑이 있다고 가정 어떤 배열에있는 단어의 색인
arr
. numpy를 사용하여 맵 파일을 만들었습니다.
import numpy as np
np.savetxt('map.txt', np.c_[np.arange(arr.size), arr], '%d:%s')