余弦相似性计算及python代码实现过程解析
作者:郭雪原 时间:2021-10-15 14:44:56
A:西米喜欢健身
B:超超不爱健身,喜欢打游戏
step1:分词
A:西米/喜欢/健身
B:超超/不/喜欢/健身,喜欢/打/游戏
step2:列出两个句子的并集
西米/喜欢/健身/超超/不/打/游戏
step3:计算词频向量
A:[1,1,1,0,0,0,0]
B:[0,1,1,1,1,1,1]
step4:计算余弦值
余弦值越大,证明夹角越小,两个向量越相似。
step5:python代码实现
import jieba
import jieba.analyse
def words2vec(words1=None, words2=None):
v1 = []
v2 = []
tag1 = jieba.analyse.extract_tags(words1, withWeight=True)
tag2 = jieba.analyse.extract_tags(words2, withWeight=True)
tag_dict1 = {i[0]: i[1] for i in tag1}
tag_dict2 = {i[0]: i[1] for i in tag2}
merged_tag = set(tag_dict1.keys()) | set(tag_dict2.keys())
for i in merged_tag:
if i in tag_dict1:
v1.append(tag_dict1[i])
else:
v1.append(0)
if i in tag_dict2:
v2.append(tag_dict2[i])
else:
v2.append(0)
return v1, v2
def cosine_similarity(vector1, vector2):
dot_product = 0.0
normA = 0.0
normB = 0.0
for a, b in zip(vector1, vector2):
dot_product += a * b
normA += a ** 2
normB += b ** 2
if normA == 0.0 or normB == 0.0:
return 0
else:
return round(dot_product / ((normA**0.5)*(normB**0.5)) * 100, 2)
def cosine(str1, str2):
vec1, vec2 = words2vec(str1, str2)
return cosine_similarity(vec1, vec2)
print(cosine('阿克苏苹果', '阿克苏苹果'))
来源:https://www.cnblogs.com/guoxueyuan/p/7779239.html
标签:余弦,相似性,计算,python
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Django发送html邮件的方法
2021-04-06 13:22:52
关于Ajax responseText 中文乱码问题
2008-02-12 16:30:00
python如何对链表操作
2023-08-18 05:40:46
asp.net性能的技巧
2007-10-07 21:55:00
JavaScript图片放大镜效果
2009-10-19 22:15:00
![](https://img.aspxhome.com/file/UploadPic/up/2009101922390143.gif)
数字人整合动网论坛的方法
2009-05-29 18:23:00
Python random模块的运用详解
2021-06-02 13:00:59
JavaScript数据结构中串的表示与应用实例
2023-08-26 10:38:38
基于php解决json_encode中文UNICODE转码问题
2023-07-02 20:51:22
XML卷之实战锦囊(2):动态查询
2008-09-05 17:20:00
python保存图片时如何和原图大小一致
2022-07-13 03:34:36
![](https://img.aspxhome.com/file/2023/4/81854_0s.png)
python原始套接字编程示例分享
2021-10-09 19:00:07
![](https://img.aspxhome.com/file/2023/8/72008_0s.jpg)
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2023-11-18 03:28:57
python使用建议技巧分享(三)
2021-07-07 06:58:16
ASP+ajax注册即时提示程序代码
2011-02-05 11:25:00
斜角滑动门导航条 DIV+CSS
2008-07-19 15:45:00
![](https://img.aspxhome.com/file/UploadPic/20087/19/200871916554645s.gif)
CSS Hacks
2008-07-20 13:04:00
Python入门教程(九)Python字符串介绍
2023-02-05 22:34:43
![](https://img.aspxhome.com/file/2023/8/80488_0s.png)
python遗传算法之单/多目标规划问题
2021-09-09 20:27:24
![](https://img.aspxhome.com/file/2023/8/76878_0s.png)
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2023-11-14 16:13:53