使用Python計(jì)算兩個(gè)不同列表的相似度
數(shù)字類型相似度
可以使用余弦相似度來計(jì)算兩個(gè)列表的相似度。
具體步驟如下:
- 將兩個(gè)列表轉(zhuǎn)化為向量形式,即將列表中的元素作為向量的分量。
- 計(jì)算向量的點(diǎn)積。
- 計(jì)算向量的模長。
- 計(jì)算余弦值。
- 將余弦值作為相似度。
Python代碼實(shí)現(xiàn):
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)
輸出結(jié)果為:
0.9970544855015815
表示兩個(gè)列表的相似度很高。
字符串類型相似度
可以使用Jaccard相似度來計(jì)算兩個(gè)字符串列表的相似度。
Jaccard相似度是通過計(jì)算兩個(gè)集合的交集與并集之比來衡量它們的相似程度。具體步驟如下:
- 將兩個(gè)列表轉(zhuǎn)化為集合形式,即將列表中的元素作為集合的元素。
- 計(jì)算兩個(gè)集合的交集。
- 計(jì)算兩個(gè)集合的并集。
- 計(jì)算交集與并集之比。
- 將比值作為相似度。
Python代碼實(shí)現(xiàn):
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)
輸出結(jié)果為:
0.25
表示兩個(gè)字符串列表的相似度較低。
到此這篇關(guān)于使用Python計(jì)算兩個(gè)不同列表的相似度的文章就介紹到這了,更多相關(guān)Python計(jì)算列表相似度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pytest自定義命令行參數(shù)的實(shí)現(xiàn)
本文主要介紹了在使用pytest運(yùn)行測試用例時(shí),通過傳遞自定義命令行參數(shù)來啟動(dòng)mitmdump進(jìn)程進(jìn)行抓包,具有一定的參考價(jià)值,感興趣的可以了解一下2024-12-12獲取CSDN文章內(nèi)容并轉(zhuǎn)換為markdown文本的python
這篇文章主要介紹了自己寫的小工具,可以直接獲取csdn文章并轉(zhuǎn)換為markdown格式,需要的朋友可以參考下2020-09-09python 實(shí)現(xiàn)的車牌識(shí)別項(xiàng)目
這篇文章主要介紹了python 實(shí)現(xiàn)的車牌識(shí)別項(xiàng)目,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01Python?GUI實(shí)現(xiàn)PDF轉(zhuǎn)Word功能
這篇文章主要介紹了如何使用?wxPython?創(chuàng)建一個(gè)簡單的圖形用戶界面(GUI)應(yīng)用程序,結(jié)合?pdf2docx?庫,實(shí)現(xiàn)將?PDF?轉(zhuǎn)換為?Word?文檔的功能,需要的可以參考下2024-12-12使用wxPython和ECharts實(shí)現(xiàn)生成和保存HTML圖表
wxPython是一個(gè)基于wxWidgets的Python?GUI庫,ECharts是一個(gè)用于數(shù)據(jù)可視化的JavaScript庫,本文主要為大家介紹了如何使用wxPython和ECharts庫來生成和保存HTML圖表,感興趣的可以學(xué)習(xí)一下2023-08-08基于Python實(shí)現(xiàn)身份證信息識(shí)別功能
身份證是用于證明個(gè)人身份和身份信息的官方證件,在現(xiàn)代社會(huì)中,身份證被廣泛應(yīng)用于各種場景,如就業(yè)、教育、醫(yī)療、金融等,它包含了個(gè)人的基本信息,本文給大家介紹了如何基于Python實(shí)現(xiàn)身份證信息識(shí)別功能,感興趣的朋友可以參考下2024-01-01關(guān)于numpy中np.nonzero()函數(shù)用法的詳解
下面小編就為大家?guī)硪黄P(guān)于numpy中np.nonzero()函數(shù)用法的詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02