2017-09-06 10 views
1

gensim word2vec 모델을 사용하여 가장 가능성있는 단어 시퀀스를 얻으려고합니다. 나는 이러한 파일을 제공하는 pretrained 모델을 발견했다 :gensim word2vec 모델에 주어진 텍스트 삽입 모델의 확률을 얻기

word2vec.bin 
word2vec.bin.syn0.npy 
word2vec.bin.syn1neg.npy 

이 내 코드는이 모델과 문장의 확률을 얻기 위해 노력하고있다 :이 오류가 발생하고이 코드를 실행하는 동안

model = model.wv.load(word_embedding_model_path) 
model.hs = 1 
model.negative = 0 
print model.score(sentence.split(" ")) 

:

AttributeError: 'Word2Vec' object has no attribute 'syn1' 

아무도 내가 문제를 해결하는 방법을 알아낼 수 있습니다. 일반적으로, 나는 사전 표현 된 모델을 사용하여 함께 나타나는 단어의 순서의 확률을 얻고 자한다.

답변

0

초기 설정 및 교육 후에 부정적인 샘플링 (예 : negative=5, hs=0)에서 hierarchical-softmax (예 : hs=1, negative=0)를 사용하도록 모델을 전환 할 수 없습니다. 두 모델은 서로 다른 내부 속성을 사용하며 설정은 & 설정으로 만 생성됩니다. (예를 들어, 부동산 syn1은 계층 - softmax를 모드에서 훈련 &을 만든 모델에 존재합니다.)이 score() 방법은 현재 HS 모델에만 작동

때문에, 당신은 단지 모델을 사용해야 할 것 그 모드에서 훈련을 받았다.

단일 문자에 대한 score()의 값은 단일 모델에 대해 절대 확률로 해석 할 수 없으며 동일한 모델 또는 다른 텍스트에 대한 다른 텍스트의 점수와 비교할 때만 유효합니다 대체 모델에 비해 점수의 상대적 가치가 의미있게됩니다.)