余弦相似性计算及python代码实现,,A:西米喜欢健身B:
余弦相似性计算及python代码实现,,A:西米喜欢健身B:
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代码实现
from functools import reduce python3中reduce函数集成在functolls里面了 def mix(self): merge_vdict = set(self.vdict1.keys()) | set(self.vdict2.keys()) #vdict1和vdict2分别为两个句子的TF_IDF值,merge_vdict为并集 for key in merge_vdict: self.vdict1[key] = self.vdict1.get(key,0) self.vdict2[key] = self.vdict2.get(key,0) #计算向量 #余弦函数的实现 def similar(self): self.vector() self.mix() sum = 0 for key in self.vdict1: sum += self.vdict1[key] * self.vdict2[key] A = sqrt(reduce(lambda x,y: x+y, map(lambda x: x*x,self.vdict1.values()))) B = sqrt(reduce(lambda x,y: x+y, map(lambda x: x*x, self.vdict2.values()))) return sum/(A*B)
参考文献:http://www.ruanyifeng.com/blog/2013/03/tf-idf.html
http://www.ruanyifeng.com/blog/2013/03/cosine_similarity.html
余弦相似性计算及python代码实现
相关内容
- Python学习-字典入门、列表练习,,接下来记录一下字典
- Python - ^在正则表达式中的作用,,^在正则表达式中有两
- 二、python3对文本文件进行操作,,目的:日常中经常会
- python socket,,TCP连接简易的聊天
- 表 (python实现),,python 中的顺
- 转: sublime text 2 前端编码神器-快捷键与使用技巧介绍,
- 吴恩达深度学习第2课第2周编程作业 的坑(),,def initi
- Django admin 后台操作数据库以问卷调查为例,,Django的后
- windows7,python3使用time.strftime()函数报ValueError: embedded
- python 提取字符串中的指定字符 正则表达式,,例1:字符
评论关闭