C#实现在:

向量空间模型(VSM:Vector space model)是最常用的相似度计算模型,在自然语言处理中有着广泛的应用,这里简单介绍一下其在进行文档间相似度计算时的原理。

假设共有十个词:w1,w2,......,w10,而共有三篇文章,d1,d2和d3。统计所得的词频表(杜撰的,为了便于演示用法)如下:

w1

w2

w3

w4

w5

w6

w7

w8

w9

w10

d1

1

2

5

7

9

d2

3

4

6

8

d3

10

11

12

13

14

15

常用的向量空间公式见下图:

假设计算d1和d2的相似度,那么ai和bi分别表示d1和d2中各个词的词频,我们以Cosine为例:

(得数请读者自己计算,各个数代表什么从上表中可以轻易看出)

为什么叫向量空间模型呢?其实我们可以把每个词给看成一个维度,而词的频率看成其值(有向),即向量,这样每篇文章的词及其频率就构成了一个i维空间图,两个文档的相似度就是两个空间图的接近度。假设文章只有两维的话,那么空间图就可以画在一个平面直角坐标系当中,读者可以假想两篇只有两个词的文章画图进行理解。

我们看到,上面公式的计算量是很大的,尤其当文档中词数量巨大时。那么怎么样来提高运算的效率呢?我们可以采取降维的方法。其实只要理解了向量空间模型原理,就不难理解降维的概念。所谓降维,就是降低维度。具体到文档相似度计算,就是减少词语的数量。常见的可用于降维的词以功能词和停用词为主(如:"的","这"等),事实上,采取降维的策略在很多情况下不仅可以提高效率,还可以提高精度。这也不难理解,比如下面两句话(可能举地不是特别恰当,见谅):

这是我的饭。

那是你的饭。

如果把"这"、"那"、"你"、"我"、"是"、"的"都当功能词处理掉,那么相似度就是100%。如果都不去掉,相似度可能只有60%。而这两句话的主题显示是一样的。

倒排词频平滑(Inverse Document Frequency)方法,就是用整个语料中所有词语的词频来调整某篇语料中词语的权重,可以理解为把某篇内词语的频率与全局词频相乘后再代入公式(因为相似度是个相对值,所以只要保证它的值落在0和1之间即可)。

这是一个简单的向量空间模型,实际应用中使用的见《改进向量空间模型》。

vsm java_向量空间模型(VSM)在文档相似度计算上的简单介绍相关推荐

  1. 向量空间模型(VSM)在文档相似度计算上的简单介绍

      向量空间模型(VSM:Vector space model)是最常用的相似度计算模型,在自然语言处理中有着广泛的应用,这里简单介绍一下其在进行文档间相似度计算时的原理. 假设共有十个词:w1,w2 ...

  2. 搜索引擎的检索模型-查询与文档的相关度计算

    1. 检索模型概述 搜索结果排序时搜索引擎最核心的部分,很大程度度上决定了搜索引擎的质量好坏及用户满意度.实际搜索结果排序的因子有很多,但最主要的两个因素是用户查询和网页内容的相关度,以及网页链接情况 ...

  3. Python自然语言处理:文档相似度计算(gensim.models)

    目录 1. tf-idf(每个文档形成一个tfidf向量) 2. 仅频率(每个文档形成一个频率值向量) 3. 仅出现与否(每个文档形成一个出现与否的二元向量) 4. Word2vec模型(每个词形成一 ...

  4. java文档相似度计算,计算文档与文档的相似度

    最近帮很多本科毕业生做文本数据分析,经常遇到的一个需求是计算文档相似度. 思路: 抽取语料(所有文档)中的词语,构建词典(词语与数字对应起来). 根据构建的词典对每个文档进行重新编码(将文档转化为向量 ...

  5. WMD:基于词向量的文档相似度计算

    EMD算法简介 该部分引用自[1] Earth Mover's Distance (EMD),和欧氏距离一样,他们都是一种距离度量的定义,可以用来测量某分布之间的距离.EMD主要应用在图像处理和语音信 ...

  6. 使用JS距离实现LDA文档相似度计算

    问题提出: [1] [2] 实现源码: topicmodel = gensim.models.ldamodel.LdaModel(corpus=corpus, id2word=dictionary, ...

  7. 向量空间模型(VSM)--用于计算文本相似度

    向量空间模型将文档映射为一个特征向量V(d)=(t1,ω1(d):-:tn, ωn(d)),其中ti(i=1,2, -,n)为一列互不雷同的词条项,ωi(d)为ti在d中的权值, 一般被定义为ti在d ...

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

    向量空间模型VSM及余弦计算 向量空间模型的基本思想是把文档简化为以特征项(关键词)的权重为分量的N维向量表示. 这个模型假设词与词间不相关(这个前提造成这个模型无法进行语义相关的判断,向量空间模型的 ...

  9. 工程监测管理平台、工程数据看板、工程总览、动态模型、数据分析、数据跟踪、建筑工地、数据报表、警点管控、现场记录、观测记录、测点管理、模型管理、文档管理、墙体下沉、成员管理、axure原型、产品原型

    工程监测管理平台.工程数据看板.工程总览.动态模型.数据分析.数据跟踪.建筑工地.数据报表.警点管控.现场记录.观测记录.测点管理.模型管理.文档管理.墙体下沉.成员管理.axure原型.产品原型   ...

最新文章

  1. 从代码设计到应用开发,入坑深度学习看这本书就够了
  2. Oracle数据库——数据库安全性管理
  3. php 注册登录,邮件确认激活
  4. JavaCSV之写CSV文件
  5. windows远程连接的几个问题
  6. python 文件操作 os.readline()函数用法
  7. Golang之函数选项模式
  8. c语言编写计算器保存结果的程序,c语言编写计算器程序.doc
  9. NoSQL Redis的学习笔记
  10. 《团队作业第三、第四周》五小福团队作业--Scrum 冲刺阶段--Day1--领航
  11. 在MarkDown的表格中插入代码
  12. 开源许可证 有人管吗_4个令人困惑的开源许可证场景以及如何浏览它们
  13. Unity (四) NavMeshAgent之:分离路面导航
  14. 关于Entity FrameWork获取插入后的自增ID
  15. centos 确定cpu是arm 还是x86_x86,I386,i686, x86_64, x64,amd64、Windows Linux AIX下查看CPU位数和操作系统位数、rpm包名...
  16. 汽车电瓶电压12V验证
  17. 关于指令test ecx,ecx
  18. vue project vlog
  19. 高职单招计算机基础知识题,高职单招计算机基础练习题
  20. 报告!优维科技EasyOps®️全栈运维平台又一大波新功能上线

热门文章

  1. LEADTOOLS V20,医学影像浏览器中3D体积渲染控件
  2. div绘制各种三角形
  3. Location iOS12.3驱动分享
  4. 缺氧游戏超级计算机在哪里研究,缺氧简易上手攻略_缺氧怎么玩_游戏堡
  5. 【半精度】Pytorch模型加速和减少显存
  6. 黑群晖私有云NAS:同步百度云盘数据
  7. Linux系统删除文件夹下所有文件
  8. 各类多媒体计算机硬件设备,多媒体教室主要有哪些硬件设备
  9. 信息安全——大整数包的设计!
  10. mysql备库是什么_mysql如何避免备库出