2016-09-09 7 views
3
from gensim.models import word2vec 

sentences = word2vec.Text8Corpus('TextFile') 
model = word2vec.Word2Vec(sentences, size=200, min_count = 2, workers = 4) 
print model['king'] 

출력 벡터가 'king'의 컨텍스트 벡터 또는 'king'의 임베딩 벡터라는 단어입니까? 어떻게하면 'king'의 문맥 벡터와 'king'의 벡터 embedding vector를 얻을 수 있습니까? 감사!word2vec를 사용하여 주어진 단어의 단어 embeddings 벡터와 컨텍스트 벡터를 얻는 방법?

답변

2

'왕'의 임베딩 벡터입니다.

model.syn1 

당신이 부정적인 샘플링을 사용하는 경우 그들은 다음과 같습니다 :

당신이 계층이 softmax를 사용하는 경우, 상황에 맞는 벡터는

model.syn1[model.vocab[word].index] 
:

model.syn1neg 

벡터는 액세스 할 수 있습니다

0

'컨텍스트 벡터'는 '단어 임베딩'벡터이기도합니다. 단어 임베딩은 어휘가 실수의 벡터에 매핑되는 방법을 의미합니다.

'단어 임베딩'벡터를 말했을 때 가운데 단어의 벡터라고 생각합니다. word2vec 알고리즘에서

, 당신이 모델을 학습 할 때 (이 상황에 맞는 단어 사용되는 경우 '왕하는 것은'중심 단어를 사용하는 경우.) 하나 개의 단어에 대한 서로 다른 두 벡터를 생성

나도 몰라 gensim이이 두 벡터를 어떻게 다루고 있는지에 대해, 일반적으로 사람들은 컨텍스트와 중심 단어를 평균 처리하거나 두 벡터를 concatinate합니다. 벡터를 처리하는 가장 아름다운 방법은 아니지만 그렇게 잘 작동합니다.

그래서 미리 훈련 된 벡터에서 모델 [ 'king']을 호출하면 볼 수있는 벡터가 아마도 두 벡터의 평균 버전 일 것입니다.