余弦相似性計算及python代碼實現(xiàn)過程解析
A:西米喜歡健身
B:超超不愛健身,喜歡打游戲
step1:分詞
A:西米/喜歡/健身
B:超超/不/喜歡/健身,喜歡/打/游戲
step2:列出兩個句子的并集
西米/喜歡/健身/超超/不/打/游戲
step3:計算詞頻向量
A:[1,1,1,0,0,0,0]
B:[0,1,1,1,1,1,1]
step4:計算余弦值
余弦值越大,證明夾角越小,兩個向量越相似。
step5:python代碼實現(xiàn)
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('阿克蘇蘋果', '阿克蘇蘋果'))
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
不到20行實現(xiàn)Python代碼即可制作精美證件照
這篇文章主要介紹了不到20行實現(xiàn)Python代碼即可制作精美證件照,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04python第三方庫subprocess執(zhí)行cmd同時輸入密碼獲取參數(shù)
本文給大家介紹python subprocess執(zhí)行cmd同時輸入密碼獲取參數(shù),手動輸入cmd命令,本文給大家逐一介紹這個命令的使用方法,感興趣的朋友跟隨小編一起看看吧2024-01-01python 關(guān)鍵字與標(biāo)識符超詳細(xì)整理
這篇文章主要給大家介紹了關(guān)于Python關(guān)鍵字、標(biāo)識符和變量的相關(guān)資料,Python關(guān)鍵詞是Python保留的具有特定含義的特殊詞語,用于執(zhí)行某些操作,Python標(biāo)識符是用戶定義的名稱,而變量是計算機(jī)內(nèi)存中的一塊區(qū)域,存儲對象的內(nèi)存地址,以便引用對象的值,需要的朋友可以參考下2022-03-03Python爬蟲入門案例之爬取去哪兒旅游景點攻略以及可視化分析
讀萬卷書不如行萬里路,學(xué)的扎不扎實要通過實戰(zhàn)才能看出來,本篇文章手把手帶你爬取去哪兒平臺的旅游景點攻略并進(jìn)行可視化分析,大家可以在過程中查缺補(bǔ)漏,看看自己掌握程度怎么樣2021-10-10mac PyCharm添加Python解釋器及添加package路徑的方法
今天小編就為大家分享一篇mac PyCharm添加Python解釋器及添加package路徑的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10利用python實現(xiàn)xml與數(shù)據(jù)庫讀取轉(zhuǎn)換的方法
這篇文章主要給大家介紹了關(guān)于利用python實現(xiàn)xml與數(shù)據(jù)庫讀取轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-06-06詳解Python的迭代器、生成器以及相關(guān)的itertools包
這篇文章主要介紹了詳解Python的迭代器、生成器以及相關(guān)的itertools包,Iterators、Generators是Python的高級特性,亦是Python學(xué)習(xí)當(dāng)中必會的基本知識,需要的朋友可以參考下2015-04-04