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

本文解释了向量空间模型中使用的余弦相似度计算方法,并将其与传统几何中的余弦定理进行了对比。通过具体实例展示了如何利用该方法计算文本相似度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相信很多学习向量空间模型(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),将文本转化为向量表示,并通过计算向量之间的余弦相似度,来衡量文本之间的相似度。 具体来说,对于两个文本$A$和$B$,可以将它们表示为向量$\vec{a}$和$\vec{b}$,每个维度表示对应词汇在文本中出现的次数或权重。例如,假设文本$A$和$B$中包含的词汇集合为$V=\{w_1, w_2, ..., w_n\}$,则可以将它们表示为一个$n$维向量,每个维度表示对应词汇在文本中出现的次数或权重。例如,对于文本$A$和$B$,分别表示为向量$\vec{a}=(a_1, a_2, ..., a_n)$和$\vec{b}=(b_1, b_2, ..., b_n)$,其中$a_i$和$b_i$表示词汇$w_i$在文本$A$和$B$中出现的次数或权重。 然后,通过计算向量$\vec{a}$和$\vec{b}$之间的余弦相似度,来衡量文本$A$和$B$之间的相似度。余弦相似度的计算公式如下: $$\cos(\theta)=\frac{\vec{a}\cdot\vec{b}}{\|\vec{a}\|\|\vec{b}\|}$$ 其中,$\vec{a}\cdot\vec{b}$表示向量$\vec{a}$和$\vec{b}$的点积,$\|\vec{a}\|$和$\|\vec{b}\|$分别表示向量$\vec{a}$和$\vec{b}$的模长,$\theta$表示向量$\vec{a}$和$\vec{b}$之间的夹角。 余弦相似度的取值范围在$[-1, 1]$之间,当$\cos(\theta)=1$时,表示两个向量夹角为0度,即完全相似;当$\cos(\theta)=-1$时,表示两个向量夹角为180度,即完全不相似;当$\cos(\theta)=0$时,表示两个向量夹角为90度,即没有相关性。 余弦定理相似度计算法的优点是简单易懂,适用于处理各种类型的文本数据,缺点是没有考虑词汇之间的语义关系,对于一些语义相似但表现形式不同的文本,可能会出现误判的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值