相似性度量—对文本文章评分

发布于 2025-11-04 12:05:49 字数 6115 浏览 1 评论 0

许多现实世界的应用程序利用相似性度量来查看两个对象是如何联系在一起的。例如,我们可以在涉及计算机视觉和自然语言处理的应用程序中使用这些度量来查找和映射相似的文档。对于企业来说,一个重要的用例是将简历与职位描述相匹配,从而为招聘人员节省大量时间。另一个重要的用例是使用 K 均值聚类算法(也使用相似性度量) 为营销活动细分不同的客户。

相似性通常是介于 0(无相似性) 和 1(完全相似性) 之间的正值。我们将具体讨论两个重要的相似性度量,即欧几里德和余弦,以及处理维基百科文章的编码示例。

欧几里得度量

你还记得毕达哥拉斯定理吗??毕达哥拉斯定理用于计算两点之间的距离,如下图所示。

http://rosalind.info/glossary/euclidean-distance/

在图中,我们有两个数据点(x1,y1) 和(x2,y2 ),我们感兴趣的是计算这两个点之间的距离或接近程度。为了计算距离,我们需要先从 x1 到 x2 水平移动,然后从 y1 到 y2 垂直向上移动。这就组成了一个直角三角形。我们对计算斜边 d 感兴趣,使用毕达哥拉斯定理可以很容易地计算出斜边 d。

其中 b 是直角三角形的底边,p 是直角三角形的垂线。

这就完成了我们二维空间中两点的欧氏距离公式。

这定义了一维、二维、三维或更高维空间中两点之间的欧几里德距离,其中 n 是维数,xk 和 yk 分别是 x 和 y 的分量。

定义欧氏距离的 Python 函数

def euclidean_distance(x, y):   
    return np.sqrt(np.sum((x - y) ** 2))

这里 x 和 y 是两个向量。

也可以使用 sklearn 库来计算欧氏距离。这个函数在计算上更有效。

from sklearn.metrics.pairwise import euclidean_distances

距离越大,两个对象之间的相似性越低;距离越小,两个对象之间的相似度越高。要将这个距离度量转换为相似性度量,我们可以用最大距离除以对象的距离,然后减去 1,以得到 0 和 1 之间的相似性得分。在讨论了余弦度量之后,我们将看看这个例子。

余弦 公制

这是专门为文档寻找相似性的另一个度量。如图所示,此指标用于测量 x 和 y 之间的角度,当矢量的大小无关紧要时使用。

https://en.wikipedia.org/wiki/Cosine_similarity

如果 v 和 w 之间的角度是 0 度,那么余弦相似度=1(完全相似)。

点积余弦公式:

‖⋅‖表示矢量长度

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。