精华内容
下载资源
问答
  • 2022-01-07 22:54:05

    目录

    一、欧式距离

    二、余弦距离


    输入数据为张量类型的矩阵向量

    一、欧式距离

    import torch
    
    # 数据
    a = [[1,1,2.5],
         [2.8,7.5,5.4],
         [2.5,9.2,3.8],
         [2.5,3.2,3.5]]
    c = torch.tensor(a)
    
    # 方法一:该方法较为准确
    X = torch.norm(c[:, None]-c, dim=2, p=2)
    print(X)
    
    # 输出
    tensor([[0.0000, 7.3417, 8.4368, 2.8443],
            [7.3417, 0.0000, 2.3537, 4.7106],
            [8.4368, 2.3537, 0.0000, 6.0075],
            [2.8443, 4.7106, 6.0075, 0.0000]])
    
    # 方法二:该方法有些误差
    def get_elu_dis(data):
        return torch.sqrt((-2*data.mm(data.t()))+torch.sum(torch.square(data),axis=1,keepdim=True)+torch.sum(torch.square(data.t()),axis=0,keepdim=True))
    
    X = get_elu_dis(c)
    print(X)
    
    # 输出
    tensor([[0.0000e+00, 7.3417e+00, 8.4368e+00, 2.8443e+00],
            [7.3417e+00, 0.0000e+00, 2.3537e+00, 4.7106e+00],
            [8.4368e+00, 2.3537e+00, 0.0000e+00, 6.0075e+00],
            [2.8443e+00, 4.7106e+00, 6.0075e+00, 1.9531e-03]])

    二、余弦距离

    import torch
    import torch.nn.functional as F
    
    # 数据
    a = [[1,1,2.5],
         [2.8,7.5,5.4],
         [2.5,9.2,3.8],
         [2.5,3.2,3.5]]
    c = torch.tensor(a)
    
    # 方法一:有一些误差
    def get_cos_dis(sentences_vec):
        sentences_vec = sentences_vec / torch.norm(sentences_vec, 2, 1, keepdim=True)
        sentences_vec_mat = F.relu(1 - torch.mm(sentences_vec, sentences_vec.t()), inplace=True)
        return sentences_vec_mat
    
    X = get_cos_dis(c)
    print(X)
    
    # 输出
    tensor([[0.0000e+00, 1.4192e-01, 2.8083e-01, 6.1580e-02],
            [1.4192e-01, 0.0000e+00, 2.6094e-02, 3.6098e-02],
            [2.8083e-01, 2.6094e-02, 5.9605e-08, 1.0959e-01],
            [6.1580e-02, 3.6098e-02, 1.0959e-01, 0.0000e+00]])
    
    # 方法二:也还行,看结果
    def cosinematrix(A):
        prod = torch.mm(A, A.t())  # 分子
        norm = torch.norm(A, p=2, dim=1).unsqueeze(0)  # 分母
        cos = prod.div(torch.mm(norm.t(), norm))
        return 1-cos
    
    X = cosinematrix(c)
    print(X)
    
    # 输出
    tensor([[0.0000, 0.1419, 0.2808, 0.0616],
            [0.1419, 0.0000, 0.0261, 0.0361],
            [0.2808, 0.0261, 0.0000, 0.1096],
            [0.0616, 0.0361, 0.1096, 0.0000]])

    更多相关内容
  • 为解决人脸表情识别任务中存在的类内表情差异性大、类间表情相似度高的问题,基于传统的Softmax损失函数和Island损失函数,提出一种新的基于余弦距离损失函数来指导深度卷积神经网络的学习。该方法不仅可以减小特征...
  • 功能:计算新闻文本类情感分析 依赖库: jieba pyyaml colorama pyExcelerator sqlalchemy 算法: TF-IDF算法; 余弦距离算法; 详细算法见DOC中数学模型。
  • 余弦距离

    2020-12-23 19:44:39
    例如将两篇文章向量化,余弦距离可以避免因为文章的长度不同而导致距离偏大,余弦距离只考虑两篇文章生成的向量的夹角。 余弦相似度的取值范围是[-1,1],相同两个向量的之间的相似度为1。 余弦距离的取值范围是[0,2]...

    原文:https://blog.csdn.net/lucky_kai/article/details/89514868
    概述: 在机器学习领域中,通常将特征表示为向量的形式,所以在分析两个特征向量之间的相似性时,常用余弦相似度表示。例如将两篇文章向量化,余弦距离可以避免因为文章的长度不同而导致距离偏大,余弦距离只考虑两篇文章生成的向量的夹角。
    余弦相似度的取值范围是[-1,1],相同两个向量的之间的相似度为1。
    余弦距离的取值范围是[0,2]。
    余弦相似度的定义公式为 c o s ( A , B ) = A ⋅ B ∥ A ∥ 2 ∥ B ∥ 2 cos(A,B)=\frac{A\cdot B}{\left \| A \right \|_{2}\left \| B \right \|_{2}} cos(A,B)=A2B2AB
    归一化后 ∥ A ∥ 2 = 1 \left \| A \right \|_{2}=1 A2=1, ∥ B ∥ 2 = 1 \left \| B \right \|_{2}=1 B2=1,
    ∥ A ∥ 2 ∥ B ∥ 2 = 1 \left \| A \right \|_{2}\left \| B \right \|_{2} = 1 A2B2=1
    余弦距离:
    d i s t ( A , B ) = 1 − c o s ( A , B ) = ∥ A ∥ 2 ∥ B ∥ 2 − A ⋅ B ∥ A ∥ 2 ∥ B ∥ 2 dist(A,B)= 1-cos(A,B) = \frac{\left \|A \right \|_{2}\left \|B \right \|_{2}-A\cdot B}{\left \| A\left \|_{2} \right \|B \right \|_{2}} dist(A,B)=1cos(A,B)=A2B2A2B2AB
    欧式距离:
    ∥ A − B ∥ 2 = ∥ A ∥ 2 + ∥ B ∥ 2 − 2 A ⋅ B = 2 − 2 A ⋅ B = 2 d i s t ( A , B ) \left \| A-B \right \|^{2} = \left \| A \right \|^{2} + \left \| B \right \|^{2} -2A\cdot B = 2-2A\cdot B =\sqrt[]{2dist(A,B)} AB2=A2+B22AB=22AB=2dist(A,B)

    由公式可以看出归一化后,欧式距离与余弦距离存在单调性关系。此时两种距离的值域都为[0,2]。

    欧式距离与余弦距离的对比:
    1.欧式距离的数值受到维度的影响,余弦相似度在高维的情况下也依然保持低维完全相同时相似度为1等性质。
    2.欧式距离体现的是距离上的绝对差异,余弦距离体现的是方向上的相对差异。

    不同情况不同选择:
    1.两个人分别取了蓝球(1,0)与红球(0,1),这两个向量的欧式距离较小,可是事实是这两个球是不同的,而余弦距离为2表示的是完全不同的意思。所以在这种情况下选择余弦距离更具合理性

    2.两个人对APP的使用次数与使用时长分别表示为(1,10),(10,100),可知余弦相似度较小,说明这两个人的行为时相同的,可是,事实是不同的,两个人的活跃度有着极大的差异,第二个人的活跃度更高

    余弦距离满足正定性和对称性,但是不满足三角不等式,因此余弦距离不是一个严格定义的距离。

    距离的定义:
    在一个集合中,如果每一对元素均可唯一确定一个实数,使得三条距离公理(正定性,对称性,三角不等式)成立,则该实数可以称为这对元素之间的距离。

    展开全文
  • 对于给定的人体运动捕捉序列,首先定义滑动比较窗口,计算当前窗口范围内运动序列前、后2部分骨骼夹角直方图统计特征的余弦相似度,然后通过在运动序列上滑动该窗口,获得运动序列的余弦相似度曲线,曲线最小值位置...
  • 余弦距离介绍

    万次阅读 2019-04-25 14:01:26
    涉及到数学公式的地方,还请查看原文链接。...例如将两篇文章向量化,余弦距离可以避免因为文章的长度不同而导致距离偏大,余弦距离只考虑两篇文章生成的向量的夹角。 余弦相似度的取值范围是[-1,1],相同两个...

    更多深度学习资讯都在公众号:深度学习视觉
    回复:python大礼包,200G资源到手。
    MyBlog

    概述: 在机器学习领域中,通常将特征表示为向量的形式,所以在分析两个特征向量之间的相似性时,常用余弦相似度表示。例如将两篇文章向量化,余弦距离可以避免因为文章的长度不同而导致距离偏大,余弦距离只考虑两篇文章生成的向量的夹角。

    余弦相似度的取值范围是[-1,1],相同两个向量的之间的相似度为1。

    余弦距离的取值范围是[0,2]。

    余弦相似度的定义公式为 c o s ( A , B ) = A ⋅ B ∣ ∣ A ∣ ∣ 2 ∣ ∣ B ∣ ∣ 2 cos(A,B)=\frac{A\cdot B}{||A||_2||B||_2} cos(A,B)=A2B2AB

    归一化后 ∣ ∣ A ∣ ∣ 2 = 1 , ∣ ∣ B ∣ ∣ 2 = 1 , ∣ ∣ A ∣ ∣ 2 ∣ ∣ B ∣ ∣ 2 = 1 ||A||_2=1,||B||_2=1,||A||_2||B||_2=1 A2=1,B2=1,A2B2=1

    余弦距离:

    d i s t ( A , B ) = 1 − c o s ( A , B ) = ∣ ∣ A ∣ ∣ 2 ∣ ∣ B ∣ ∣ 2 − A ⋅ B ∣ ∣ A ∣ ∣ 2 ∣ ∣ B ∣ ∣ 2 dist(A,B)=1-cos(A,B)=\frac{{||A||_2||B||_2} -A\cdot B}{||A||_2||B||_2} dist(A,B)=1cos(A,B)=A2B2A2B2AB,距离恒大于等于0

    欧式距离: ∣ ∣ A − B ∣ ∣ 2 = ∣ ∣ A ∣ ∣ 2 2 + ∣ ∣ B ∣ ∣ 2 2 − 2 A ⋅ B = 2 − 2 A ⋅ B = 2 ( 1 − A ⋅ B ) = > ∣ ∣ A − B ∣ ∣ = 2 d i s t ( A , B ) ||A-B||^2 = ||A||^2_2+||B||^2_2-2A\cdot B=2-2A\cdot B=2(1-A\cdot B)=>||A-B|| =\sqrt{2dist(A,B)} AB2=A22+B222AB=22AB=2(1AB)=>AB=2dist(A,B)

    由公式可以看出归一化后,欧式距离与余弦距离存在单调性关系。此时两种距离的值域都为[0,2]。

    欧式距离与余弦距离的对比:

    1.欧式距离的数值受到维度的影响,余弦相似度在高维的情况下也依然保持低维完全相同时相似度为1等性质。

    2.欧式距离体现的是距离上的绝对差异,余弦距离体现的是方向上的相对差异。

    不同情况不同选择:

    1.两个人分别取了蓝球(1,0)与红球(0,1),这两个向量的欧式距离较小,可是事实是这两个球是不同的,而余弦距离为2表示的是完全不同的意思。所以在这种情况下选择余弦距离更具合理性。

    2.两个人对APP的使用次数与使用时长分别表示为(1,10),(10,100),可知余弦相似度较小,说明这两个人的行为时相同的,可是,事实是不同的,两个人的活跃度有着极大的差异,第二个人的活跃度更高。

    余弦距离满足正定性和对称性,但是不满足三角不等式,因此余弦距离不是一个严格定义的距离。

    距离的定义:

    在一个集合中,如果每一对元素均可唯一确定一个实数,使得三条距离公理(正定性,对称性,三角不等式)成立,则该实数可以称为这对元素之间的距离。

    证明:

    1.正定性

    余弦距离公式: d i s t ( A , B ) = 1 − c o s θ dist(A,B)=1-cos\theta dist(A,B)=1cosθ ,因为 − 1 ≤ c o s θ ≤ 1 -1\leq cos\theta \leq 1 1cosθ1,所以 d i s t ( A , B ) ≥ 0 dist(A,B)\geq 0 dist(A,B)0满足正定性。

    2.对称性:

    d i s t ( A , B ) = 1 − c o s ( A , B ) = ∣ ∣ A ∣ ∣ 2 ∣ ∣ B ∣ ∣ 2 − A ⋅ B ∣ ∣ A ∣ ∣ 2 ∣ ∣ B ∣ ∣ 2 = ∣ ∣ B ∣ ∣ 2 ∣ ∣ A ∣ ∣ 2 − B ⋅ A ∣ ∣ B ∣ ∣ 2 ∣ ∣ A ∣ ∣ 2 = d i s t ( B , A ) dist(A,B)=1-cos(A,B)=\frac{{||A||_2||B||_2} -A\cdot B}{||A||_2||B||_2} =\frac{{||B||_2||A||_2} -B\cdot A}{||B||_2||A||_2} =dist(B,A) dist(A,B)=1cos(A,B)=A2B2A2B2AB=B2A2B2A2BA=dist(B,A),满足对称性。

    3.三角不等式:

    给定A=(1,0),B=(1,1),C=(0,1),则有 d i s t ( A , B ) = 1 − 2 2 dist(A,B)=1-\frac{\sqrt{2} }{2} dist(A,B)=122 , d i s t ( B , C ) = 1 − 2 2 dist(B,C)=1-\frac{\sqrt{2} }{2} dist(B,C)=122 , d i s t ( A , C ) = 1 dist(A,C)=1 dist(A,C)=1

    因此有 d i s t ( A , B ) + d i s t ( B , C ) = 2 − 2 < 1 = d i s t ( A , C ) dist(A,B)+dist(B,C) = 2 - \sqrt{2} < 1 = dist(A,C) dist(A,B)+dist(B,C)=22 <1=dist(A,C),所以得出余弦距离不符合三角不等式。

    python下的一棵樱花树:
    PYthon开发者的画笔

    展开全文
  • 这是一个使用余弦距离或找到相似度的项目,这是余弦相似度的惊人应用。 动机 当我们在Google中搜索某些东西时,搜索栏右侧有一个选项,即图像搜索。 当我注意到它时,我开始考虑它的工作并进行了研究,并使用深度...
  • 模型评估之余弦距离

    2021-02-08 14:59:39
    对于两个向量AAA和BBB,余弦距离=1−cos(A,B)余弦距离=1-cos(A,B)余弦距离=1−cos(A,B),其中,cos(A,B)cos(A,B)cos(A,B)为余弦相似度,计算公式为: cos(A,B)=A⋅B∥A∥2∥B∥2cos\left ( A,B\r

    参考资料

    1. 《百面机器学习》
    2. https://www.it1352.com/1689274.html
    3. https://blog.csdn.net/m0_37890477/article/details/80413344

    余弦距离

    定义

    对于两个向量 A A A B B B 余 弦 距 离 = 1 − c o s ( A , B ) 余弦距离=1-cos(A,B) =1cos(A,B),其中, c o s ( A , B ) cos(A,B) cos(A,B)为余弦相似度,计算公式为:

    c o s ( A , B ) = A ⋅ B ∥ A ∥ 2 ∥ B ∥ 2 cos\left ( A,B\right )=\frac{A\cdot B}{\left \| A\right \|_{2}\left \| B\right \|_{2}} cos(A,B)=A2B2AB

    余弦距离 v.s. 欧式距离

    1. 总的来说,欧式距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异。

    2. 余弦距离在高维情况下依然保持[0, 2]的范围,而欧式距离的数值则受维度的影响,范围不固定,含义也比较模糊。

    3. 如果向量模长经过归一化,欧式距离与余弦距离有着单调的关系,如Word2Vec中的向量。

    余弦距离不是严格定义的距离

    距离的定义

    在一个集合中,如果每一对元素均可唯一确定一个实数,使得三条公理(正定性,对称性,三角不等式)成立,则该实数可称为这对元素之间的距离。

    余弦距离的正定性

    根据余弦距离的定义,有

    d i s t ( A , B ) = 1 − c o s θ ⩾ 0 dist\left ( A,B\right )=1-cos\theta \geqslant 0 dist(A,B)=1cosθ0

    当且仅当 A = B A=B A=B时, d i s t ( A , B ) = 0 dist\left ( A,B\right )=0 dist(A,B)=0。因此,余弦距离满足正定性

    余弦距离的对称性

    根据余弦距离的定义,有

    d i s t ( A , B ) = ∥ A ∥ 2 ∥ B ∥ 2 − A B ∥ A ∥ 2 ∥ B ∥ 2 = ∥ B ∥ 2 ∥ A ∥ 2 − A B ∥ B ∥ 2 ∥ A ∥ 2 = d i s t ( B , A ) dist\left ( A,B\right )=\frac{\left \| A\right \|_{2}\left \| B\right \|_{2}-AB}{\left \| A\right \|_{2}\left \| B\right \|_{2}}=\frac{\left \| B\right \|_{2}\left \| A\right \|_{2}-AB}{\left \| B\right \|_{2}\left \| A\right \|_{2}}=dist\left ( B,A\right ) dist(A,B)=A2B2A2B2AB=B2A2B2A2AB=dist(B,A)

    因此,余弦距离满足对称性

    余弦距离的三角不等式

    举一个反例, A = ( 1 , 0 ) A=(1,0) A=(1,0) B = ( 1 , 1 ) B=(1,1) B=(1,1) C = ( 0 , 1 ) C=(0,1) C=(0,1),则有

    d i s t ( A , B ) + d i s t ( B , C ) = 2 − 2 < 1 = d i s t ( A , C ) dist(A,B)+dist(B,C)=2-\sqrt{2}< 1=dist(A,C) dist(A,B)+dist(B,C)=22 <1=dist(A,C)

    因此,余弦距离不满足三角不等式。

    代码示例

    from sklearn.metrics.pairwise import pairwise_distances
    from sklearn.metrics.pairwise import euclidean_distances
    
    X = [[1,3,2],[2,2,1]]
    
    cosine_dist = pairwise_distances(X, metric="cosine")
    euclidean_dist = euclidean_distances(X)
    
    print(cosine_dist)
    print(euclidean_dist)
    
    展开全文
  • 余弦距离(Cosine Distance)也可以叫余弦相似度。 几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非...
  • 一段代码计算余弦距离

    千次阅读 2022-03-18 17:12:15
    在NPU的接入过程中,经常会遇到最终结果精度不足的情况,这个时候我们就需要dump每层数据和原始框架float结果对比,可能很多人直接...通常相似度的比较可以用余弦距离和空间欧式距离表示,一般用的多的可能是余...
  • numpy :: 计算特征之间的余弦距离

    千次阅读 2021-03-17 02:47:36
    余弦距离在计算相似度的应用中经常使用,比如:文本相似度检索人脸识别检索相似图片检索原理简述下面是 但是,余弦相似度和常用的欧式距离的有所区别。余弦相似度的取值范围在-1到1之间。完全相同时数值为1,相反...
  • 欧氏距离和余弦距离

    千次阅读 2019-05-06 10:00:40
    欧氏距离和余弦距离 参考:https://blog.csdn.net/mr_evanchen/article/details/77511312 一、欧几里得距离(Euclidean Distance)  欧氏距离是最常见的距离度量,衡量的是多维空间中各个点之间的绝对距离。公式如下...
  • 余弦距离3.余弦距离的提出及与欧氏距离的关系4.余弦距离与欧氏距离的使用 1.欧式距离 考虑nnn维空间内两点A(x1,x2,...,xn),B(y1,y2,...,yn)A(x_1,x_2,...,x_n),B(y_1,y_2,...,y_n)A(x1​,x2​,...,xn​),B(y1​,...
  • 通常常用的两种度量方式为欧氏距离与余弦距离,那么在什么时候用欧氏距离?什么时候用余弦相似度?他们之间的联系与区别在哪里呢? 探索 在机器学习当中,通常以一组向量来表示样本 如上图所示,欧式距离是通过...
  • I wrote a method to calculate the cosine distance between two arrays:def cosine_distance(a, b):if len(a) != len(b):return Falsenumerator = 0denoma = 0denomb = 0for i in range(len(a)):numerator += a[i]...
  • 余弦距离与欧式距离 余弦距离与欧式距离 2、余弦距离 2、欧式距离 3、欧氏距离和余弦距离的区别 2、余弦距离 余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。相比距离度量,**余弦...
  • 首先,不是的!!! 分析如下: 距离三要素 非负性 正定性 对称性 三角不等式 ...cos=a⋅b∣∣a∣∣∗∣∣b∣∣=x1x2+y1y2x12+y12⋅x22+y22cos = \frac{a·b}{||a|| * ||b||} = \frac{x_1x_2+y_1y_2...余弦距离计算公式为
  • 余弦距离(也称为余弦相似度): 用向量空间中两个向量夹角的余弦值 作为衡量两个个体 间差异的大小的度量。向量:多维空间中有方向的线段,如果两个向量的 方向一致,即夹角接 近零,那么这两个向量就相近 。而要...
  • 余弦距离与欧式距离

    2020-04-23 15:30:37
    前几天在做数据分析笔试题的时候,上面问到了欧氏距离和余弦距离的差别,并不是很清楚。因此,在此学习下这个知识点,作个总结。 注:文本转载自:https://zhuanlan.zhihu.com/p/84643138 一、余弦距离 简单来说,...
  • 余弦距离 我们来看下公式,其实就是余弦计算公式:A和B是两个任意向量,除以它们模的乘积,就得到它们夹角的余弦值,其中向量Ai和Bi是向量A和B的每一个分量。 简单来说,余弦相似度,就是计算两个向量间的夹角的...
  • 人脸识别之欧氏距离——余弦距离

    千次阅读 2019-11-08 16:03:40
    我们将cos(A,B)cos(A,B)cos(A,B)称为余弦相似度,1−cos(A,B)1-cos(A,B)1−cos(A,B)称为余弦距离,可以看到余弦距离和cos距离是等价的。推广到高纬空间可以得到一样的结论。 现在的人脸识别方法中,会对特征做归一...
  • matlab余弦距离计算相似度

    千次阅读 2022-03-14 14:24:45
    主要思路如下: ①输入三张图片 ②灰度化 ③归一化(由于老师所给的图像大小一致,所以不需要...图2表示img1和img2的余弦相似度,余弦值为0.94204,余弦夹角为19.6029° (图3) 图3表示img1和img3的余弦相似
  • 我写了一个计算两个数组之间余弦距离的方法:def cosine_distance(a, b):if len(a) != len(b):return Falsenumerator = 0denoma = 0denomb = 0for i in range(len(a)):numerator += a[i]*b[i]denoma += abs(a[i])**2...
  • 泛统计理论初探——余弦距离简介

    千次阅读 2020-02-20 11:02:56
    统计学习-余弦距离简介 介绍余弦距离 在衡量变量之间距离的时候,我们发现可以用欧式距离、绝对值距离,本文我们将来介绍另一种距离,即余弦距离余弦距离在实际问题中经常用到,由于它的计算方法是把各个维度的点...
  • cos相似度算法 余弦距离计算

    千次阅读 2021-01-23 12:53:33
    cos相似度算法 余弦距离计算 定义 余弦距离,也称余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体之间差异大小的度量。我们知道在数学领域内,cosθ 的值越接近 1,此时两个向量的夹角 θ 越接近 0...
  • 欧氏距离余弦相似度: 为什么要引入这两个东西呢,打个比方当我们使用facenet或者其他模型提取一张人脸的1024个特征点后怎么才能知道它是属于谁的人脸呢。这时候这两种方法就起关键作用。 Sample(假如提取的一个...
  • 本节介绍 基于ngram-tf-idf的余弦距离计算相似度。 本节将介绍两种实现:基于sklearn 和 基于gensim 基于sklearn的方式如下: import os import re import jieba import pickle import logging import numpy
  • 使用python求两个矩阵的余弦距离

    千次阅读 2020-04-03 23:37:18
    文章目录求两个矩阵的余弦距离导入必要的库第一种思路第二种思路 求两个矩阵的余弦距离 余弦距离可适应用于人脸识别,将待识别人脸的图像提取特征,与人脸注册库的所有图像的特征矩阵求距离,然后找到最相似的。 ...
  • 一、余弦距离 定义:  similarity =cos⁡(θ)=A⋅B∥A∥∥B∥=∑i=1nAiBi∑i=1nAi2∑i=1nBi2, \text { similarity }=\cos (\theta)=\frac{\mathbf{A} \cdot \mathbf{B}}{\|\mathbf{A}\|\|\mathbf{B}\|}=\...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,478
精华内容 12,591
关键字:

余弦距离