4
나는 Gensim
으로 훈련 된 Word2Vec
모델을 가지고 있습니다. 에 Word Embeddings
을 어떻게 사용할 수 있습니까? Tensorflow에서 Embedding을 처음부터 교육하고 싶지 않습니다. 누군가가 예제 코드로 어떻게하는지 알려 줄 수 있습니까?Tensorflow에서 pretrained Word2Vec 모델을 사용하는 방법
나는 Gensim
으로 훈련 된 Word2Vec
모델을 가지고 있습니다. 에 Word Embeddings
을 어떻게 사용할 수 있습니까? Tensorflow에서 Embedding을 처음부터 교육하고 싶지 않습니다. 누군가가 예제 코드로 어떻게하는지 알려 줄 수 있습니까?Tensorflow에서 pretrained Word2Vec 모델을 사용하는 방법
의 당신이 가장 일반적인 단어에 해당하는 목록에서 인덱스로, 사전 및 inverse_dict 목록을 가정 해 봅시다 다음 inverse_dict 지수는 사전 값에 해당하는 방법을
vocab = {'hello': 0, 'world': 2, 'neural':1, 'networks':3}
inv_dict = ['hello', 'neural', 'world', 'networks']
공지 사항. 이제 임베딩 매트릭스를 선언하고 값을 얻으십시오.
vocab_size = len(inv_dict)
emb_size = 300 # or whatever the size of your embeddings
embeddings = np.zeroes((vocab_size, emb_size))
from gensim.models.keyedvectors import KeyedVectors
model = KeyedVectors.load_word2vec_format('embeddings_file', binary=True)
for k, v in vocab.items():
embeddings[v] = model[k]
임베딩 매트릭스가 있습니다. 좋은. 이제 샘플을 훈련시키고 자한다고 가정 해 봅시다 : x = ['hello', 'world']
. 그러나 이것은 우리의 신경망에는 효과가 없습니다.
x_model = tf.placeholder(tf.int32, shape=[None, input_size])
with tf.device("/cpu:0"):
embedded_x = tf.nn.embedding_lookup(embeddings, x_model)
지금
embedded_x
당신의 회선 또는 무엇이든에 들어가는 즉석에서 우리의 샘플을 내장하여 이동
x_train = []
for word in x:
x_train.append(vocab[word]) # integerize
x_train = np.array(x_train) # make into numpy array
이제 우리는 좋은 : 우리는 정수화해야합니다. 나는 또한 당신이 embeddings를 재교육하고 있지 않다고 가정하고 있지만 단순히 그것을 사용하고 있습니다. 희망이 도움이
'embeddings [v] = model [k]'줄이'embeddings [v] = model.word_vec (k)'로 대체되어야한다는 것을 확신합니다. – bluesummers
나는이 매뉴얼을 더 생각했습니다. 접근 (즉, 전체 어휘를 반복하고'model.word_vec (k)'를 사용하여 하나씩 찾아 보는 것). 그러나 더 효율적인 것으로 보이는'tf.nn.embedding_lookup'을 사용하는 방법이 있습니까? GloVe를 사용하여 Tensorflow를 사용하여 게시 https://guillaumegenthial.github.io/sequence-tagging-with-tensorflow.html는 기본적으로 직접 색인 생성을 수행하는 데 사용할 수있는 사용자 정의 GloVe 파일을 생성했습니다. Word2Vec (바이너리) 파일과 비슷한 것. –