cos相似度算法 余弦距离计算

定义

余弦距离,也称余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体之间差异大小的度量。我们知道在数学领域内,cosθ 的值越接近 1,此时两个向量的夹角 θ 越接近 0度,表明这两个向量越相似,在极端情况下,当夹角为0度时 表示2个向量完全重合,这就叫“余弦相似性”。

公式

在平面直角三角形中余弦定值公式为

file

cos(θ) = a / c
但是在非直角三角形中,并不能用余弦定理求出cos(θ),在任意三角形中cos(θ)的求解公式为:

file

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T5Z98usV-1611377446693)(http://jeff.spring4all.com/FotFBt0mq8X-Lfsw7fgM-NXtpiOU)]

但是向量并不一定存在于平面中,因此在n维的空间里,cos(θ)的求解公式为

file

举例

以Meng 和 man为例,来计算二者之间的相似度。过程如下:

1、进行分词,并获取每个词在字符串中出现的次数作为向量值

词语 在第一个字符串出现的次数 在第二个字符串出现的次数
M 1 0
e 1 0
n 1 1
g 1 0
m 0 1
a 0 1

于是可以得出一个关于词语的map

{
   
	"M":[1][0],
	"e":[1][0],
	"n":[1][1],
	"g":[1][0],
	"m":[0][1],
	"a":[0][1]
}

根据计算公式可以得到

file

代码实现

public int cosSimilarity (String str1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值