专栏首页程序生活空间向量模型和tf-idf向量空间模型tf-idf

空间向量模型和tf-idf向量空间模型tf-idf

向量空间模型

向量空间模型是一个把文本文件表示为标识符(比如索引)向量的代数模型,它应用于信息过滤、信息检索、索引以及相关排序。

1 定义

文档和查询都用向量来表示:

每一维都对应于一个个别的词组。如果某个词组出现在了文档中,那它在向量中的值就非零。已经发展出了不少的方法来计算这些值,这些值叫做(词组)权重。其中一种最为知名的方式是tf-idf权重(见下面的例子)。

词组的定义按不同应用而定。典型的词组就是一个单一的词、关键词、或者较长的短语。如果将词语选为词组,那么向量的维数就是词汇表中的词语个数(出现在语料库中的不同词语的个数)。

通过向量运算,可以对各文档和各查询作比较。

2 应用

据文档相似度理论的假设,如要在一次关键词查询中计算各文档间的相关排序,只需比较每个文档向量和原先查询向量(跟文档向量的类型是相同的)之间的角度偏差。 实际上,计算向量之间夹角的余弦比直接计算夹角本身要简单。

其中d2▪q是文档向量(即图中的d2)和查询向量(图中的q)的点乘。||d2||是向量d2的模,而||q||是向量q的模。

由于这个模型所考虑的所有向量都是每个元素严格非负的,因此如果余弦值为零,则表示查询向量和文档向量是正交的,即不符合(换句话说,就是检索项在文档中没有找到)。

3 范例:tf-idf权重

tf-idf

tf-idf(英语:term frequency–inverse document frequency)是一种用于信息检索与文本挖掘的常用加权技术。tf-idf是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。tf-idf加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了tf-idf以外,互联网上的搜索引擎还会使用基于链接分析的评级方法,以确定文件在搜索结果中出现的顺序。

1 原理

在一份给定的文件里,词频(term frequency,tf)指的是某一个给定的词语在该文件中出现的频率。这个数字是对词数(term count)的归一化,以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词数,而不管该词语重要与否)对于在某一特定文件里的词语ti来说,它的重要性可表示为:

以上式子中ni,j是该词在文件dj中的出现次数,而分母是在文件dj中所有字词的出现次数之和。 逆向文件频率(inverse document frequency,idf)是一个词语普遍重要性的度量。某一特定词语的idf,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到:

其中:

  • |D|:语料库中的文件总数
  • |{j:ti∈dj}|:包含词语ti的文件数目(即ni,j≠0的文件数目)。如果该词语不在语料库中,就会导致分母为零,因此一般情况下使用1+|{j:ti∈dj}|,然后 tfidfi,j=tf×idfi

某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的tf-idf。因此,tf-idf倾向于过滤掉常见的词语,保留重要的词语。

2 例子

有很多不同的数学公式可以用来计算tf-idf。这边的例子以上述的数学公式来计算。词频(tf)是一词语出现的次数除以该文件的总词语数。假如一篇文件的总词语数是100个,而词语“母牛”出现了3次,那么“母牛”一词在该文件中的词频就是3/100=0.03。一个计算文件频率(DF)的方法是测定有多少份文件出现过“母牛”一词,然后除以文件集里包含的文件总数。所以,如果“母牛”一词在1,000份文件出现过,而文件总数是10,000,000份的话,其逆向文件频率就是log(10,000,000 / 1,000)=4。最后的tf-idf的分数为0.03 * 4=0.12。

3 在向量空间模型里的应用

tf-idf权重计算方法经常会和余弦相似性(cosine similarity)一同使用于向量空间模型中,用以判断两份文件之间的相似性


参考维基百科

  • 向量空间模型
  • tf-idf

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Word2Vec教程-Skip-Gram模型模型“伪”任务关于模型的更多细节隐藏层输出层

    原文:Word2Vec Tutorial - The Skip-Gram Model ---- 这篇教程主要讲述了Word2Vec中的skip gram模型,...

    致Great
  • 机器学习(八)最小二乘法1 线性代数

    文章将从线性代数和概率论统计两个角度去分析和解释最小二乘法 1 线性代数 1.1 空间解析几何的相关定义 向量:在空间几何中,称既有大小又有方向的量为向量,也叫...

    致Great
  • Linux相关操作

    首先,我们将配置您的CentOS系统,以便在启动时自动启动NetworkManager。你可以通过运行:

    致Great
  • 未来简史:从智人到智神

    这本书挺不好读的,讲述了很多的抽象的概念,例如智能、意识、自由主义、人文主义等。下面摘要了本书的一些主要观点:

    张子阳
  • 基于unittest集成你的selenium2测试

    前言 python单元测试框架(The Python Unit Testing Framework)简称PyUnit,是JUnit的python版本,自pyth...

    苦叶子
  • iOS技术面试题及答案

    绘制一个UIView最灵活的方法就是由它自己完成绘制。实际上你不是绘制一个UIView,而是子类化一个UIView并赋予绘制自己的能力。当一个UIView需要执...

    ios-lan
  • 2019年11月2日:总结iOS技术面试题及应对答案

    随着移动互联网技术的不断发展和创新,访谈对于公司和开发人员和设计师来说都是费时且昂贵的项目,面对iOS开发者和设计师在访谈过程中可能遇到的问题,现在为大家总结i...

    iOSSir
  • 实时控制软件设计需要这个库

    最近在做项目时候,使用了恩智浦恩智浦实时控制嵌入式软件库RTCESL,是一组算法,从基础数学运算到高级数学变换以及高级观测器,这些都可以方便地用在复杂的实时控制...

    用户1605515
  • 「解决方案架构」解决方案架构概述

    解决方案架构是定义和描述在特定解决方案上下文中交付的系统架构的实践,因此它可能包含对整个系统或仅其特定部分的描述。解决方案架构的定义通常由解决方案架构师领导。

    首席架构师智库
  • .NET项目开发—浅谈面向对象的纵横向关系、多态入口,单元测试(项目小结)

    阅读目录: 1.开篇介绍 2.使用委托消除函数串联调用 2.1.使用委托工厂转换两个独立层面的对象 3.多态入口(面向对象继承体系是可被扩展的) 4.多态的受...

    王清培

扫码关注云+社区

领取腾讯云代金券