У вас неправильное представление о word2vec.Он не предоставляет один абсолютный вектор для одного слова.Ему удается найти представление для слова относительно других слов.Таким образом, для одного и того же корпуса, если вы запустите word2vec дважды, вы получите 2 разных вектора для одного и того же слова.Смысл приходит, когда вы сравниваете его с другими векторами слов.
king
- man
всегда будет близко (с точки зрения сходства косинусов) к queen
- woman
независимо от того, сколько раз вы его тренируете.Но они будут иметь разные векторы после каждого поезда.
В вашем случае, поскольку две модели обучаются по-разному, сравнение векторов одного и того же слова аналогично сравнению двух случайных векторов.Вы должны скорее сравнить относительные отношения.Может быть что-то вроде: model1.most_similar('dog')
против model2.most_similar('dog')
Однако, чтобы ответить на ваш вопрос, если вы хотите сравнить 2 вектора, вы можете сделать это, как показано ниже.Но результаты будут бессмысленными.
Просто возьмите векторы из каждой модели и вручную вычислите косинусное сходство.
vec1 = model1.wv['computer']
vec2 = model2.wv['computer']
print(np.sum(vec1*vec2)/(np.linalg.norm(vec1)*np.linalg.norm(vec2)))