python库余弦相似度多少算好

2023-03-08 21:34:34 16 0
卡卡

导读:本篇文章恰卡编程网来给大家介绍有关python库余弦相似度多少算好的相关内容,希望对大家有所帮助,一起来看看吧。

余弦相似度python实现

通过夹角的大小,来判断向量的相似程度。夹角越小,就代表越相似。

python库余弦相似度多少算好

余弦相似度是文本相似度度量中使用较多的一种方法,对于两个向量X和Y,其对应的形式如下:

X=(x1,x2...,xn)

Y=(y1,y2...,yn)

其向量的余弦相似度公式为:

X,Y对应其中的A和B

python实现:

输出结果:0.5000000000000001

结果越接近1,夹角就越接近0,代表越相似。

越趋近于-1,他们的方向越相反;接近于0,表示两个向量近乎于正交

余弦相似度

简介:余弦相似度,即两物体之间的cos$值,值越大,表示两物体的相似度越大。

1、向量空间余弦相似度:即向量空间中两夹角的余弦值。其值在0-1之间,两向量越接近,其夹角越小,余弦值越接近于1。

2、n维空间的余弦公式:

3、python中的工具:

numpy中提供了范数的计算工具: linalg.norm(),假定X、Y均为列向量,

则:    num = float(X.T * Y)#若为行向量则 X * Y.T

           denom = linalg.norm(X) * linalg.norm(Y)

           cos = num / denom#余弦值

           sim =0.5+0.5* cos#归一化

           dist = linalg.norm(X - Y)

          sim =1.0/ (1.0+ dist)#归一化

4、例子:

***文本相似度****

sim =1.0/ (1.0+ dist)#归一化

句子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)计算两个向量的余弦相似度,值越大就表示越相似。

余弦相似度是多少?

余弦相似度是-1。

余弦相似度,又称为余弦相似性,是通过计算两个向量的夹角余弦值来评估他们的相似度。余弦相似度将向量根据坐标值,绘制到向量空间中,如最常见的二维空间。

两个向量有相同的指向时,余弦相似度的值为1;两个向量夹角为90°时,余弦相似度的值为0;两个向量指向完全相反的方向时,余弦相似度的值为-1。

余弦相似度的介绍:

余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上。

与欧几里德距离类似,基于余弦相似度的计算方法也是把用户的喜好作为n-维坐标系中的一个点,通过连接这个点与坐标系的原点构成一条直线(向量),两个用户之间的相似度值就是两条直线(向量)间夹角的余弦值。

因为连接代表用户评分的点与原点的直线都会相交于原点,夹角越小代表两个用户越相似,夹角越大代表两个用户的相似度越小。同时在三角系数中,角的余弦值是在[-1, 1]之间的,0度角的余弦值是1,180角的余弦值是-1。

python 计算每行之间的余弦相似性

比如你在a.py的文件中定义了一个test(x,y)函数,在shell中调用的时候from a import testtest(x,y)

结语:以上就是恰卡编程网为大家整理的关于python库余弦相似度多少算好的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于python库余弦相似度多少算好的相关内容别忘了在本站进行查找喔。

收藏
分享
海报
0 条评论
16
上一篇:django如何定义提示框? 下一篇:django做一个网站要多久(django建站)

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码