def n_similarity(self, ws1, ws2):
v1 = [self[word] for word in ws1]
v2 = [self[word] for word in ws2]
return dot(matutils.unitvec(array(v1).mean(axis=0)), matutils.unitvec(array(v2).mean(axis=0)))
这是我从 gensim.word2Vec 中摘录的代码,我知道两个单词的相似度可以通过余弦距离来计算,但是两个单词集呢?该代码似乎使用每个 wordvec 的平均值,然后计算两个平均向量的余弦距离。我对word2vec知之甚少,这样的过程是否有一些基础?