使用Python计算两个不同列表的相似度

 更新时间:2023年07月28日 08:51:33   作者:袁袁袁袁满  
这篇文章主要介绍了使用Python计算两个不同列表的相似度,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

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

到此这篇关于使用Python计算两个不同列表的相似度的文章就介绍到这了,更多相关Python计算列表相似度内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python 创建一个空dataframe 然后添加行数据的实例

    python 创建一个空dataframe 然后添加行数据的实例

    今天小编就为大家分享一篇python 创建一个空dataframe 然后添加行数据的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • pytorch之torch.flatten()和torch.nn.Flatten()的用法

    pytorch之torch.flatten()和torch.nn.Flatten()的用法

    这篇文章主要介绍了pytorch之torch.flatten()和torch.nn.Flatten()的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • python教程之利用pyautogui图形自动化击败重复性办公任务

    python教程之利用pyautogui图形自动化击败重复性办公任务

    在使用Python做脚本的话,有两个库可以使用,一个为PyUserInput库,另一个为pyautogui库,就本人而言更喜欢使用pyautogui库,该库功能多,使用便利,下面这篇文章主要给大家介绍了关于python教程之利用pyautogui图形自动化击败重复性办公任务的相关资料,需要的朋友可以参考下
    2022-03-03
  • Python文件如何读取read()函数

    Python文件如何读取read()函数

    这篇文章主要介绍了Python文件如何读取read()函数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • python3获取文件中url内容并下载代码实例

    python3获取文件中url内容并下载代码实例

    这篇文章主要介绍了python3获取文件中url内容并下载代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Python中的 Numpy 数组形状改变及索引切片

    Python中的 Numpy 数组形状改变及索引切片

    这篇文章主要介绍了Python中的 Numpy 数组形状改变及索引切片,Numpy提供了一个reshape()方法,它可以改变数组的形状,返回一个新的数组,更多相关内容需要的小伙伴可以参考下面文章
    2022-05-05
  • 利用Pytorch实现ResNet网络构建及模型训练

    利用Pytorch实现ResNet网络构建及模型训练

    这篇文章主要为大家介绍了利用Pytorch实现ResNet网络构建及模型训练详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • python通过socket查询whois的方法

    python通过socket查询whois的方法

    这篇文章主要介绍了python通过socket查询whois的方法,涉及Python基于socket模块进行查询的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Python列表对象中元素的删除操作方法

    Python列表对象中元素的删除操作方法

    列表的删操作指的是在列表中删除已存在的元素,列表中的元素被删除后,后面所有的元素依次往前移动一位,挂在被删除元素的索引下,保证每一个索引都有元素,这篇文章主要介绍了Python列表对象中元素的删除操作方法,需要的朋友可以参考下
    2022-12-12
  • Jupyter notebook中如何添加Pytorch运行环境

    Jupyter notebook中如何添加Pytorch运行环境

    这篇文章主要介绍了Jupyter notebook中如何添加Pytorch运行环境,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02

最新评论