scikit-learn - 欧几里德距离是否衡量语义相似性?

标签 scikit-learn gensim euclidean-distance cosine-similarity sentence-similarity

我想衡量句子之间的相似度。我可以使用 sklearn 和 Euclidean Distance 来衡量句子之间的语义相似度吗?我也读到了余弦相似度。有人可以解释这些措施的区别以及最佳使用方法是什么吗?

最佳答案

计算语义相似度有多种选择。这取决于您想要实现什么以及您想要使用哪些资源。

你的意思是“船在海中游泳”与“船在湖上漂浮”相似吗?

Word2vec 等词嵌入为每个词创建向量。词向量在向量空间中的位置使得“在语料库中共享公共(public)上下文的词在空间中彼此靠近”(Wikipedia)。 .

欧氏距离或余弦距离可以确定两个词向量之间的距离。这通常被视为单词之间的语义相似性。为了确定句子之间的距离或相似度,您可以使用单词移动距离,它由 gensim 实现. word mover distance 使用地球移动距离计算一组词向量(一个句子)到另一组词向量的距离。

另一种计算句子相似度的方法是doc2vec。另请参阅:How to calculate the sentence similarity using word2vec model of gensim with python

关于scikit-learn - 欧几里德距离是否衡量语义相似性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53247197/

相关文章:

nlp - Gensim:word2vec和doc2vec有什么区别?

python - 具有 One Hot Encoded Features 的 Auto-Sklearn 中的特征和特征重要性

python - 使用 scikit 进行 SVM 训练时出现错误的输入形状错误

python - 在python3中调用Numpy、Scipy、Gensim时出错

python-3.x - Gensim:KeyedVectors.train()

php - 使用mysql在3d中找到欧几里德距离的最有效方法是什么?

java - 遍历对象的变量(java)

matlab - 欧氏距离

python - 在 50 个变量 x 100k 行数据集上优化 K 最近邻算法

python - OneHotEncoder,类型错误: __init__() got an unexpected keyword argument 'drop'