91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用python代碼實現余弦相似性計算

發布時間:2021-08-06 14:26:21 來源:億速云 閱讀:147 作者:小新 欄目:開發技術

這篇文章主要介紹如何使用python代碼實現余弦相似性計算,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

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代碼實現余弦相似性計算

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

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

以上是“如何使用python代碼實現余弦相似性計算”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

垣曲县| 南江县| 青阳县| 大兴区| 衡阳县| 桂林市| 斗六市| 阿图什市| 太谷县| 克东县| 利辛县| 曲周县| 葵青区| 宁明县| 石城县| 伊宁县| 巩义市| 孙吴县| 新化县| 长泰县| 通海县| 东宁县| 长沙县| 花莲县| 大丰市| 原阳县| 黄石市| 犍为县| 鹤山市| 德庆县| 万载县| 晋江市| 武安市| 鄂托克旗| 天津市| 门头沟区| 视频| 武山县| 贵港市| 清流县| 抚宁县|