编程语言
首页 > 编程语言> > Word2Vec Python相似性

Word2Vec Python相似性

作者:互联网

我用这个代码嵌入了一个单词:

with open("text.txt",'r') as longFile:
        sentences = []
        single= []
        for line in longFile:
            for word in line.split(" "):
                single.append(word)
            sentences.append(single)
    model = Word2Vec(sentences,workers=4, window=5)

我现在要计算两个单词之间的相似度,看看它们的邻居是什么.
model [“ word”],model.wv.most_similar(),model.similar_by_vector()和model.similarity()有什么区别?
我应该使用哪一个?

解决方法:

编辑:也许我们应该在这里标记gensim,因为它是我们正在使用的库

如果要查找两者的邻居,可以使用
model.wv.most_similar()这将为您提供每个单词的字典(前n个)及其给定字符串(单词)的相似性.该方法将计算单词向量之间的余弦相似度.

请注意,您提到的其他方法在3.4.0中已弃用,请改用model.wv.similarity()和model.wv.similar_by_vector().

您也可以使用model.wv.similar_by_vector()进行完全相同的操作,但要传递一个向量.例如. model [“ woman”]会给你这样一个向量.实际上,如果您看一下实现,所有方法所做的就是调用most_similar()

def similar_by_vector(self, vector, topn=10, restrict_vocab=None):
   return self.most_similar(positive=[vector], topn=topn, restrict_vocab=restrict_vocab)

类似的by_by_word()方法也是如此.我实际上不知道为什么这些方法首先存在.

要找到两个词之间的相似度,您可以使用
使用model.wv.similarity()查找余弦相似度,或者使用model.wv.distance()查找两者之间的余弦距离.

要回答您的实际问题,我只需计算两者之间的相似度,而不是比较most_similar()的结果.

我希望这有帮助.查看docs或源文件以获得更多信息,我认为代码文档非常不错.

标签:word-embedding,gensim,word2vec,similarity,python
来源: https://codeday.me/bug/20191109/2012213.html