我想衡量句子之间的相似度。我可以使用 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/