Я прохожу лекции по Stanford CS224n, и во второй лекции упоминается следующее:
Но когда я пытался сделать то же самое, используя векторные различия, я получал другой результат.
model = KeyedVectors.load_word2vec_format('data/wiki-news-300d-1M.vec')
def analogy(x1, x2, y1):
vector = np.add(model[y1], np.subtract(model[x2], model[x1]))
return model.most_similar(positive=[vector], topn=1)
analogy("man", "king", "woman")
-> [('king', 0.8655095100402832)]
Но если я использую этот метод:
def analogy1(x1, x2, y1):
result = model.most_similar(positive=[y1, x2], negative=[x1])
return result[0]
analogy1("man", "king", "woman")
->('queen', 0.7515910863876343)
Может кто-нибудь, пожалуйста, помогите мне, что я делаю неправильно или я неправильно понял?
Ссылка на видео лекцию: http://onlinehub.stanford.edu/cs224/190110-cs224n-1080