我们採用更加形式化的定义,并採用稍大一些的样例来展示怎样使用基于数据集频率的权重。相应于一个给定的词项,其权重使用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. dict的特性和基本语法——python3.6

    特性 key:value结构,字典中的每一个元素,都是键值对 key必须可被hash,且必须为不可变数据类型,必须唯一 可存放任意多个值,可修改,可以不唯一 无序 查找速度快,因为hash可以把key ...

  2. 如何安装mongodb.msi

    到MongoDB官网下载MongoDB软件:mongodb-win32-x86_64-2008plus-ssl-3.0.2-signed.msi, 放在想要安装的地方: 如:d:\MongoDB\ 2 ...

  3. c中#与##的应用思考

    c中#与##的应用思考 原创 2014年02月25日 22:01:35 927 一. 思考出处 在读<<linux 0.12完全剖析>>初始化部分, init进程是通过fork ...

  4. 浅析 Node.js 的 vm 模块以及运行不信任代码

    在一些系统中,我们希望给用户提供插入自定义逻辑的能力,除了 RPC 和 REST 之外,运行客户提供的代码也是比较常用的方法,好处是可以极大地减少在网络上的耗时.JavaScript 是一种非常流行而 ...

  5. 【反省】qqxt第一场考试

    我太蒟了 qwq 这是第一条 2:考试别水群,别乱fake,特别是要避免出现不顾考试时间每件事fake十分钟的情况 3:少想多写,虽然说写数据结构之前一定要先想好但是别墨迹. 4:保持对考试的敬畏,别 ...

  6. 【Luogu】P2596书架(Splay)

    题目链接 通过这题我加深了对Splay的理解,原来Splay的子树也是可以接来接去接到别的点上的,而不是只能旋转qwq 具体接的办法就是swap大法. 对于Top操作我们把当前节点Splay到根,然后 ...

  7. kb-07线段树-08--区间开根

    /* hdu-4027 题目:区间开根求和查询: 因为是开根,所以要更新的话就要更新到叶子节点.如果区间里全是1或是0的话就步用继续更新了,查询的时候正常查询: */ #include<iost ...

  8. struts2的一些功能

    一.interceptor拦截器 1.自定义拦截器 public class Cus_Emp_Interceptor implements Interceptor { public String in ...

  9. oracle中查询BLOB

    1. 2.

  10. 开源编辑器ueditor

    http://ueditor.baidu.com/website/onlinedemo.html