python代码如何实现余弦相似性计算


Posted in Python onFebruary 09, 2020

这篇文章主要介绍了python代码如何实现余弦相似性计算,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

A:西米喜欢健身

B:超超不爱健身,喜欢打游戏

step1:分词

A:西米/喜欢/健身

B:超超/不/喜欢/健身,喜欢/打/游戏

step2:列出两个句子的并集

西米/喜欢/健身/超超/不/打/游戏

step3:计算词频向量

A:[1,1,1,0,0,0,0]

B:[0,1,1,1,1,1,1]

step4:计算余弦值

python代码如何实现余弦相似性计算

余弦值越大,证明夹角越小,两个向量越相似。

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('阿克苏苹果', '阿克苏苹果'))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
PYTHON压平嵌套列表的简单实现
Jun 08 Python
利用python解决mysql视图导入导出依赖的问题
Dec 17 Python
Python3导入自定义模块的三种方法详解
Apr 13 Python
python实现随机梯度下降法
Mar 24 Python
Python类的继承用法示例
Jan 31 Python
python抓取搜狗微信公众号文章
Apr 01 Python
django-rest-swagger的优化使用方法
Aug 29 Python
详解python常用命令行选项与环境变量
Feb 20 Python
Python环境下安装PyGame和PyOpenGL的方法
Mar 25 Python
Python中用xlwt制作表格实例讲解
Nov 05 Python
详解非极大值抑制算法之Python实现
Jun 28 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
Apr 24 Python
python字符串替换re.sub()实例解析
Feb 09 #Python
Python随机数函数代码实例解析
Feb 09 #Python
Python如何访问字符串中的值
Feb 09 #Python
python3 字符串知识点学习笔记
Feb 08 #Python
python入门之基础语法学习笔记
Feb 08 #Python
python实现飞机大战游戏(pygame版)
Oct 26 #Python
Python调用Windows命令打印文件
Feb 07 #Python
You might like
php Smarty初体验二 获取配置信息
2011/08/08 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
领悟php接口中interface存在的意义
2013/06/27 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
2019/06/05 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
js实现select跳转菜单新窗口效果代码分享(超简单)
2015/08/21 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
JS基于正则实现数字千分位用逗号分隔的方法
2017/06/16 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
2020/08/05 Javascript
使用Python的判断语句模拟三目运算
2015/04/24 Python
python中引用与复制用法实例分析
2015/06/04 Python
PyQt5每天必学之组合框
2018/04/20 Python
python3的输入方式及多组输入方法
2018/10/17 Python
Python解析json时提示“string indices must be integers”问题解决方法
2019/07/31 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
YUV转为jpg图像的实现
2019/12/09 Python
Django接收照片储存文件的实例代码
2020/03/07 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
2020/06/05 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
Python 3.9的到来到底是意味着什么
2020/10/14 Python
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
乔丹诺(Giordano)酒庄德国官网:找到最好的意大利葡萄酒
2017/12/28 全球购物
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
VisionPros美国站:加拿大在线隐形眼镜和眼镜零售商
2020/02/11 全球购物
平面设计专业大学生职业规划书
2014/03/12 职场文书
数学教研活动总结
2014/07/02 职场文书
2014年社区工会工作总结
2014/12/18 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
《圆的面积》教学反思
2016/02/19 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
Python中rapidjson参数校验实现
2021/07/25 Python
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS