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