日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

余弦相似性計算及python代碼實現過程解析

系統 1725 0

A:西米喜歡健身

B:超超不愛健身,喜歡打游戲

step1:分詞

A:西米/喜歡/健身

B:超超/不/喜歡/健身,喜歡/打/游戲

step2:列出兩個句子的并集

西米/喜歡/健身/超超/不/打/游戲

step3:計算詞頻向量

A:[1,1,1,0,0,0,0]

B:[0,1,1,1,1,1,1]

step4:計算余弦值

余弦相似性計算及python代碼實現過程解析_第1張圖片

余弦值越大,證明夾角越小,兩個向量越相似。

step5:python代碼實現

            
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('阿克蘇蘋果', '阿克蘇蘋果'))
          

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 嘉黎县| 英超| 荥阳市| 曲沃县| 灌阳县| 鱼台县| 永胜县| 中江县| 柳江县| 杭锦后旗| 馆陶县| 那坡县| 通河县| 祁连县| 岗巴县| 石楼县| 鹤山市| 津市市| 宝应县| 郓城县| 博湖县| 泰州市| 平邑县| 蒙自县| 永靖县| 碌曲县| 镇原县| 中宁县| 行唐县| 繁峙县| 辉南县| 土默特右旗| 东丰县| 伊宁市| 小金县| 卢湾区| 九龙县| 桦甸市| 清新县| 安新县| 龙海市|