(转载他人 以备自己查阅)

在该方法中,我们把一篇文章抽象成一个向量。

假设向量由n个词组成,每个词的权重是kn。假设文章D是你喜欢的文章,那么
    文章 D=(k1,k2,k3,k4,k5.....kn),这是一个多维的向量。

如果维数很多,将来计算起来很麻烦,我们需要降维处理,所谓的降维就是,选出有代表性的特征词,这样就降低了维数。 可以人工选择。也可以自动选择,自动选择的话,可以采用开方拟和检验方法,如果有时间,我会在以后详细介绍该方法。

有一篇很长的文章,我要用计算机提取它的关键词(Automatic Keyphrase extraction),完全不加以人工干预,请问怎样才能正确做到?

这个问题涉及到数据挖掘、文本处理、信息检索等很多计算机前沿领域,但是出乎意料的是,有一个非常简单的经典算法,可以给出令人相当满意的结果。它简单到都不需要高等数学,普通人只用10分钟就可以理解,这就是我今天想要介绍的TF-IDF算法

让我们从一个实例开始讲起。假定现在有一篇长文《中国的蜜蜂养殖》,我们准备用计算机提取它的关键词。

一个容易想到的思路,就是找到出现次数最多的词。如果某个词很重要,它应该在这篇文章中多次出现。于是,我们进行"词频"(Term Frequency,缩写为TF)统计。

结果你肯定猜到了,出现次数最多的词是----"的"、"是"、"在"----这一类最常用的词。它们叫做"停用词"(stop words),表示对找到结果毫无帮助、必须过滤掉的词。

假设我们把它们都过滤掉了,只考虑剩下的有实际意义的词。这样又会遇到了另一个问题,我们可能发现"中国"、"蜜蜂"、"养殖"这三个词的出现次数一样多。这是不是意味着,作为关键词,它们的重要性是一样的?

显然不是这样。因为"中国"是很常见的词,相对而言,"蜜蜂"和"养殖"不那么常见。如果这三个词在一篇文章的出现次数一样多,有理由认为,"蜜蜂"和"养殖"的重要程度要大于"中国",也就是说,在关键词排序上面,"蜜蜂"和"养殖"应该排在"中国"的前面。

所以,我们需要一个重要性调整系数,衡量一个词是不是常见词。如果某个词比较少见,但是它在这篇文章中多次出现,那么它很可能就反映了这篇文章的特性,正是我们所需要的关键词。

用统计学语言表达,就是在词频的基础上,要对每个词分配一个"重要性"权重。最常见的词("的"、"是"、"在")给予最小的权重,较常见的词("中国")给予较小的权重,较少见的词("蜜蜂"、"养殖")给予较大的权重。这个权重叫做"逆文档频率"(Inverse Document Frequency,缩写为IDF),它的大小与一个词的常见程度成反比

知道了"词频"(TF)和"逆文档频率"(IDF)以后,将这两个值相乘,就得到了一个词的TF-IDF值。某个词对文章的重要性越高,它的TF-IDF值就越大。所以,排在最前面的几个词,就是这篇文章的关键词。

下面就是这个算法的细节。

第一步,计算词频。

从上表可见,"蜜蜂"的TF-IDF值最高,"养殖"其次,"中国"最低。(如果还计算"的"字的TF-IDF,那将是一个极其接近0的值。)所以,如果只选择一个词,"蜜蜂"就是这篇文章的关键词。

除了自动提取关键词,TF-IDF算法还可以用于许多别的地方。比如,信息检索时,对于每个文档,都可以分别计算一组搜索词("中国"、"蜜蜂"、"养殖")的TF-IDF,将它们相加,就可以得到整个文档的TF-IDF。这个值最高的文档就是与搜索词最相关的文档。

TF-IDF算法的优点是简单快速,结果比较符合实际情况。缺点是,单纯以"词频"衡量一个词的重要性,不够全面,有时重要的词可能出现次数并不多。而且,这种算法无法体现词的位置信息,出现位置靠前的词与出现位置靠后的词,都被视为重要性相同,这是不正确的。(一种解决方法是,对全文的第一段和每一段的第一句话,给予较大的权重。)

转载网址

向量空间模型(VSM)算法相关推荐

  1. 【转载】向量空间模型VSM及余弦计算

    向量空间模型VSM及余弦计算 向量空间模型的基本思想是把文档简化为以特征项(关键词)的权重为分量的N维向量表示. 这个模型假设词与词间不相关(这个前提造成这个模型无法进行语义相关的判断,向量空间模型的 ...

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

    C#实现在: 向量空间模型(VSM:Vector space model)是最常用的相似度计算模型,在自然语言处理中有着广泛的应用,这里简单介绍一下其在进行文档间相似度计算时的原理. 假设共有十个词: ...

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

      向量空间模型(VSM:Vector space model)是最常用的相似度计算模型,在自然语言处理中有着广泛的应用,这里简单介绍一下其在进行文档间相似度计算时的原理. 假设共有十个词:w1,w2 ...

  4. 向量空间模型(VSM)--用于计算文本相似度

    向量空间模型将文档映射为一个特征向量V(d)=(t1,ω1(d):-:tn, ωn(d)),其中ti(i=1,2, -,n)为一列互不雷同的词条项,ωi(d)为ti在d中的权值, 一般被定义为ti在d ...

  5. 向量空间模型(VSM)的余弦定理公式(cos)

    相信很多学习向量空间模型(Vector Space Model)的人都会被其中的余弦定理公式所迷惑.. 因为一看到余弦定理,肯定会先想起初中时的那条最简单的公式cosA=a/c(邻边比斜边),见下图: ...

  6. 向量空间模型VSM—特征抽取算法—TF-IDF

    原文作者:lucky小东西 原文地址:基于tf-idf的小说主题特征抽取算​法 1.主题特征抽取做什么 在当前个性化推荐大行其道的时候,那就不得不提用户画像.用户画像的主要工作内容就是将用户标签化,对 ...

  7. 向量空间模型原理(VSM)

    VSM概念介绍 VSM概念简单来说,就是把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,直观易懂.当文档被表示为文档空间的向量,就可以通过计算向量之间 的相似性来 ...

  8. 向量空间模型简介及算法

    向量空间模型(VSM:Vector Space Model)由Salton等人于20世纪70年代提出,并成功地应用于著名的SMART文本检索系统.把对文本内容的处理简化为向量空间中的向量运算,并且它以 ...

  9. 向量空间模型算法( Vector Space Model )

    概念介绍 向量空间模型(VSM:Vector Space Model)由Salton等人于20世纪70年代提出,并成功 地应用于文本检索系统. VSM概念简单,把对文本内容的处理简化为向量空间中的向量 ...

  10. spacevector=[] matlab,向量空间模型(vectorspacemodel)

    向量空间模型(vector space model) 向量空间模型概念简单,把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,直观易懂.当文档被表示为文档空间的向量 ...

最新文章

  1. python定时器每月执行一次_python 定时器,实现每天凌晨3点执行的方法
  2. libgdx和android界面结合,Android游戏引擎libgdx使用教程5:常用UI类与舞台
  3. 关键七步,用Apache Spark构建实时分析Dashboard
  4. PPT 下载 | 神策数据孙文亮:客户全生命周期管理从方法到实践全解析
  5. CVE-2018-1000136:Electron nodeIntegration绕过漏洞
  6. 今天的几点感悟_20160429
  7. 格力接受美国5.83亿巨额罚款!官方紧急回应...
  8. ewsa握手包怎么获得_三次握手和四次挥手以及TCP标志位的详细介绍
  9. 计算机的超级终端程序无法使用,超级终端,教您win7怎么添加超级终端
  10. 修改移动光猫,提升上网速度
  11. java jco sap 重连_SAP R3和JAVA交换数据之JCO
  12. switch语句的ns图怎么画_NS图绘制软件
  13. java word 替换_Java 在 Word 文档中使用新文本替换指定文本的方法
  14. PyTorch | torch.manual_seed(1)是什么意思?torch随机数manual_seed(1)有什么用?如何理解torch.manual_seed(1)
  15. java action接口,Struts2 Action接口与ActionSupport类
  16. Mysql基础篇(3)—— MySQL数据库类型
  17. Android源码分析工具及方法
  18. row_number() OVER(PARTITION BY)函数介绍
  19. Bootstrap系列之纵向对齐(Vertical alignment)
  20. windows系统 电脑系统重装详细教程(看这一篇就够了)

热门文章

  1. 网络安全合规-数据安全风险评估
  2. 超越咨询顾问的算力,在 BI:大数据改变管理咨询
  3. php 7 398.36,398.36 WHQL下载:NVIDIA 发布 398.36 WHQL 显卡驱动
  4. 在线拖拽云建站-不花钱不写代码5分钟智能建站
  5. 似然函数与极大似然估计
  6. C# Directory
  7. nginx入门demo
  8. 不能创建src/main/java 源文件夹的问题
  9. html的页面中嵌入额外的内容,通过Wireshark分析网络钓鱼
  10. Oracle主库redo传输至备机,关于Oracle Dataguard 日志传输状态监控问题