Bootstrap

Python实用技巧:两个不同列表给出相似度(int、str类型)

Python数据开发工作中的需求两个不同列表给出相似度,本文实现判断数字类型相似度和字符串类型相似度,非常实用!


数字类型相似度


可以使用余弦相似度来计算两个列表的相似度。具体步骤如下:

  1. 将两个列表转化为向量形式,即将列表中的元素作为向量的分量。
  2. 计算向量的点积。
  3. 计算向量的模长。
  4. 计算余弦值。
  5. 将余弦值作为相似度。

以下是Python代码实现:

import math

def cosine_similarity(list1, list2):
    dot_product = sum([list1[i]*list2[i] for i in range(len(list1))])
    norm1 = math.sqrt(sum([x**2 for x in list1]))
    norm2 = math.sqrt(sum([x**2 for x in list2]))
    similarity = dot_product / (norm1 * norm2)
    return similarity

# 示例
list1 = [1, 2, 3, 4, 5]
list2 = [3, 4, 5, 6, 7]
similarity = cosine_similarity(list1, list2)
print(similarity)

输出结果为:

0.9970544855015815

表示两个列表的相似度很高。


字符串类型相似度



可以使用Jaccard相似度来计算两个字符串列表的相似度。Jaccard相似度是通过计算两个集合的交集与并集之比来衡量它们的相似程度。具体步骤如下:

  1. 将两个列表转化为集合形式,即将列表中的元素作为集合的元素。
  2. 计算两个集合的交集。
  3. 计算两个集合的并集。
  4. 计算交集与并集之比。
  5. 将比值作为相似度。

以下是Python代码实现:

def jaccard_similarity(list1, list2):
    set1 = set(list1)
    set2 = set(list2)
    intersection = len(set1.intersection(set2))
    union = len(set1.union(set2))
    similarity = intersection / union
    return similarity

# 示例
list1 = ['apple', 'banana', 'orange']
list2 = ['apple', 'pear', 'peach']
similarity = jaccard_similarity(list1, list2)
print(similarity)

输出结果为:

0.25

表示两个字符串列表的相似度较低。

以上是此问题报错原因的解决方法,欢迎评论区留言讨论是否能解决,如果有用欢迎点赞收藏文章谢谢支持,博主才有动力持续记录遇到的问题!!!

千人全栈VIP答疑群联系博主帮忙解决报错

由于博主时间精力有限,每天私信人数太多,没办法每个粉丝都及时回复,所以优先回复VIP粉丝,可以通过订阅限时9.9付费专栏《100天精通Python从入门到就业》进入千人全栈VIP答疑群,获得优先解答机会(代码指导、远程服务),白嫖80G学习资料大礼包,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html

  • 优点作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会),此专栏文章是专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试!

  • 专栏福利简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等

  • 注意:如果希望得到及时回复,和大佬们交流学习,订阅专栏后私信博主进千人VIP答疑群在这里插入图片描述
    在这里插入图片描述

免费资料获取,更多粉丝福利,关注下方公众号获取

在这里插入图片描述

书籍推荐

《元宇宙Ⅱ:图解元技术区块链、元资产与Web3.0、元人与理想国》

在这里插入图片描述

这是一个全新的时代:Web3.0构建的经济体系,DID身份的跨平台操作,数字NFT的原子级镜像,以及DeFi的无摩擦元资产再分配…2022年,奇点出现:元人即将诞生;元资产即将分配;元宇宙正在成形。本套书通过元宇宙三大定律、大统一方程、熵增定律、Web3.0、万亿元资产、元人与区块链文明构建了元宇宙第一大楼。第1-80层:数字人展位、电子宠物、数字藏品、3D沉侵式旅游、DeFi。第81-160层:AI、VR、AR、MR、DAO、Web3.0、边缘计算。第161-214+层:多场景阅读、4K空间、跨链许可、维度转换、无限∞世界。

抽奖送书老规矩(不点赞收藏中奖无效):注意记得关注博主不然中奖了还不知道!!!

  • 1. 点赞收藏文章
  • 2. 评论区留言:人生苦短,我用Python!!!(留言才能进入奖池,每人最多留言三条)
  • 3. 周日八点爬虫抽奖5人
  • 如果不想抽奖当当自营购买链接:http://product.dangdang.com/29513251.html

书籍推荐

《从零开始读懂量子力学》

在这里插入图片描述

本书将为广大科技爱好者系统、严谨地介绍量子力学的基本原理和应用。读者需要熟悉高中物理和数学的相关内容,愿意学习科学的思维方式。虽然量子力学是一门有着神秘面纱、打破生活常识、颠覆人类认知的现代科学,但是读者只要愿意随着本书一起思考,就一定能够清楚地了解量子力学理论的基本概念,最终全面认识它在科学体系中的作用和对现代技术的贡献。
本书的叙述方式是一边讲解科学理论,一边介绍重要的实验现象和科学原理的应用。本书在第一篇中依次讲解了状态叠加、波粒二象性、不确定性原理等基本概念;在第二篇中介绍了量子力学在凝聚态物理和基本粒子物理领域中的应用。同时,对由量子力学催生的现代电子技术,也着重做了介绍。

抽奖送书老规矩(不点赞收藏中奖无效):注意记得关注博主不然中奖了还不知道!!!

  • 1. 点赞收藏文章
  • 2. 评论区留言:人生苦短,我用Python!!!(留言才能进入奖池,每人最多留言三条)
  • 3. 周日八点爬虫抽奖5人
  • 如果不想抽奖京东自营购买链接:https://item.jd.com/13096523.html
;