我是博士研究员,并开始使用word2vec进行研究。我只是想用它来计算句子相似度。我搜索并找到了一些链接,但我无法运行它们。我在看以下内容:
import numpy as np
from scipy import spatial
index2word_set = set(model.wv.index2word)
def avg_feature_vector(sentence, model, num_features, index2word_set):
words = sentence.split()
feature_vec = np.zeros((num_features, ), dtype='float32')
n_words = 0
for word in words:
if word in index2word_set:
n_words += 1
feature_vec = np.add(feature_vec, model[word])
if (n_words > 0):
feature_vec = np.divide(feature_vec, n_words)
return feature_vec
s1_afv = avg_feature_vector('this is a sentence', model=model, num_features=300, index2word_set=index2word_set)
s2_afv = avg_feature_vector('this is also sentence', model=model,num_features=300, index2word_set=index2word_set)
sim = 1 - spatial.distance.cosine(s1_afv, s2_afv)
print(sim)
不幸的是,由于我不知道如何找到" index2word_set"我无法执行此操作。另外,我应该分配模型=?或者,是否有任何简单的命令或指令来实现它?
答案 0 :(得分:0)
将模型分配给您生成的模型或您要使用的任何预定义的word2vec模型 至于index2word_set,您可以将其设置为model.wv
它应该工作。