我们採用更加形式化的定义,并採用稍大一些的样例来展示怎样使用基于数据集频率的权重。相应于一个给定的词项,其权重使用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. [Cake] 2. dotnet 全局工具 cake

    在上篇博客[Cake] 1. CI中的Cake中介绍了如何在CI中利用Cake来保持与CI/CD环境的解耦. 1. 简化cake的安装 当时dotnet 2.1还未正式发布,dotnet 还没有工具的 ...

  2. adb devices 找不到夜神模拟器解决方法

    先打开命令行窗口,输入adb devices,查看连接信息,大致意思是sdk的adb版本与夜神的adb版本不一致,导致. C:\Users\cz9025>adb devices List of ...

  3. Leetcode 416.分割等和子集

    分割等和子集 给定一个只包含正整数的非空数组.是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [ ...

  4. Tinkoff Internship Warmup Round 2018 and Codeforces Round #475 (Div. 2)

    A. Splits time limit per test 1 second memory limit per test 256 megabytes input standard input outp ...

  5. POJ 1609 Tiling Up Blocks

    Tiling Up Blocks Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4675   Accepted: 1824 ...

  6. HDU——1163Eddy's digital Roots(九余数定理+同余定理)

    Eddy's digital Roots Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  7. ACM程序设计选修课——1040: Alex and Asd fight for two pieces of cake(YY+GCD)

    1040: Alex and Asd fight for two pieces of cake Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 27   ...

  8. hdu5730 Shell Necklace 【分治fft】

    题目 简述: 有一段长度为n的贝壳,将其划分为若干段,给出划分为每种长度的方案数,问有多少种划分方案 题解 设\(f[i]\)表示长度为\(i\)时的方案数 不难得dp方程: \[f[i] = \su ...

  9. webpack打包字体图标报错的解决办法

    webpack打包字体图标需要两个加载器  url-loader 和 file-loader 另外  字体图标的引入方式  本来应该是  url("....") 这样的方式,但是w ...

  10. 用Vue创建一个新的项目

    vue的安装 Vue.js不支持IE8及以下版本.因为Vue.js使用了ECMAScript5特性,IE8显然不能模拟.Vue.js支持所有兼容ECMAScript5的浏览器. 在用Vue.js构建大 ...