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代码实现
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('阿克苏苹果', '阿克苏苹果'))
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
问题内容: 假设您在数据库中按以下方式构造了一个表: 为了清楚起见,应输出: 请注意,由于向量存储在数据库中,因此我们仅需要存储非零条目。在此示例中,我们只有两个向量$ v_ {99} =(4,3,4,0)$和$ v_ {1234} =(0,5,2,3)$都在$ \ mathbb {R}中^ 4 $。 这些向量的余弦相似度应为$ \ displaystyle \ frac {23} {\ sqrt
问题内容: 我计算了两个文档的tf / idf值。以下是tf / idf值: 这些文件就像: 如何使用这些值来计算余弦相似度? 我知道我应该计算点积,然后找到距离并除以点积。如何使用我的值来计算? 还有一个问题: 两个文档的字数相同是否重要? 问题答案: a * b是点积 一些细节: 是。在某种程度上,a和b必须具有相同的长度。但是a和b通常具有稀疏表示,您只需要存储非零条目,就可以更快地计算范数
本文向大家介绍Python 余弦相似度与皮尔逊相关系数 计算实例,包括了Python 余弦相似度与皮尔逊相关系数 计算实例的使用技巧和注意事项,需要的朋友参考一下 夹角余弦(Cosine) 也可以叫余弦相似度。 几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。 (1)在二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式: (2) 两个n维
问题内容: 如何找到向量之间的余弦相似度? 我需要找到相似性来衡量两行文本之间的相关性。 例如,我有两个句子: 用户界面系统 用户界面机 …及其在tF-idf之后的向量,然后使用LSI进行标准化,例如 和。 如何测量这些向量之间的相似性? 问题答案: 我最近在大学的信息检索部门做了一些tf-idf的工作。我使用了这种余弦相似度方法,该方法使用Jama:Java Matrix Package 。 有
问题内容: 从:查找文档相似度,可以使用余弦计算文档相似度。如果不导入外部库,是否有任何方法可以计算2个字符串之间的余弦相似度? 问题答案: 一个简单的纯Python实现是: 印刷品: 这里所用的余弦公式描述这里。 这不包括通过对单词进行加权,但是为了使用,你需要具有一个相当大的语料库才能从中估计的权重。 你还可以通过使用更复杂的方法从一段文本中提取单词,对其进行词干或词义化等来进一步开发它。
我有一个包含n-用户的Neo4j数据库。每个用户都连接到他们各自的性别节点(M和F)、年龄组节点、种族节点等。我想根据他们的性别、年龄、种族等找到两个用户之间的相似性。 此密码查询仅基于一个属性进行计算 我想根据性别、年龄组、种族等多个属性进行计算