使用Python计算两个不同列表的相似度
数字类型相似度
可以使用余弦相似度来计算两个列表的相似度。
具体步骤如下:
- 将两个列表转化为向量形式,即将列表中的元素作为向量的分量。
- 计算向量的点积。
- 计算向量的模长。
- 计算余弦值。
- 将余弦值作为相似度。
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相似度是通过计算两个集合的交集与并集之比来衡量它们的相似程度。具体步骤如下:
- 将两个列表转化为集合形式,即将列表中的元素作为集合的元素。
- 计算两个集合的交集。
- 计算两个集合的并集。
- 计算交集与并集之比。
- 将比值作为相似度。
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 然后添加行数据的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-06-06
pytorch之torch.flatten()和torch.nn.Flatten()的用法
这篇文章主要介绍了pytorch之torch.flatten()和torch.nn.Flatten()的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2025-04-04
python教程之利用pyautogui图形自动化击败重复性办公任务
在使用Python做脚本的话,有两个库可以使用,一个为PyUserInput库,另一个为pyautogui库,就本人而言更喜欢使用pyautogui库,该库功能多,使用便利,下面这篇文章主要给大家介绍了关于python教程之利用pyautogui图形自动化击败重复性办公任务的相关资料,需要的朋友可以参考下2022-03-03
Jupyter notebook中如何添加Pytorch运行环境
这篇文章主要介绍了Jupyter notebook中如何添加Pytorch运行环境,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-02-02


最新评论