【转载】向量空间模型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,一经查实,立即删除!

相关文章

机器学习入门学习视频和书籍(笔记保存)

我娜姐推荐的资料和我要看的资料记录下&#xff1a; 吴恩达151课时:https://study.163.com/course/courseLearn.htm?courseId1004570029#/learn/video?lessonId1049052745&courseId1004570029机器学习书籍&#xff1a;《Machine Learning in Action》,Peter Harington&a…

【美文保存】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…

B - Ada and Queue

Ada the Ladybug has many things to do. She puts them into her queue. Anyway she is very indecisive, so sometime she uses the top, sometime the back and sometime she decides to reverses it. Input The first line consists of 1 ≤ Q ≤ 106, number of queries…

一种基于邻域的聚类算法

基本概念&#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;未经博主允许不得转载。 威佐夫博弈是博弈中的另一个经…

Maven报错Missing artifact jdk.tools:jdk.tools:jar:1.7

https://blog.csdn.net/u013281331/article/details/40824707

机器学习会议总结1

2017.06.10506实验室会议总结&#xff1a;今天是机器学习第一次正式的开会&#xff0c;即兴奋又慌张&#xff0c;怕自己所学的东西达不到要求。实验室每个人的学习情况及工作情况如下&#xff1a;首先介绍的当然是我们唯有的学长元智&#xff0c;学长元智主要是讲了怎样学习&am…

前缀树和后缀树

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

学长启蒙

2017.06.20506实验室家才学长课堂总结&#xff1a;第一次正式听家才学长的课堂&#xff0c;课堂主要目的学长凭自己的经验和丰富的知识带领我们入门机器学习&#xff0c;认识机器学习&#xff0c;学习机器学习。 课堂第一项&#xff0c;首先为方便与学长交流&#xff0c;认识&a…

A*算法启发式搜索

最短路径算法&#xff1a; A*算法擅长解决静态路径中最短距离问题&#xff0c;而又不同于Dijkstra算法和Floyd算法&#xff0c;该算法综合了BFS和Dijkstra算法优点&#xff1a;在进行启发式搜索提高算法效率的同时&#xff0c;可以保证找到一条最优路径(基于评估函数&#xff0…

基于维特比算法的概率路径

简介&#xff1a; 维特比算法(Vieterbi algorithm)是一种动态规划算法&#xff0c;探索出很多预测天气的方法&#xff0c;这种基于经验的预测方式&#xff0c;是一种基于历史数据的概率模型。 思想 维特比算法的思想是假设某一个数据的当前状态是依赖于它的前一个状态&#…

Python的Pexpect库

Pexpect 是一个用来启动子程序并对其进行自动控制的纯 Python 模块。 Pexpect 可以用来和像 ssh、ftp、passwd、telnet 等命令行程序进行自动交互。本文主要是针对ssh远程登录&#xff0c;然后执行简单的新建文件夹与拷贝任务Pexpect 的安装&#xff1a;下载&#xff1a;https:…

k-shingles和MinHash优秀文章保存

minhash原理解释&#xff1a;https://www.cnblogs.com/sddai/p/6110704.html k-shingles和minhash使用原理&#xff1a;https://blog.csdn.net/aspirinvagrant/article/details/41281101 代码java实现&#xff1a;https://blog.csdn.net/remoa_dengqinyi/article/details/728…

Python 数据库连接

#!/usr/bin/env python #-*-coding:utf-8-*- #异常处理&#xff0c;with的使用&#xff0c; class Mycontex(object):def __init__(self,name):self.namenamedef __enter__(self):print("__enter__")return selfdef do_self(self):print(do_self)def __exit__(self,e…

中文分词测试语句

研究生命科学研究生命令本科生我从马上下来我马上下来北京大学生喝进口红酒在北京大学生活区喝进口红酒从小学电脑从小学毕业美军中将竟公然说新建地铁中将禁止商业摊点这块地面积还真不小地面积了厚厚的雪让我们以爱心和平等来对待动物阿美首脑会议将讨论巴以和平等问题锌合金…

socket网络编程udp

#!/usr/bin/env python #-*-coding:utf-8-*- #udp socketserver客户端 import socketHOST127.0.0.1 PORT3214 ssocket.socket(socket.AF_INET,socket.SOCK_DGRAM)data你好&#xff01; s.sendto(data.encode(utf-8),(HOST,PORT))while data!bye:datbwhile len(dat)0:dat,addrs.…

几种分类器小结

朴素贝叶斯分类器是假设数据样本特征完全独立&#xff0c;以贝叶斯定理为基础的简单概率分类器。AdaBoost算法的自适应在于前一个分类器产生的错误分类样本会被用来训练下一个分类器&#xff0c;从而提升分类准确率&#xff0c;但是AdaBoost算法对于噪声样本和异常样本比较敏感…

socket网络编程tcp

#!/usr/bin/env python #-*-coding:utf-8-*- #tcp 客户端import socketHOST127.0.0.1 POST3214ssocket.socket() try:s.connect((HOST,POST))data你好&#xff01;while data:s.sendall(data.encode(utf-8))datas.recv(1024)print(Receive from Server:\n,data.decode(utf-8))d…