当前位置: 首页 > news >正文

第十八章 番外 余弦相似度

余弦相似度(Cosine Similarity)是一种衡量两个非零向量之间角度的度量方式,用于评估它们之间的相似性。它的值范围从 -1 到 1,其中 1 表示完全相同的方向(即向量完全相同),0 表示正交(没有相似性),而 -1 表示完全相反的方向。

假设我们有两个向量 A 和 B,它们的余弦相似度可以通过以下公式计算:

$ \text{similarity} = \cos(\theta) = \frac{\mathbf{A} \cdot \mathbf{B}}{|\mathbf{A}| |\mathbf{B}|} $

其中:

  • $ \mathbf{A} \cdot \mathbf{B} $ 是向量 A 和 B 的点积(内积)。
  • $ |\mathbf{A}| 和 和 |\mathbf{B}| $ 分别是向量 A 和 B 的模长(长度)。

具体来说:

  • 点积(内积):$ \mathbf{A} \cdot \mathbf{B} = \sum_{i=1}^{n} A_i B_i $,其中 (n) 是向量的维度。
  • 模长(长度):$ |\mathbf{A}| = \sqrt{\sum_{i=1}{n} A_i^2} $。

公式可以进一步展开为:

$ \text{similarity} = \frac{\sum\limits_{i=1}^{n} A_i B_i}{\sqrt{\sum\limits_{i=1}^{n} A_i^2} \sqrt{\sum\limits_{i=1}^{n} B_i^2}} $

示例计算

假设我们有两个向量 A 和 B,其中:

  • $ \mathbf{A} = [1, 2, 3] $
  • $ \mathbf{B} = [4, 5, 6] $

我们可以按照上述公式计算它们之间的余弦相似度:

  1. 点积
    $ \mathbf{A} \cdot \mathbf{B} = 14 + 25 + 3*6 = 4 + 10 + 18 = 32 $
  2. 模长
    • $ |\mathbf{A}| = \sqrt{12 + 22 + 3^2} = \sqrt{1 + 4 + 9} = \sqrt{14} $
    • $ |\mathbf{B}| = \sqrt{42 + 52 + 6^2} = \sqrt{16 + 25 + 36} = \sqrt{77} $
  3. 余弦相似度
    $ \text{similarity} = \frac{32}{\sqrt{14} \sqrt{77}} = \frac{32}{\sqrt{1078}} $

我们可以使用 Python 来计算这个值:

import numpy as np# 定义两个向量
vector_a = np.array([1, 2, 3])
vector_b = np.array([4, 5, 6])# 计算点积
dot_product = np.dot(vector_a, vector_b)# 计算模长
norm_a = np.linalg.norm(vector_a)
norm_b = np.linalg.norm(vector_b)# 计算余弦相似度
cosine_similarity = dot_product / (norm_a * norm_b)print("Cosine similarity:", cosine_similarity)

相关文章:

第十八章 番外 余弦相似度

余弦相似度(Cosine Similarity)是一种衡量两个非零向量之间角度的度量方式,用于评估它们之间的相似性。它的值范围从 -1 到 1,其中 1 表示完全相同的方向(即向量完全相同),0 表示正交&#xff0…...

HPA和helm

HPA pod的数量进行扩缩容 针对控制器创建的pod deployment: replica: 静态:edit yaml:apply -f HPA:基于cpu的利用率来实现pod数量的自动伸缩。 Horizontal pod autoscaling yaml文件————主流——————…...

基于人工智能的智能语音助手

语音助手的自然语言处理模块是语音助手系统的关键组成部分。通过这个模块,系统能够识别用户的意图并做出相应的回应。我们可以使用NLP技术来解析文本输入,并将其转换为系统可以理解的命令或指令。在本项目中,我们将结合语音识别、自然语言处理…...

java实际开发——数据库存储金额时用什么数据类型?(MySQL、PostgreSQL)

目录 java开发时金额用的数据类型——BigDecimal MySQL存储金额数据时用的数据类型是——decimal PostgreSQL存储金额数据时用的数据类型是——decimal 或 money java开发时金额用的数据类型——BigDecimal https://blog.csdn.net/Jilit_jilit/article/details/142180903?…...

Java 设计模式-状态模式

目录 一. 概述 二. 主要角色 三. 代码示例 四. 优缺点 优点: 缺点: 五. 常见应用场景 一. 概述 状态模式是一种行为设计模式,它允许一个对象在其内部状态改变时改变它的行为。对象看起来好像修改了它的类。状态模式把所有的与一个特定…...

2024.9.13 Python与图像处理新国大EE5731课程大作业,索贝尔算子计算边缘,高斯核模糊边缘,Haar小波计算边缘

1.编写一个图像二维卷积程序。它应该能够处理任何灰度输入图像,并使用以下内核进行操作: %matplotlib inline import numpy as np import matplotlib.pyplot as plt from scipy import linalg import random as rm import math import cv2# import and …...

动态IP池的IP都是纯净IP吗?

在当今互联网时代,动态IP池作为一种网络资源管理策略,被广泛应用于数据抓取、市场调研、广告验证等多种场景中。动态IP池能够提供大量可轮换的IP地址,以帮助用户避免因频繁访问同一网站而被封禁IP的情况。然而,一个关键的问题是&a…...

【MySQL】查询表中重复数据、模糊查询列信息、快速copy表数据(1)

一、SQL查询重复的数据: 1、SQL格式: Select * From 数据表 Where 重复记录字段 in ( select 重复记录字段 From 数据表 Group By 重复记录字段 Having Count(重复记录字段)>1) 2、举例: 在这个patient_member_info表中,我们…...

计算机操作系统之并行性与并发性笔记

目录 在计算机操作系统中,并行性与并发性是两个既相似又有区别的重要概念 并行性: 并发性: 可以通过多任务处理和资源共享来具体说明 并发性的例子 并行性的例子 总结 在计算机操作系统中,并行性与并发性是两个既相似又有区别…...

顶级高效的ChatGPT论文润色提示词和使用技巧

在学术研究中,精确和高效地对文本进行润色和修改是一个必不可少的重要环节。随着学术论文篇幅的增长和内容的复杂度上升,找到一种能够有效整理和优化修改内容的方法变得尤为关键。本文将探讨如何利用ChatGPT作为工具,通过具体的指令和策略,来优化文本的修改过程,提高学术写…...

WebAPI (一)DOM树、DOM对象,操作元素样式(style className,classList)。表单元素属性。自定义属性。间歇函数定时器

文章目录 Web API基本认知一、 变量声明二、 DOM1. DOM 树2. DOM对象3. 获取DOM对象(1)、选择匹配的第一个元素(2)、选择匹配多个元素 三、 操作元素1. 操作元素内容2. 操作元素属性(1)、常用属性(href之类的)(2)、通过style属性操作CSS(3)、通过类名(cl…...

若依框架开发

若依环境 介绍 ‌若依是一款快速开发平台(低代码),用于快速构建企业级后台管理系统,它提供了许多常用的功能模块和组件,包括权限管理、代码生成、工作流、消息中心等 官方地址: https://www.ruoyi.vip/ ‌基于Spring Boot和Spring Cloud‌…...

局域网windows下使用Git

windows下如何使用局域网进行git部署 准备工作第一步 ,ip设置设置远程电脑的ip设置,如果不会设置请点击[这里](https://blog.csdn.net/Black_Friend/article/details/142170705?spm1001.2014.3001.5501)设置本地电脑的ip:验证 第二步&#x…...

Redis访问工具

使用Redis存储缓存数据,如何通过Java去访问Redis? 防止后面看晕,先来张图。 1. Redis的客户端库 Redis的客户端库是Redis官方提供的,用于让Java等编程语言与Redis服务器进行通信的工具包。常见的Redis客户端库有多个&#xff0c…...

vue3+ant design vue动态实现级联菜单~

1、这里使用的是ant design vue 的TreeSelect 树选择来实现的。 <a-form-item name"staffDept" label"责任部门" labelAlign"left"><a-tree-selectv-model:value"formState.staffDept"show-search//允许在下拉框中添加搜索框…...

软件可维护性因素例题

答案&#xff1a;C 知识点&#xff1a; 系统可维护性因素决定 可理解性 可测试性 可修改性 选项C可移植性错误...

git的一些操作

参考视频: git分支详解&#xff08;约10分钟掌握分支80%操作&#xff09;&#xff0c;git-branch&#xff0c;git分支管理&#xff0c;git分支操作&#xff0c;git分支基础和操作&#xff0c;2023年git基础使用教程 不同的分支相当于不同的平行世界 合并分支 两个分支是我们项…...

opencv实战项目二十三:基于BEBLID描述符的特征点匹配实现表盘校正

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、特征点匹配介绍二、特征点检测三、特征描述符计算四&#xff0c;描述符的匹配筛选五&#xff0c;根据匹配结果映射图片六&#xff0c;整体代码&#xff1a;…...

数据库是全表扫描是怎么扫描法?

全表扫描是数据库服务器用来搜寻表的每一条记录的过程&#xff0c;直到所有符合给定条件的记录返回为止。‌ 在执行全表扫描时&#xff0c;数据库会逐行扫描表中的所有记录&#xff0c;以找到符合查询条件的记录。这种扫描方式适用于没有为查询条件中的字段建立索引的情况。全…...

认准这10款人力资源系统,90%的企业都在用!

本文将为大家推荐十款主流的人力资源系统&#xff0c;为企业选型提供参考&#xff01; 想象一下&#xff0c;企业在不断发展壮大的过程中&#xff0c;员工数量逐渐增多&#xff0c;人事管理变得越来越复杂。如果没有一个高效的人力资源系统&#xff0c;就如同在大海中航行却没有…...

别再乱装CUDA了!用Anaconda为你的3060 Ti一键搞定PyTorch GPU环境(含CUDA 11.3实战)

3060 Ti显卡玩家的PyTorch环境配置指南&#xff1a;用Anaconda避开CUDA版本地狱 在深度学习领域&#xff0c;GPU加速已经成为提升模型训练效率的标配。然而&#xff0c;对于许多刚入门的开发者来说&#xff0c;配置PyTorch的GPU支持往往成为第一道门槛——尤其是当涉及到CUDA版…...

将HermesAgent项目接入Taotoken的详细配置步骤与注意事项

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 将HermesAgent项目接入Taotoken的详细配置步骤与注意事项 本文旨在为开发者提供一份清晰的指南&#xff0c;帮助你将HermesAgent项…...

用PyTorch和ECANet18搞定RAF-DB表情分类:从数据集下载到模型部署的保姆级教程

基于ECANet18的RAF-DB表情识别实战&#xff1a;从零构建高精度分类模型 人脸表情识别&#xff08;FER&#xff09;作为计算机视觉领域的重要分支&#xff0c;在情感计算、智能交互等领域展现出巨大潜力。本文将带您完整实现一个基于PyTorch和ECANet18的端到端表情识别系统&…...

智慧树自动刷课神器Autovisor:3分钟极速上手的完整指南

智慧树自动刷课神器Autovisor&#xff1a;3分钟极速上手的完整指南 【免费下载链接】Autovisor 2025智慧树刷课脚本 基于Python Playwright的自动化程序 [有免安装版] 项目地址: https://gitcode.com/gh_mirrors/au/Autovisor 还在为智慧树平台的繁琐操作而烦恼吗&#…...

OpenSpire:开源贡献者协作平台的设计理念与实战指南

1. 项目概述&#xff1a;一个面向开源贡献者的协作平台最近在和一些刚接触开源的朋友交流时&#xff0c;发现一个挺普遍的现象&#xff1a;很多人对参与开源项目充满热情&#xff0c;但第一步“如何找到合适的项目并上手”就卡住了。GitHub上项目浩如烟海&#xff0c;一个新手面…...

从TPM到机密计算:远程证明技术原理与zap1项目实践指南

1. 项目概述与核心价值最近在整理一些零散的学习笔记时&#xff0c;发现了一个挺有意思的项目&#xff0c;叫Frontier-Compute/zap1-learning-attestation。乍一看这个标题&#xff0c;可能有点让人摸不着头脑&#xff0c;尤其是对于刚接触可信计算或者硬件安全领域的朋友来说。…...

Python自动化Excel数据抓取:OpenClaw技能实战指南

1. 项目概述&#xff1a;从Excel表格到智能数据抓取如果你每天的工作都离不开Excel&#xff0c;并且经常需要从各种网页、文档甚至PDF里手动复制粘贴数据&#xff0c;然后费劲地整理到表格里&#xff0c;那你一定对“Excel大师”这个称号既向往又头疼。我们总希望Excel能更“聪…...

告别手动框选!用SUSTechPOINTS的V键批量标注,5分钟搞定一帧点云

解锁SUSTechPOINTS的V键批量标注&#xff1a;点云处理效率革命 在自动驾驶与机器人研发领域&#xff0c;点云标注是构建高精度感知模型的基础环节&#xff0c;但传统逐帧手动标注方式往往成为项目进度的瓶颈。我曾参与过一个城市级点云数据集标注项目&#xff0c;团队最初采用常…...

Vibe Coding Playbook:从环境到心流,打造高效愉悦的编程系统

1. 项目概述&#xff1a;一个关于“氛围感编程”的实践指南最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“Vibe Coding Playbook”。乍一看这个标题&#xff0c;可能会有点摸不着头脑——“Vibe Coding”是什么&#xff1f;是某种新的编程范式吗&#xff1f;还是某种神…...

【独家首发】ElevenLabs乌尔都语语音SDK逆向分析(v2.4.1):提取未文档化emotion_intensity参数,实现新闻播报级庄严语调控制

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs乌尔都语语音SDK逆向分析全景概览 ElevenLabs 官方未公开乌尔都语&#xff08;ur-PK&#xff09;的独立语音 SDK&#xff0c;但其 Web API 实际支持该语言的 TTS 合成。通过对官方 JS SDK&am…...