向量空间模型(VSM)的余弦定理公式(cos)

2023-10-06 03:42

本文主要是介绍向量空间模型(VSM)的余弦定理公式(cos),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

相信很多学习向量空间模型(Vector Space Model)的人都会被其中的余弦定理公式所迷惑..

 

因为一看到余弦定理,肯定会先想起初中时的那条最简单的公式cosA=a/c(邻边比斜边),见下图:

但是,初中那条公式是只适用于直角三角形的,而在非直角三角形中,余弦定理的公式是:

cosA=(c2 + b2 - a2)/2bc

不过这条公式也和向量空间模型中的余弦定理公式不沾边,迷惑..

 

引用吴军老师的数学之美系列的余弦定理和新闻的分类里面的一段:

-------------------引用开始分界线------------------------

假定三角形的三条边为 a, b 和 c,对应的三个角为 A, B 和 C,那么角 A 的余弦

如果我们将三角形的两边 b 和 c 看成是两个向量,那么上述公式等价于

其中分母表示两个向量 b 和 c 的长度,分子表示两个向量的内积。

举一个具体的例子,假如新闻 X 和新闻 Y 对应向量分别是x1,x2,...,x64000 和y1,y2,...,y64000,

那么它们夹角的余弦等于

 

-------------------引用完毕分界线------------------------

 

高中那条公式又怎么会等价于向量那条公式呢?

原来它从高中的平面几何跳跃到大学的线性代数的向量计算..

关于线性代数中的向量和向量空间,可以参考下面两个页面:

Egwald Mathematics: Linear Algebra

Linear Algebra: Direction Cosines

 

在线性代数的向量计算的余弦定理中,

* 分子是两个向量的点积(wiki),点积的定理和计算公式:

The dot product of two vectors a = [a1a2, … , an] and b = [b1b2, … , bn] is defined as:

 

点积(dot product),又叫内积,数量积..(Clotho注: product常见的是产品的意思,但在数学上是乘积的意思.)

 

* 分母是两个向量的长度相乘.这里的向量长度的计算公式也比较难理解.

假设是二维向量或者三维向量,可以抽象地理解为在直角坐标轴中的有向线段,如图:

d2 = x2 + y2   ->   d = sprt(x2 + y2)

 

d2 = x2 + y2 + z  ->   d = sprt(x2 + y2 + z2)

 

三维以上的维度很难用图来表示,但是再多维度的向量,也仍然可以用这条公式来计算:

dn2 = x12 + x22 + .. + xn  ->   dn = sprt(x12 + x22 + .. + xn2)

 

在文本相似度计算中,向量中的维度x1,x2..xn其实就是词项(term)的权重,一般就是词项的tf-idf值.

而这条看上去很抽象的公式,其实就是为了计算两篇文章的相似度.

 

文本相似度计算的处理流程是:

1.对所有文章进行分词

2.分词的同时计算各个词的tf值

3.所有文章分词完毕后计算idf值

4.生成每篇文章对应的n维向量(n是切分出来的词数,向量的项就是各个词的tf-idf值)

5.对文章的向量两篇两篇代入余弦定理公式计算,得出的cos值就是它们之间的相似度了

这篇关于向量空间模型(VSM)的余弦定理公式(cos)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/152757

相关文章

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解

MySQL之InnoDB存储页的独立表空间解读

《MySQL之InnoDB存储页的独立表空间解读》:本文主要介绍MySQL之InnoDB存储页的独立表空间,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、独立表空间【1】表空间大小【2】区【3】组【4】段【5】区的类型【6】XDES Entry区结构【

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

MySQL启动报错:InnoDB表空间丢失问题及解决方法

《MySQL启动报错:InnoDB表空间丢失问题及解决方法》在启动MySQL时,遇到了InnoDB:Tablespace5975wasnotfound,该错误表明MySQL在启动过程中无法找到指定的s... 目录mysql 启动报错:InnoDB 表空间丢失问题及解决方法错误分析解决方案1. 启用 inno

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

在Java中基于Geotools对PostGIS数据库的空间查询实践教程

《在Java中基于Geotools对PostGIS数据库的空间查询实践教程》本文将深入探讨这一实践,从连接配置到复杂空间查询操作,包括点查询、区域范围查询以及空间关系判断等,全方位展示如何在Java环... 目录前言一、相关技术背景介绍1、评价对象AOI2、数据处理流程二、对AOI空间范围查询实践1、空间查

MySQL表空间结构详解表空间到段页操作

《MySQL表空间结构详解表空间到段页操作》在MySQL架构和存储引擎专题中介绍了使用不同存储引擎创建表时生成的表空间数据文件,在本章节主要介绍使用InnoDB存储引擎创建表时生成的表空间数据文件,对... 目录️‍一、什么是表空间结构1.1 表空间与表空间文件的关系是什么?️‍二、用户数据在表空间中是怎么

CentOS7增加Swap空间的两种方法

《CentOS7增加Swap空间的两种方法》当服务器物理内存不足时,增加Swap空间可以作为虚拟内存使用,帮助系统处理内存压力,本文给大家介绍了CentOS7增加Swap空间的两种方法:创建新的Swa... 目录在Centos 7上增加Swap空间的方法方法一:创建新的Swap文件(推荐)方法二:调整Sww

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT