精华内容
下载资源
问答
  • 和的余弦计算过程
    万次阅读
    2020-03-29 21:11:29

    1.基于用户的协同过滤算法

    • 仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法。学术界对协同过滤算法 进行了深入研究,提出了很多方法,比如基于邻域的方法(neighborhood-based)、隐语义模型(latent factor model)、基于图的随机游走算法(random walk on graph)等。

    • 基于邻域的算法是推荐系统中最基本的算法,该算法不仅在学术界得到了深入研究,而且在 业界得到了广泛应用。基于邻域的算法分为两大类,一类是基于用户的协同过滤算法,另一类是 基于物品的协同过滤算法。

    • 基于用户的协同过滤算法是推荐系统中最古老的算法,这个算法是1992年提出的,是用在了邮件过滤系统中,后面被用到了新闻过滤系统中。

    • 简单的来说,在一个在线个性化推荐系统中,基于用户的协同过滤就是,当一个用户A需要个性化推荐 时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。这种方法称为基于用户的协同过滤算法。

    • 协同过滤算法主要利用行为的相似度 计算兴趣的相似度。余弦相似度是一种计算方法。

    2.余弦相似度原理

    • 用向量空间中的两个向量夹角的余弦值作为衡量两个个体间差异大小的度量,值越接近1,就说明夹角角度越接近0°,也就是两个向量越相似,就叫做余弦相似.衡量的是两个变量在各个方向(属性)上的比例的相似度。

    3.余弦相似度公式

    • 给定用户u和用户v,令N(u)表示用户u曾经有过正反馈的物品集合,令N(v) 为用户v曾经有过正反馈的物品集合。

    • 《推荐系统实践》书中的计算公式:

    W u v = ∣ N ( u ) ∩ N ( v ) ∣ ∣ N ( u ) ∣ ∗ ∣ N ( v ) ∣ W_{uv}=\frac{|N(u)\cap N(v)|}{\sqrt{|N(u)|* |N(v)|}} Wuv=N(u)N(v) N(u)N(v)

    4.推导公式的过程

    4.1 二维变量余弦相似度的计算:

    • 如图 a ⃗ = ( x a , y a ) \vec{a}=(x_a,y_a) a =(xa,ya) b ⃗ = ( x b , y b ) \vec{b}=(x_b,y_b) b =(xb,yb),夹角为 θ \theta θ,图中c是一条辅助线:

    在这里插入图片描述

    • 上述a、b、c边的长度分别为:
      { a = x a 2 + y a 2 b = x b 2 + y b 2 c = ( x a − x b ) 2 + ( y a − y b ) 2 \begin{cases}a=\sqrt{x^2_a+y^2_a}\\b=\sqrt{x^2_b+y^2_b}\\c=\sqrt{(x_a-x_b)^2+(y_a-y_b)^2}\end{cases} a=xa2+ya2 b=xb2+yb2 c=(xaxb)2+(yayb)2

    • 根据余弦定理有:
      c o s θ = a ⃗ ⋅ b ⃗ ∣ a ⃗ ∣ ∗ ∣ b ⃗ ∣ c o s θ = a 2 + b 2 − c 2 2 ∗ a ∗ b = ( x a 2 + y a 2 ) + ( x b 2 + y b 2 ) − ( ( x a − x b ) 2 + ( y a − y b ) 2 ) 2 ∗ x a 2 + y a 2 ∗ x b 2 + y b 2 = x a ∗ x b + y a ∗ y b x a 2 + y a 2 ∗ x b 2 + y b 2 = a ⃗ ⋅ b ⃗ ∣ a ⃗ ∣ ∗ ∣ b ⃗ ∣ \begin{aligned} cos\theta&=\frac{\vec{a}\cdot\vec{b}}{|\vec{a}|*|\vec{b}|} \\ \\cos\theta&=\frac{a^2+b^2-c^2}{2*a*b} \\&=\frac{(x^2_a+y^2_a)+(x^2_b+y^2_b)-((x_a-x_b)^2+(y_a-y_b)^2)}{2*\sqrt{x^2_a+y^2_a}*\sqrt{x^2_b+y^2_b}} \\&=\frac{x_a*x_b+y_a*y_b}{\sqrt{x^2_a+y^2_a}*\sqrt{x^2_b+y^2_b}} \\&=\frac{\vec{a}\cdot\vec{b}}{|\vec{a}|*|\vec{b}|} \end{aligned} cosθcosθ=a b a b =2aba2+b2c2=2xa2+ya2 xb2+yb2 (xa2+ya2)+(xb2+yb2)((xaxb)2+(yayb)2)=xa2+ya2 xb2+yb2 xaxb+yayb=a b a b

    4.2 n n n维变量余弦相似度的计算:

    x ⃗ = ( x 1 , x 2 , x 3 , . . . , x n ) y ⃗ = ( y 1 , y 2 , y 3 , . . . , y n ) c o s θ = x ⃗ ⋅ y ⃗ ∣ x ⃗ ∣ ∗ ∣ y ⃗ ∣ = x 1 ∗ y 1 + x 2 ∗ y 2 + ⋅ ⋅ ⋅ + x n ∗ y n x 1 2 + x 2 2 + ⋅ ⋅ ⋅ + x n 2 ∗ y 1 2 + y 2 2 + ⋅ ⋅ ⋅ + y n 2 \begin{aligned}\vec{x}&=(x_1,x_2,x_3,...,x_n)\\\vec{y}&=(y_1,y_2,y_3,...,y_n)\\cos\theta&=\frac{\vec{x}\cdot\vec{y}}{|\vec{x}|*|\vec{y}|}\\&=\frac{x_1*y_1+x_2*y_2+\cdot\cdot\cdot+x_n*y_n}{\sqrt{x^2_1+x^2_2+\cdot\cdot\cdot+x^2_n}*\sqrt{y^2_1+y^2_2+\cdot\cdot\cdot+y^2_n}}\end{aligned} x y cosθ=(x1,x2,x3,...,xn)=(y1,y2,y3,...,yn)=x y x y =x12+x22++xn2 y12+y22++yn2 x1y1+x2y2++xnyn

    5.应用实例

    • 在《推荐系统实践》书中的描述,A用户对a、b、d物品有兴趣,B用户对a、c物品有兴趣,C用户对b、e物品有兴趣,D用户对c、d、e物品有兴趣,可把上述关系转化为A、B、C、D向量在各个方向上的长度:

    在这里插入图片描述

    • 代入公式计算得出A、B之间的余弦相似度,计算过程如下所示:
      A ⃗ = ( 1 , 1 , 0 , 1 , 0 ) B ⃗ = ( 1 , 0 , 1 , 0 , 0 ) C ⃗ = ( 0 , 1 , 0 , 0 , 1 ) D ⃗ = ( 0 , 0 , 1 , 1 , 1 ) c o s < A ⃗ , B ⃗ > = A ⃗ ⋅ B ⃗ ∣ A ⃗ ∣ ∗ ∣ B ⃗ ∣ = 1 ∗ 1 + 1 ∗ 0 + 0 ∗ 1 + 1 ∗ 0 + 0 ∗ 0 1 2 + 1 2 + 0 2 + 1 2 + 0 2 ∗ 1 2 + 0 2 + 1 2 + 0 2 + 0 2 = 1 6 \begin{aligned}\vec{A}&=(1,1,0,1,0)\\\vec{B}&=(1,0,1,0,0)\\\vec{C}&=(0,1,0,0,1)\\\vec{D}&=(0,0,1,1,1)\\cos<\vec{A},\vec{B}>&=\frac{\vec{A}\cdot\vec{B}}{|\vec{A}|*|\vec{B}|}\\&=\frac{1*1+1*0+0*1+1*0+0*0}{\sqrt{1^2+1^2+0^2+1^2+0^2}*\sqrt{1^2+0^2+1^2+0^2+0^2}}\\&=\frac{1}{\sqrt{6}}\end{aligned} A B C D cos<A ,B >=(1,1,0,1,0)=(1,0,1,0,0)=(0,1,0,0,1)=(0,0,1,1,1)=A B A B =12+12+02+12+02 12+02+12+02+02 11+10+01+10+00=6 1
    • 此处因为每个用户对于某物品是否有兴趣,是用0,1来衡量。当类似于这种用0,1来衡量属性值的时候,余弦相似度公式可做等价变换。假设用户A和用户B,令N(A)表示用户A曾经有过正反馈的物品集合,令N(B) 为用户B曾经有过正反馈的物品集合。则用户A和用户B的兴趣相似度为:
      A = { a , b , d } B = { a , c } W A B = ∣ N ( A ) ∩ N ( B ) ∣ ∣ N ( A ) ∣ ∗ ∣ N ( B ) ∣ = ∣ { a , b , d } ∩ { a , c } ∣ ∣ { a , b , d } ∣ ∗ ∣ { a , c } ∣ = ∣ { a } ∣ 3 ∗ 2 = 1 6 \begin{aligned}A&=\{a,b,d\}\\B&=\{a,c\}\\W_{AB}&=\frac{|N(A)\cap N(B)|}{\sqrt{|N(A)|* |N(B)|}}\\&=\frac{|\{a,b,d\}\cap\{a,c\}|}{\sqrt{|\{a,b,d\}|*|\{a,c\}|}}\\&=\frac{|\{a\}|}{\sqrt{3*2}}\\&=\frac{1}{\sqrt{6}}\end{aligned} ABWAB={a,b,d}={a,c}=N(A)N(B) N(A)N(B)={a,b,d}{a,c} {a,b,d}{a,c}=32 {a}=6 1
    更多相关内容
  • 基于CORDIC的反正弦余弦计算的FPGA实现
  • 主要介绍了余弦相似性计算及python代码实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 数值计算余弦随机过程的相关函数功率谱的Matlab实现
  • 但是从捷联惯性导航与制导的整个过程看,方向余弦矩阵是必不可少的,而四元数却是中间变量。通过对方向余弦与四元数姿态算法进行深入分析比较,并对2种算法进行仿真表明:这2种算法精度相当,且方向余弦法具有容易...
  • 余弦计算相似度度量

    千次阅读 2018-07-23 17:56:42
    对于多个不同的文本或者短文本对话消息要来计算他们之间的相似度如何,一个好的做法就是将这些文本中词语,映射到向量空间,形成文本中文字向量数据的映射关系,通过计算几个或者多个不同的向量的差异的大小,来...

    相似度度量(Similarity),即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越大说明个体差异越大。

    对于多个不同的文本或者短文本对话消息要来计算他们之间的相似度如何,一个好的做法就是将这些文本中词语,映射到向量空间,形成文本中文字和向量数据的映射关系,通过计算几个或者多个不同的向量的差异的大小,来计算文本的相似度。下面介绍一个详细成熟的向量空间余弦相似度方法计算相似度

    向量空间余弦相似度(Cosine Similarity)

     

    余弦距离,也称为余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量。

    余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性"。

     

    上图两个向量a,b的夹角很小可以说a向量和b向量有很高的的相似性,极端情况下,a和b向量完全重合。如下图:

    如上图二:可以认为a和b向量是相等的,也即a,b向量代表的文本是完全相似的,或者说是相等的。如果a和b向量夹角较大,或者反方向。如下图

    如上图三: 两个向量a,b的夹角很大可以说a向量和b向量有很低的的相似性,或者说a和b向量代表的文本基本不相似。那么是否可以用两个向量的夹角大小的函数值来计算个体的相似度呢?

    向量空间余弦相似度理论就是基于上述来计算个体相似度的一种方法。下面做详细的推理过程分析。

    想到余弦公式,最基本计算方法就是初中的最简单的计算公式,计算夹角

     

    图(4)

    的余弦定值公式为:

    但是这个是只适用于直角三角形的,而在非直角三角形中,余弦定理的公式是

    图(5)

    三角形中边a和b的夹角 的余弦计算公式为:

    公式(2)

    在向量表示的三角形中,假设a向量是(x1, y1),b向量是(x2, y2),那么可以将余弦定理改写成下面的形式:

    图(6)

    向量a和向量b的夹角 的余弦计算如下

     

    扩展,如果向量a和b不是二维而是n维,上述余弦的计算法仍然正确。假定a和b是两个n维向量,a是  ,b是  ,则a与b的夹角 的余弦等于:

    余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,夹角等于0,即两个向量相等,这就叫"余弦相似性"。

     

     

    另外:余弦距离使用两个向量夹角的余弦值作为衡量两个个体间差异的大小。相比欧氏距离,余弦距离更加注重两个向量在方向上的差异。

    借助三维坐标系来看下欧氏距离和余弦距离的区别:

    clip_image009

    从上图可以看出,欧氏距离衡量的是空间各点的绝对距离,跟各个点所在的位置坐标直接相关;而余弦距离衡量的是空间向量的夹角,更加体现在方向上的差异,而不是位置。如果保持A点位置不变,B点朝原方向远离坐标轴原点,那么这个时候余弦距离 clip_image011 是保持不变的(因为夹角没有发生变化),而A、B两点的距离显然在发生改变,这就是欧氏距离和余弦距离之间的不同之处。

    欧氏距离和余弦距离各自有不同的计算方式和衡量特征,因此它们适用于不同的数据分析模型:

    欧氏距离能够体现个体数值特征的绝对差异,所以更多的用于需要从维度的数值大小中体现差异的分析,如使用用户行为指标分析用户价值的相似度或差异。

    余弦距离更多的是从方向上区分差异,而对绝对的数值不敏感,更多的用于使用用户对内容评分来区分兴趣的相似度和差异,同时修正了用户间可能存在的度量标准不统一的问题(因为余弦距离对绝对数值不敏感)。

     

    正因为余弦相似度在数值上的不敏感,会导致这样一种情况存在:

     

    用户对内容评分,按5分制,X和Y两个用户对两个内容的评分分别为(1,2)和(4,5),使用余弦相似度得到的结果是0.98,两者极为相似。但从评分上看X似乎不喜欢2这个 内容,而Y则比较喜欢,余弦相似度对数值的不敏感导致了结果的误差,需要修正这种不合理性就出现了调整余弦相似度,即所有维度上的数值都减去一个均值,比如X和Y的评分均值都是3,那么调整后为(-2,-1)和(1,2),再用余弦相似度计算,得到-0.8,相似度为负值并且差异不小,但显然更加符合现实。

    那么是否可以在(用户-商品-行为数值)矩阵的基础上使用调整余弦相似度计算呢?从算法原理分析,复杂度虽然增加了,但是应该比普通余弦夹角算法要强。


     

    【下面举一个例子,来说明余弦计算文本相似度】

        举一个例子来说明,用上述理论计算文本的相似性。为了简单起见,先从句子着手。

             句子A:这只皮靴号码大了。那只号码合适

    句子B:这只皮靴号码不小,那只更合适

    怎样计算上面两句话的相似程度?

    基本思路是:如果这两句话的用词越相似,它们的内容就应该越相似。因此,可以从词频入手,计算它们的相似程度。

    第一步,分词

    句子A:这只/皮靴/号码/大了。那只/号码/合适。

    句子B:这只/皮靴/号码/不/小,那只/更/合适。

    第二步,列出所有的词。

    这只,皮靴,号码,大了。那只,合适,不,小,很

    第三步,计算词频。

    句子A:这只1,皮靴1,号码2,大了1。那只1,合适1,不0,小0,更0

    句子B:这只1,皮靴1,号码1,大了0。那只1,合适1,不1,小1,更1

    第四步,写出词频向量。

      句子A:(1,1,2,1,1,1,0,0,0)

      句子B:(1,1,1,0,1,1,1,1,1)

    到这里,问题就变成了如何计算这两个向量的相似程度。我们可以把它们想象成空间中的两条线段,都是从原点([0, 0, ...])出发,指向不同的方向。两条线段之间形成一个夹角,如果夹角为0度,意味着方向相同、线段重合,这是表示两个向量代表的文本完全相等;如果夹角为90度,意味着形成直角,方向完全不相似;如果夹角为180度,意味着方向正好相反。因此,我们可以通过夹角的大小,来判断向量的相似程度。夹角越小,就代表越相似。

    使用上面的公式(4)

    计算两个句子向量

    句子A:(1,1,2,1,1,1,0,0,0)

    和句子B:(1,1,1,0,1,1,1,1,1)的向量余弦值来确定两个句子的相似度。

    计算过程如下:

    计算结果中夹角的余弦值为0.81非常接近于1,所以,上面的句子A和句子B是基本相似的

    由此,我们就得到了文本相似度计算的处理流程是:

        (1)找出两篇文章的关键词;

     (2)每篇文章各取出若干个关键词,合并成一个集合,计算每篇文章对于这个集合中的词的词频

     (3)生成两篇文章各自的词频向量;

     (4)计算两个向量的余弦相似度,值越大就表示越相似。

    转自:https://blog.csdn.net/zz_dd_yy/article/details/51926305

    展开全文
  • 余弦相似度计算

    2021-02-28 18:44:24
    余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这...余弦相似性推导公式如下: 【下面举一个例子,来说明余弦计算文本相似...

    余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性"。

    098fed85cc09fe6cad1f787cdad50a9c.png

    我们知道,对于两个向量,如果他们之间的夹角越小,那么我们认为这两个向量是越相似的。余弦相似性就是利用了这个理论思想。它通过计算两个向量的夹角的余弦值来衡量向量之间的相似度值。余弦相似性推导公式如下:

    12ffdd508ecef7ac25dc7ce761e887b5.png

    49dbccefc123d5a977b380ea42ec3371.png

    02090535538486110235526535e04454.png

    【下面举一个例子,来说明余弦计算文本相似度】

    举一个例子来说明,用上述理论计算文本的相似性。为了简单起见,先从句子着手。

    句子A:这只皮靴号码大了。那只号码合适

    句子B:这只皮靴号码不小,那只更合适

    怎样计算上面两句话的相似程度?

    基本思路是:如果这两句话的用词越相似,它们的内容就应该越相似。因此,可以从词频入手,计算它们的相似程度。

    第一步,分词。

    句子A:这只/皮靴/号码/大了。那只/号码/合适。

    句子B:这只/皮靴/号码/不/小,那只/更/合适。

    第二步,列出所有的词。

    这只,皮靴,号码,大了。那只,合适,不,小,很

    第三步,计算词频。

    句子A:这只1,皮靴1,号码2,大了1。那只1,合适1,不0,小0,更0

    句子B:这只1,皮靴1,号码1,大了0。那只1,合适1,不1,小1,更1

    第四步,写出词频向量。

    句子A:(1,1,2,1,1,1,0,0,0)

    句子B:(1,1,1,0,1,1,1,1,1)

    到这里,问题就变成了如何计算这两个向量的相似程度。我们可以把它们想象成空间中的两条线段,都是从原点([0, 0, ...])出发,指向不同的方向。两条线段之间形成一个夹角,如果夹角为0度,意味着方向相同、线段重合,这是表示两个向量代表的文本完全相等;如果夹角为90度,意味着形成直角,方向完全不相似;如果夹角为180度,意味着方向正好相反。因此,我们可以通过夹角的大小,来判断向量的相似程度。夹角越小,就代表越相似。

    使用上面的公式(4)

    f88fa44453d2511575be50467d31eb4c.png

    计算两个句子向量

    句子A:(1,1,2,1,1,1,0,0,0)

    和句子B:(1,1,1,0,1,1,1,1,1)的向量余弦值来确定两个句子的相似度。

    计算过程如下:

    5b26b9f256dd6f909da78b1c7914c51f.png

    计算结果中夹角的余弦值为0.81非常接近于1,所以,上面的句子A和句子B是基本相似的。

    展开全文
  • 余弦计算相似度原理tensorflow实践

    万次阅读 2018-07-16 09:30:35
    对于多个不同的文本或者短文本对话消息要来计算他们之间的相似度如何,一个好的做法就是将这些文本中词语,映射到向量空间,形成文本中文字向量数据的映射关系,通过计算几个或者多个不同的向量的差异的大小,来...

    余弦计算相似度原理

    相似度度量(Similarity),即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越大说明个体差异越大。

    对于多个不同的文本或者短文本对话消息要来计算他们之间的相似度如何,一个好的做法就是将这些文本中词语,映射到向量空间,形成文本中文字和向量数据的映射关系,通过计算几个或者多个不同的向量的差异的大小,来计算文本的相似度。下面介绍一个详细成熟的向量空间余弦相似度方法计算相似度

    向量空间余弦相似度(Cosine Similarity)

    余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性"。

    上图两个向量a,b的夹角很小可以说a向量和b向量有很高的的相似性,极端情况下,a和b向量完全重合。如下图:

    如上图二:可以认为a和b向量是相等的,也即a,b向量代表的文本是完全相似的,或者说是相等的。如果a和b向量夹角较大,或者反方向。如下图

    如上图三: 两个向量a,b的夹角很大可以说a向量和b向量有很底的的相似性,或者说a和b向量代表的文本基本不相似。那么是否可以用两个向量的夹角大小的函数值来计算个体的相似度呢?

    向量空间余弦相似度理论就是基于上述来计算个体相似度的一种方法。下面做详细的推理过程分析。

    想到余弦公式,最基本计算方法就是初中的最简单的计算公式,计算夹角

     

    图(4)

    的余弦定值公式为:

    但是这个是只适用于直角三角形的,而在非直角三角形中,余弦定理的公式是

    图(5)

    三角形中边a和b的夹角 的余弦计算公式为:

    公式(2)

    在向量表示的三角形中,假设a向量是(x1, y1),b向量是(x2, y2),那么可以将余弦定理改写成下面的形式:

    图(6)

    向量a和向量b的夹角 的余弦计算如下

     

    扩展,如果向量a和b不是二维而是n维,上述余弦的计算法仍然正确。假定a和b是两个n维向量,a是  ,b是  ,则a与b的夹角 的余弦等于:

    余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,夹角等于0,即两个向量相等,这就叫"余弦相似性"。

    【下面举一个例子,来说明余弦计算文本相似度】

        举一个例子来说明,用上述理论计算文本的相似性。为了简单起见,先从句子着手。

             句子A:这只皮靴号码大了。那只号码合适

    句子B:这只皮靴号码不小,那只更合适

    怎样计算上面两句话的相似程度?

    基本思路是:如果这两句话的用词越相似,它们的内容就应该越相似。因此,可以从词频入手,计算它们的相似程度。

    第一步,分词

    句子A:这只/皮靴/号码/大了。那只/号码/合适。

    句子B:这只/皮靴/号码/不/小,那只/更/合适。

    第二步,列出所有的词。

    这只,皮靴,号码,大了。那只,合适,不,小,很

    第三步,计算词频。

    句子A这只1,皮靴1,号码2,大了1。那只1,合适1,不0,小0,更0

    句子B这只1,皮靴1,号码1,大了0。那只1,合适1,不1,小1,更1

    第四步,写出词频向量。

      句子A:(1,1,2,1,1,1,0,0,0)

      句子B:(1,1,1,0,1,1,1,1,1)

    到这里,问题就变成了如何计算这两个向量的相似程度。我们可以把它们想象成空间中的两条线段,都是从原点([0, 0, ...])出发,指向不同的方向。两条线段之间形成一个夹角,如果夹角为0度,意味着方向相同、线段重合,这是表示两个向量代表的文本完全相等;如果夹角为90度,意味着形成直角,方向完全不相似;如果夹角为180度,意味着方向正好相反。因此,我们可以通过夹角的大小,来判断向量的相似程度。夹角越小,就代表越相似。

    使用上面的公式(4)

     

    计算两个句子向量

    句子A:(1,1,2,1,1,1,0,0,0)

    和句子B:(1,1,1,0,1,1,1,1,1)的向量余弦值来确定两个句子的相似度。

    计算过程如下:

    计算结果中夹角的余弦值为0.81非常接近于1,所以,上面的句子A和句子B是基本相似的

    由此,我们就得到了文本相似度计算的处理流程是:

        (1)找出两篇文章的关键词;

     (2)每篇文章各取出若干个关键词,合并成一个集合,计算每篇文章对于这个集合中的词的词频

     (3)生成两篇文章各自的词频向量;

     (4)计算两个向量的余弦相似度,值越大就表示越相似。

    tensorflow实践



    展开全文
  • 这篇文章主要介绍了python Opencv计算图像相似度过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一、相关概念 一般我们人区分谁是谁,给物品分类,都...
  • 通常情况下,在端侧的模型推理过程中,使用的是量化后的数据来参与各层计算的,而并非原始的float数据类型,通常的量化数据类型有UINT8/INT8/INT16等等,由于数据表示范围的差异,在量化过程中,必然涉及到精度损失...
  • 预备知识:欧式距离与余弦相似度计算方法 1、欧式距离 随机取出两个词向量AB,A的词向量表示为[A1,A2,A3…An],B的词向量表示为[B1,B2,B3…Bn]。对于词向量AB,其欧式距离计算公式如下: 2、余弦相似度 对于词向量...
  • 余弦相似度计算的实现方式

    千次阅读 多人点赞 2020-11-21 14:01:19
    自己手写实现一个,numpy、sklearn、scipy.spatial等 当数据量大了以后就得采用其他的方法了,faiss库GGNN-graph-based GPU nearest neighbor search 先做调研
  • ES计算余弦相似度

    万次阅读 2021-07-19 16:33:58
    在调研过程中,发现es可以做相似度的计算,相似度可以表示用户对某个商品的喜爱程度。下面我就介绍一下如何实现的。 二、数据源 要进行数据计算,首先是要有数据基础。我们的数据源是什么呢?我们目前数据来源是用户...
  • 一段代码计算余弦距离

    千次阅读 2022-03-18 17:12:15
    在NPU的接入过程中,经常会遇到最终结果精度不足的情况,这个时候我们就需要dump每层数据原始框架float结果对比,可能很多人直接beyond compare,有时候肉眼可以看出来,不过最好的方法还是看它的余弦相似度。...
  • 因为在需求中需要完成GPU来加载数据和计算,因此使用普通的程序是无法完成调用GPU的任务,因此,在实现过程中决定采用卷积神经网络的思想来完成数据的加载和计算,同时也能根据需求,分别测试CPUGPU两种设备下的...
  • cos相似度算法 余弦距离计算

    千次阅读 2021-01-23 12:53:33
    cos相似度算法 余弦距离计算 定义 余弦距离,也称余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体之间差异大小的度量。我们知道在数学领域内,cosθ 的值越接近 1,此时两个向量的夹角 θ 越接近 0...
  • 使用余弦相似度算法计算文本相似度 </h1> <div class="clear">... 在工作中一直使用余弦相似度算法计算两段文本的相似度两个用户的相似度。一直弄不明白多维的余弦相似度公式是怎么推导来的。今...
  • 文章目录0 输入数据1 余弦相似度(Cosine Similarity)2 torch.cosine_similarity3 问题4 分析与解决4.1 答案 0 输入数据 import torch # 设置随机数种子,以保证结果可重现 torch.manual_seed(0) a = torch.randn(4...
  • 参考:https://www.bilibili.com/video/av38554878?p=4 ...user_cf相关打分计算: 重点就是求两两相关性是求两者共同有的之间进行的相关性计算 下面是求出的u1对i2的打分预测: ...
  • 余弦相似度 曼哈顿距离 欧几里得距离 明式距离(是前两种距离测度的推广),在极限情况下的距离是切比雪夫距离 2.基于字符的 编辑距离 simhash 共有字符数(有点类似 onehot 编码 ,直接统计两个文本的共有字符数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,587
精华内容 14,234
热门标签
关键字:

和的余弦计算过程