我如何从均值向量中获得 word2vec 相似度?
How do i get word2vec similarity from the mean vector?
例如'apple'、'banana'、'orange'等词。
我们将执行下面的代码来保存苹果和香蕉之间的距离。
model.similarity('apple', 'banana')
但是我想知道的是'apple'和'whole fruits'之间的相似度。
我如何获得苹果和整个水果的相似性?
我已经得到了整个水果的载体。
例如whole fruits=[0, 0.4, 0.2, 0.2, 0.5, .....]
model.similarity 计算单词嵌入向量之间的幕后余弦相似度。如果您已经有了“苹果”和“整个水果”的向量,那么您可以使用 sklearn's pairwise cosine similarity function.
获得余弦相似度
看起来您可能正在使用 gensim
库的词向量支持,因此您的 model
是其 KeyedVectors
类型的一些变体。
如果这样的词向量集 model
已经有字符串标记 'whole fruits'
的向量,那么您可以使用与 'apple'
和'banana'
:
model.similarity('apple', 'whole fruits')
如果您的 'whole fruits'
向量尚未在模型中,而是来自其他地方,则您必须自己计算余弦相似度。您可以使用 ,或使用与 gensim
的 .similarity()
方法中发生的相同类型的计算:
import numpy as np
from gensim import matutils
vec1 = model.word_vec('apple', use_norm=True)
vec2 = matutils.unitvec(your_whole_fruits_vector)
cos_sim = ns.dot(vec1, vec2)
例如'apple'、'banana'、'orange'等词。
我们将执行下面的代码来保存苹果和香蕉之间的距离。
model.similarity('apple', 'banana')
但是我想知道的是'apple'和'whole fruits'之间的相似度。 我如何获得苹果和整个水果的相似性?
我已经得到了整个水果的载体。
例如whole fruits=[0, 0.4, 0.2, 0.2, 0.5, .....]
model.similarity 计算单词嵌入向量之间的幕后余弦相似度。如果您已经有了“苹果”和“整个水果”的向量,那么您可以使用 sklearn's pairwise cosine similarity function.
获得余弦相似度看起来您可能正在使用 gensim
库的词向量支持,因此您的 model
是其 KeyedVectors
类型的一些变体。
如果这样的词向量集 model
已经有字符串标记 'whole fruits'
的向量,那么您可以使用与 'apple'
和'banana'
:
model.similarity('apple', 'whole fruits')
如果您的 'whole fruits'
向量尚未在模型中,而是来自其他地方,则您必须自己计算余弦相似度。您可以使用 gensim
的 .similarity()
方法中发生的相同类型的计算:
import numpy as np
from gensim import matutils
vec1 = model.word_vec('apple', use_norm=True)
vec2 = matutils.unitvec(your_whole_fruits_vector)
cos_sim = ns.dot(vec1, vec2)