【发布时间】:2017-03-13 05:59:36
【问题描述】:
我试图了解 python-glove 如何计算 most-similar 术语。
是否使用余弦相似度?
来自 python-glove github 的示例 https://github.com/maciejkula/glove-python/tree/master/glove :
【问题讨论】:
标签: python similarity cosine-similarity
我试图了解 python-glove 如何计算 most-similar 术语。
是否使用余弦相似度?
来自 python-glove github 的示例 https://github.com/maciejkula/glove-python/tree/master/glove :
【问题讨论】:
标签: python similarity cosine-similarity
是它使用余弦相似性。
paper提包中的文本:...通过首先在词汇量跨越每个功能,然后计算余弦相似度....
【讨论】:
project website 在这一点上有点不清楚:
两个词向量之间的欧几里得距离(或余弦相似度)为衡量对应词的语言或语义相似度提供了一种有效的方法。
欧几里得距离与余弦相似度不同。听起来两者都足够好,但它没有指定使用哪个。
但是,我们可以观察the source 您正在查看的 repo:
dst = (np.dot(self.word_vectors, word_vec)
/ np.linalg.norm(self.word_vectors, axis=1)
/ np.linalg.norm(word_vec))
【讨论】:
在手套项目网站上,对此进行了相当清晰的解释。 http://www-nlp.stanford.edu/projects/glove/
为了以定量的方式捕捉区分男人和女人所需的细微差别,模型有必要将多个数字与单词对相关联。扩大判别数集的一个自然而简单的候选是两个词向量之间的向量差。 GloVe 的设计是为了让这种向量差异尽可能地捕捉到两个词并列所指定的含义。
要详细了解这背后的数学原理,请查看网站中的“模型概述”部分
【讨论】: