我们採用更加形式化的定义,并採用稍大一些的样例来展示怎样使用基于数据集频率的权重。相应于一个给定的词项,其权重使用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. iOS-OAuth认证

    OAuth授权 OAuth授权分四步: 第一步,应用向服务提供方申请请求令牌(Request Token),服务提供方验证通过后将令牌返回.这个步骤由于涉及到应用帐号密码,在应用的服务端发起,所以这个 ...

  2. spring-boot项目MapperScan注解包含多个包

    单个包 @MapperScan("com.mysiteforme.admin.dao") 多个包 @MapperScan({"com.mysiteforme.admin. ...

  3. vue 按需加载

    vue 构建单页面应用,但是问题是随着系统的体积变大,js文件也体积太大了,这时候就需要按需要进行加载了 vue-router提供了懒加载的方式 const Foo = resolve => r ...

  4. TroubleShoot: SharePoint 2013: ExecuteOrDelayUntilScriptLoaded 页面发布后不执行的问题

    SharePoint 2010 中的ExecuteOrDelayUntilScriptLoaded,在2013 中使用时没有效果的问题. Example: SharePoint 2013 Code: ...

  5. 【CF696B】Puzzles(树形DP,期望)

    题意:n 个节点的树,初始位置为 1 号节点,初始时间为 1.每次随机地走向任何一个没有走过的子树并且令时间 +1求问走到每一个点时的时间的期望值 思路:比较少见的一道自顶向下的树形DP dp[i]表 ...

  6. es6总结(八)--模块化-import

  7. JAVA特性面试题:

    1.简要介绍java程序的健壮性. 答:JAVA程序会在编译和运行的时候自动的检测可能出现的错误,而且它是一种强类型语言,对于类型的检查很严格,而且它的垃圾回收机制也有效的避免了内存的泄漏. 2.为什 ...

  8. MIPS中的异常处理和系统调用【转】

    转自:http://blog.csdn.net/jasonchen_gbd/article/details/44044091 权声明:本文为博主原创文章,转载请附上原博链接. 异常入口 系统调用是用户 ...

  9. Linux spi驱动分析(二)----SPI核心(bus、device_driver和device)

    一.spi总线注册 这里所说的SPI核心,就是指/drivers/spi/目录下spi.c文件中提供给其他文件的函数,首先看下spi核心的初始化函数spi_init(void).程序如下: 点击(此处 ...

  10. U3D层的运用

    在操作 LayerMask 时常令一些初学者摸不着头脑下面简单说一下层的开关方法:1.首先引入'|'.'&'.'~'的概念与(交集):10000001 & 10000100 == 10 ...