我们採用更加形式化的定义,并採用稍大一些的样例来展示怎样使用基于数据集频率的权重。相应于一个给定的词项,其权重使用IDF(逆文档频率)来计算。

为了给每篇文档建立一个相应的向量,能够考虑例如以下定义。

 

对于每一篇文档向量,都有n个分量,而且对于整个文档集中每一个不同的词项,都包括一个词条。

向量中的每一个分量为在整个文档集中计算出来的每一个词项的权重。在每篇文档中。词项权重基于词项在整个文档集中出现的频率情况以及词项在某一个特定文档中出现的频率自己主动赋值。

词项在一篇文档中出现的频率越高。则权重越大。相反。假设词项在全部文档中出现的频率越高。则权重越小。

仅当词项在文档中出现时,文档向量中词项的权重才为非零值。

对于一个包括很多小文档的大文档集。文档向量可能会包括大量的零元素。比如,一篇文档集包括10 000个不同的词项,也就是每一个文档中要用10 000维的向量来表示。一个给定的仅仅有100个不同词项的文档向量则包括9 900个零分量。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hyaXN0cHJpbmNlMDA3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

对于文档中词项的权重因素,主要综合考虑词频和逆文档频率。也就是说。我们使用以下的公式计算文档i相应的向量中第j个词条的值:

 

以下我们来考虑一个包括D1和D2两篇文档的文档集。在文档D1中词"绿色"出现了十次,而在D2中"绿色"仅出现了5次。假设只查询"绿色"。那么在结果中文档D1排在文档D2前面。

当我们在一篇文档检索系统中用文档集中t个不同的词项来查询时。系统将为每一个文档计算维度为t的向量D(di1, di2,…,dit)。向量值使用前文所述的词项权重填充。

类似地,查询中的词项构建的向量为Q(wq1, wq2,…,wqt)。

查询Q和文档Di的相似度能够简单地定义为两个向量的内积。由于查询向量和和文档向量在长度上是相似的,这样的策略也经常被用来计算两篇文档的相似度。我们将在3.2节中讨论将SC应用到文档聚类中。

 

相似度计算举例

以下我们考虑一个固定的查询和文档集,包括一个查询Q和三篇文档组成的文档集:

Q:"gold silver truck"

D1:"Shipment of gold damaged in a fire"

D2:"Delivery of silver arrived in a silver truck"

D3:"Shipment of gold arrived in a truck"

在这个文档集中。有三篇文档,所以d = 3。假设一个词项仅在三篇文档中的一篇中出现,那么该词项的IDF就是lg(d/dfi) = lg(3/1) = 0.477。

类似地,假设一个词项在三篇文档中的两篇中出现,那么该词项的IDF就是lg(d/dfi) = lg(3/2) = 0.176。

假设一个词项在三篇文档中都出现了,那么该词项的IDF就是lg(d/dfi) = lg(3/3)
= 0。

三篇文档的每一个词项的IDF值例如以下所看到的:

 

如今就能够构造文档向量了。由于文档集中出现了11个词项,所以我们构造一个11维的文档向量。我们能够用上文给出的按字母顺序排列的词项来构建文档向量,所以t1相应第一个词项"a",t2相应"arrived",依次类推。

向量j中词项i的权重计算方式为idfi×tfij。文档向量如表2-1所看到的。

表2-1 文档向量

docid

a

arrived

damaged

delivery

fire

gold

in

of

shipment

silver

truck

D1

0

0

0.477

0

0.477

0.176

0

0

0.176

0

0

D2

0

0.176

0

0.477

0

0

0

0

0

0.954

0.176

D3

0

0.176

0

0

0

0.176

0

0

0.176

0

0.176

Q

0

0

0

0

0

0.176

0

0

0

0.477

0.176

改进后的向量空间模型(VSM)的更多相关文章

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

    C#实现在: http://blog.csdn.net/Felomeng/archive/2009/03/25/4023990.aspx 向量空间模型(VSM:Vector space model)是 ...

  2. Solr相似度名词:VSM(Vector Space Model)向量空间模型

    最近想学习下Lucene ,以前运行的Demo就感觉很神奇,什么原理呢,尤其是查找相似度最高的.最优的结果.索性就直接跳到这个问题看,很多资料都提到了VSM(Vector Space Model)即向 ...

  3. Jackcard类似度和余弦类似度(向量空间模型)的java实现

    版权声明:本文为博主原创文章,地址:http://blog.csdn.net/napoay,转载请留言. 总结Jackcard类似度和余弦类似度. 一.集合的Jackcard类似度 1.1Jackca ...

  4. 向量空间模型(Vector Space Model)的理解

    1. 问题描述 给你若干篇文档,找出这些文档中最相似的两篇文档? 相似性,可以用距离来衡量.而在数学上,可使用余弦来计算两个向量的距离. \[cos(\vec a, \vec b)=\frac {\v ...

  5. 转:Lucene之计算相似度模型VSM(Vector Space Model) : tf-idf与交叉熵关系,cos余弦相似度

    原文:http://blog.csdn.net/zhangbinfly/article/details/7734118 最近想学习下Lucene ,以前运行的Demo就感觉很神奇,什么原理呢,尤其是查 ...

  6. 向量空间模型(Vector Space Model)

    搜索结果排序是搜索引擎最核心的构成部分,很大程度上决定了搜索引擎的质量好坏.虽然搜索引擎在实际结果排序时考虑了上百个相关因子,但最重要的因素还是用户查询与网页内容的相关性.(ps:百度最臭名朝著的“竞 ...

  7. Python实现改进后的Bi-RRT算法实例

    Python实现改进后的Bi-RRT算法实例 1.背景说明 以下代码是参照上海交通大学海洋工程国家重点实验室<基于改进双向RRT的无人艇局部路径规划算法研究>的算法思想实现的. 2.算法流 ...

  8. 机器翻译评测——BLEU改进后的NIST算法

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/7765345.html 上一节介绍了BLEU算的缺陷.NIS ...

  9. java词频统计——改进后的单元测试

    测试项目 博客文章地址:[http://www.cnblogs.com/jx8zjs/p/5862269.html] 工程地址:https://coding.net/u/jx8zjs/p/wordCo ...

随机推荐

  1. Python封装与隐藏

      今日内容: 1.封装与隐藏2.property3.绑定方法与非绑定方法 知识点一:封装与隐藏 1.什么封装:   封:属性对外是隐藏的,但对内是开放的   装:申请一个名称空间,往里装入一系列名字 ...

  2. P2564 生日礼物

    生日礼物 洛谷链接 题目描述: 在一段彩带上有不同颜色的彩珠,求出包含所有颜色彩珠的最短彩带长度. 思路: 我们可以把按彩珠的位置把所有彩珠排一下序,然后从1开始遍历这些彩珠,并记录出现过的颜色数目, ...

  3. 面向对象编程(二)封装--构造方法,this关键字,static关键字,方法重载

    面向对象三大特点:封装.继承.多态 封装概念 ①   将东西包装在一起,然后以新的完整形式呈现出来: 将方法和字段一起包装到一个单元中,单元以类的形式实现; ②   信息隐藏,隐藏对象的实现细节,不让 ...

  4. sql语句执行时算术运算导致溢出。

    执行sql语句时报错: 用户代码未处理 System.OverflowException HResult=-2146233066 Message=算术运算导致溢出. 文章:https://bbs.cs ...

  5. pip install ImportError: cannot import name main

    在Ubuntu上用pip install装ansible时报错 root@user:~# pip install --no-cache-dir ansible -i http://mirrors.al ...

  6. 测试openssl_encrypt

    <?php //$string = 'It works ? Or not it works ?'; //$pass = '1234'; //$method = 'aes128'; // // / ...

  7. ApplicationContext,WebApplicationContext

    servletContext 是web应用程序的大环境,用于存储整个web应用程序级别的对象. ApplicationContext,WebApplicationContext 是Spring的Bea ...

  8. Python tldextract模块准确获取域名和后缀

    Python tldextract 模块 - 功能说明 tldextract准确地从URL的域名和子域名分离通用顶级域名或国家顶级域名. 例如,http://www.google.com,你只想取出连 ...

  9. javaweb学习总结(十五)——JSP基础语法(转)

    任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语法,而且在JSP中,所有的JAVA语句都可以使用. 一.JSP模版元素 JSP页面中的HTML内容称之 ...

  10. 【NOIP2017】逛公园(最短路图,拓扑排序,计数DP)

    题意: 策策同学特别喜欢逛公园. 公园可以看成一张 N 个点 M 条边构成的有向图,且没有自环和重边.其中 1 号点是公园的入口, N 号点是公园的出口,每条边有一个非负权值,代表策策经过这条边所要花 ...