【转载】向量空间模型VSM及余弦计算

向量空间模型VSM及余弦计算

向量空间模型的基本思想是把文档简化为以特征项(关键词)的权重为分量的N维向量表示。

这个模型假设词与词间不相关(这个前提造成这个模型无法进行语义相关的判断,向量空间模型的缺点在于关键词之间的线性无关的假说前提),用向量来表示文本,从而简化了文本中的关键词之间的复杂关系,文档用十分简单的向量表示,使得模型具备了可计算性。

在向量空间模型中,文本泛指各种机器可读的记录。

用D(Document)表示文本,特征项(Term,用t表示)指出现在文档D中且能够代表该文档内容的基本语言单位,主要是由词或者短语构成,文本可以用特征项集表示为D(T1,T2,…,Tn),其中Tk是特征项,要求满足1<=k<=N。

下面是向量空间模型(特指权值向量空间)的解释。

假设一篇文档中有a、b、c、d四个特征项,那么这篇文档就可以表示为

D(a,b,c,d)

对于其它要与之比较的文本,也将遵从这个特征项顺序。对含有n个特征项的文本而言,通常会给每个特征项赋予一定的权重表示其重要程度,即

D=D(T1,W1;T2,W2;…,Tn,Wn)

简记为

D=D(W1,W2,…,Wn)

我们把它叫做文本D的权值向量表示,其中Wk是Tk的权重,1<=k<=N。

在上面那个例子中,假设a、b、c、d的权重分别为30,20,20,10,那么该文本的向量表示为

D(30,20,20,10)

在向量空间模型中,两个文本D1和D2之间的内容相关度Sim(D1,D2)常用向量之间夹角的余弦值表示,公式为:

clip_image008

其中,W1k、W2k分别表示文本D1和D2第K个特征项的权值,1<=k<=N。

下面是利用模型进行余弦计算的示例。

在自动归类中,我们可以利用类似的方法来计算待归类文档和某类目的相关度。

假设文本D1的特征项为a,b,c,d,权值分别为30,20,20,10,类目C1的特征项为a,c,d,e,权值分别为40,30,20,10,则D1的向量表示为

D1(30,20,20,10,0)

C1的向量表示为

C1(40,0,30,20,10)

则根据上式计算出来的文本D1与类目C1相关度是0.86。

那么0.86具体是怎么推导出来的呢?

在数学当中,n维向量是

V{v1,v2,v3,...,vn}

模为

|v|=sqrt(v1*v1+v2*v2+…+vn*vn)

两个向量的点积

m*n=n1*m1+n2*m2+......+nn*mn

相似度

sim=(m*n)/(|m|*|n|)

它的物理意义就是两个向量的空间夹角的余弦数值。

下面是代入公式的过程:

d1*c1=30*40+20*0+20*30+10*20+0*10=2000

|d1|=sqrt(30*30+20*20+20*20+10*10+0*0)=sqrt(1800)

|c1|=sqrt(40*40+0*0+30*30+20*20+10*10)=sqrt(3000)

sim=d1*c1/(|d1|*|c1|)=2000/sqrt(1800*3000)=0.86066

完毕。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/509020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【美文保存】nosql数据库对比以及如何巧妙利用redis来提高效率?

1. MySqlMemcached架构的问题 实际MySQL是适合进行海量数据存储的&#xff0c;通过Memcached将热点数据加载到cache&#xff0c;加速访问&#xff0c;很多公司都曾经使用过这样的架构&#xff0c;但随着业务数据量的不断增加&#xff0c;和访问量的持续增长&#xff0c;我们遇…

嵌入式开发——DMA外设到内存

学习目标 加强理解DMA数据传输过程加强掌握DMA的初始化流程掌握DMA数据表查询理解源和目标的配置理解数据传输特点能够动态配置源数据学习内容 需求 uint8_t data; 串口接收(&data);data有数据了 实现串口的数据接收,要求采用dma的方式。 数据交互流程 CPU配置好DMA外…

系统设计类问题

如果让你设计一个秒杀系统&#xff0c;你会如何设计&#xff1f; Redis是一个分布式缓存系统&#xff0c;支持多种数据结构&#xff0c;我们可以利用Redis轻松实现一个强大的秒杀系统。 我们可以采用Redis 最简单的key-value数据结构&#xff0c;用一个原子类型的变量值(Atomic…

一种基于邻域的聚类算法

基本概念&#xff1a; 给定数据集D {d1&#xff0c;d2 ,.. &#xff0c;dn}&#xff0c;p和q是D中的两个任意对象。我们使用欧氏距离来评估p和q之间的距离&#xff0c;表示为 dist&#xff08;p&#xff0c;q&#xff09;。 我们将首先给出k-最近邻集合和反向的定义k-最近邻集…

博弈之威佐夫

博弈之威佐夫博弈详解 标签&#xff1a; 数学博弈游戏威佐夫algorithm2014-03-21 10:40 5330人阅读 评论(1) 收藏 举报分类&#xff1a;博弈&#xff08;6&#xff09; 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 威佐夫博弈是博弈中的另一个经…

前缀树和后缀树

Trie树的应用: 除了本文引言处所述的问题能应用Trie树解决之外&#xff0c;Trie树还能解决下述问题&#xff08;节选自此文&#xff1a;海量数据处理面试题集锦与Bit-map详解&#xff09;&#xff1a; 3、有一个1G大小的一个文件&#xff0c;里面每一行是一个词&#xff0c;词的…

机器学习——决策树算法

机器学习——决策树算法原理及案例 标签&#xff1a; 机器学习决策树信息增益基尼指数模型评估 2016-05-04 15:31 43984人阅读 评论(1) 收藏 举报 分类&#xff1a; 机器学习&#xff08;10&#xff09; 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不…

机器学习——决策树的实现

#!/usr/bin/env python #-*-coding:utf-8-*- #决策树的建立&#xff0c;训练测试&#xff0c; from sklearn.feature_extraction import DictVectorizer import csv from sklearn import preprocessing from sklearn import tree from sklearn.externals.six import StringIO#读…

邻近算法(KNN算法)

邻近算法 锁定本词条由“科普中国”百科科学词条编写与应用工作项目 审核 。邻近算法&#xff0c;或者说K最近邻(kNN&#xff0c;k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻&#xff0c;就是k个最近的邻居的意思&#xff0c;说的是每个样本…

KNN算法的实现

#!/usr/bin/env python #-*-coding:utf-8-*- #knn 的具体实现 import csv import random import math import operator #导入数据集 文件名&#xff0c;split区分那个集 def loadDataset(filename,split,trainintset[],testSet[]):with open(filename,rb) as csvfile:linescsv.…

支持向量机(SVM)算法

支持向量机&#xff08;SVM&#xff09;算法支持向量机(support vector machine)是一种分类算法&#xff0c;通过寻求结构化风险最小来提高学习机泛化能力&#xff0c;实现经验风险和置信范围的最小化&#xff0c;从而达到在统计样本量较少的情况下&#xff0c;亦能获得良好统计…

python文件操作以及相对路径和绝对路径问题

绝对路径&#xff1a; PROJECT_ROOT os.path.dirname(os.path.realpath(__file__))#获取项目根目录path os.path.join(PROJECT_ROOT,"data\\edge\\0_fuse.txt") #文件路径edgeMap np.loadtxt(path)相对路径&#xff1a; path "./data/edge/98_fuse.txt&quo…

神经网络NN算法

1. 背景: 1.1 以人脑中的神经网络为启发&#xff0c;历史上出现过很多不同版本1.2 最著名的算法是1980年的 backpropagation 2. 多层向前神经网络(Multilayer Feed-Forward Neural Network)2.1 Backpropagation被使用在多层向前神经网络上2.2 多层向前神经网络由以下部分组成&a…

神经网络算法实现

1. 关于非线性转化方程(non-linear transformation function) sigmoid函数(S 曲线)用来作为activation function:1.1 双曲函数(tanh)tanh是双曲函数中的一个&#xff0c;tanh()为双曲正切。在数学中&#xff0c;双曲正切“tanh”是由基本双曲函数双曲正弦和双曲余弦推导而来公式…

神经网络算法的实例

1.简单非线性关系数据集测试&#xff08;XOR)X: Y0 0 00 1 11 0 11 1 0Code:#!/usr/bin/env python #-*-coding:utf-8-*- #神经网络测试的例子 #简单非线性关系数据集测试(XOR)异或的运算 f…

线性回归模型

1. 简单线性回归模型举例&#xff1a; 汽车卖家做电视广告数量与卖出的汽车数量&#xff1a; 1.1 如何练出适合简单线性回归模型的最佳回归线/ 使sum of squares最小1.1.2 计算分子 (1-2)(14-20)(3-2)(24-20)(2-2)(18-20)(1-2)(17-20)(3-2)(27-20) 6 4 0 3 7 20分母 &…

多元线性回归模型

1. 与简单线性回归区别(simple linear regression)多个自变量(x)2. 多元回归模型yβ0&#xff0b;β&#xff11;x1β2x2 ... βpxpε其中&#xff1a;β0&#xff0c;β&#xff11;&#xff0c;β2... βp是参数ε是误差值3. 多元回归方程E(y)β0&#xff0b;β&#xff11;x…

非线性回归

1. 概率&#xff1a; 1.1 定义 概率(P)robability: 对一件事情发生的可能性的衡量1.2 范围 0 < P < 11.3 计算方法&#xff1a; 1.3.1 根据个人置信1.3.2 根据历史数据1.3.3 根据模拟数据1.4 条件概率&#xff1a;2. Logistic Regression (逻辑回归)2.1 例子2.2 基本…

层次聚类

假设有N个待聚类的样本&#xff0c;对于层次聚类来说&#xff0c;步骤&#xff1a;1、&#xff08;初始化&#xff09;把每个样本归为一类&#xff0c;计算每两个类之间的距离&#xff0c;也就是样本与样本之间的相似度&#xff1b;2、寻找各个类之间最近的两个类&#xff0c;把…

(优秀文章保存)Quartz优秀文章保存

Quartz的基本使用之入门&#xff08;2.3.0版本&#xff09; 一、Quartz可以用来做什么 Quartz是一个强大任务调度框架&#xff0c;我工作时候会在这些情况下使用到quartz框架&#xff0c;当然还有很多的应用场景&#xff0c;在这里只列举2个实际用到的 餐厅系统会在每周四晚…