本文讨论如何计算词(有时候称特征向量)权重和向量空间模型及其应用。本文的“文档”是指查询对象,它们可以使一条条单独的记录或者是一本书的各章,还可以是一个网页,或者xml文件等。

1 归一化

在讨论词权重和向量空间模型前需要先了解下归一化的概念。归一化(normailization)方法有两种形式。第一种形式是把数变为(0,1)之间的小数,方便计算。第二种是把有量纲(量纲是指单位)表达式变为无量纲表达式,这样归一化后统一了单位,方便比较,而且归一化后比较的数值才有意义。

2 词权重表示TF-IDF

词频-逆文档频率(term frequency-inverse document frequency,TF-IDF) 的概念被公认为信息检索中最重要的发明。在搜索、文献分类和其他相关领域有广泛的应用。

在计算机中光有词是不能计算的,需要把词转换为数字,这个数字能代表该词对文档中的重要程度,这个数字就是词的权重。权重的设定必须满足下面两个条件:

1)一个词预测主题能力越强,权重就越大,反之,权重就越小。我们在网页中看到“云计算”这个词,或多或少地能了解网页的主题。我们看到“应用”一次,对主题基本上还是一无所知。因此,“云计算“的权重就应该比”应用“大。

2) 应删除词(如的等停顿词)的权重应该是零。

2.1 词频

如果用词项t在文档d中出现的次数来表示词频,那么包含某些词多的文档应该比包含它们少的文档相关。当然,这个办法有一个明显的漏洞,就是长的文档比短的文档占便宜,因为长的文档总的来讲包含的关键词要多些。因此我们需要根据文档的长度,对关键词的次数进行归一化,也就是用关键词的次数除以文档的总字数。我们把这个商称为词的频率(term frequency,TF)

2.2逆文档频率

如果一个关键词只在很少的文档中出现,我们通过它就容易锁定搜索目标,它的权重也就应该大。反之如果一个词在大量文档中出现,我们看到它仍然不很清楚要找什么内容,因此它应该小。概括地讲,假定一个关键词t在Dt个文档中出现过,那么Dt越大,t的权重越小,反之亦然。在信息检索中,使用最多的权重是逆文档频率(Inversedocument frequency 缩写为IDF),它的公式为

IDF=log(D/Dt)

其中D是全部文档数。比如,我们假定中文文档数是D=10亿,应删除词“的”在所有的文档中都出现,即 Dt=10亿,那么它的IDF=log(10亿/10亿)= log(1) = 0。假如专用词“云计算”在两百万个文档中出现,即Dw=200万,则它的权重IDF=log(500) =6.2。又假定通用词“应用”,出现在五亿个文档中,它的权重IDF= log(2)则只有 1。也就只说,在文档中找到一个“云计算”的比配相当于找到九个“应用”的匹配。

2.3 TF-IDF权重计算

对于每篇文档中的每个词(一般是指关键字及特征向量),可以将其TF和IDF组合在一起形成每个词最终的权重,计算公式如下

TF-IDF=TF*IDF

TF-IDF按照如下的方式对文档d中的词项t赋予权重:

(1)当t只在少数几篇文档中多次出现时,权重取值最大(此时能够对这些文档提供最强的区分能力);

(2)当t在一篇文档中出现次数很少,或者在很多文档中出现,权重取值次之(此时对最后的相关度计算作用不大);

(3)如果t在所有文档中都出现,那么权重取值最小。

3 向量空间模型

通过用TF-IDF表示词的权重,就可以把文档看成是一个向量(vector),其中的每个分量都对应词典中的一个词,分量值为词的权重值(可用TF-IDF计算,也有其他方法计算权重值)。当某词在文档中没有出现时,其对应的分量值为0。这种向量形式对于评分和排序十分重要。一系列文档在同一向量空间中的表示被称为向量空间模型(vector space model,简称VSM),它是信息检索领域一系列相关处理的基础,比如文档的评分、文档的分类及聚类。

用向量空间模型,一组文档的集合可以看成向量空间中的多个向量,每个词对应一个坐标轴,文档在每个坐标轴上的值是对应词的权重Weight。那么文档d对应的向量为

4 应用

4.1 文档相关性

(1)简单的文档相关性计算,可以用文档中的每个词的权重(TF-IDF)加权求和,即

TF1*IDF1 + TF2*IDF2 +... + TFN*IDFN。

(2)用余弦定理判断文档相似度

学过向量代数的人都知道,向量实际上是多维空间中有方向的线段。如果两个向量的方向一致,即夹角接近零,那么这两个向量就相近。而要确定两个向量方向是否一致,这就要用到余弦定理计算向量的夹角了。可以用余弦定理判定文档的相似度。
    余弦定理对我们每个人都不陌生,它描述了三角形中任何一个夹角和三个边的关系,换句话说,给定三角形的三条边,我们可以用余弦定理求出三角形各个角的角度。假定三角形的三条边为 a, b 和 c,对应的三个角为 A, B 和 C,那么角 A 的余弦为

如果我们将三角形的两边 b 和 c 看成是两个向量,那么上述公式等价于

其中分母表示两个向量 b 和 c 的长度,分子表示两个向量的内积。

同样在向量空间下,可以用余弦定理对两篇文档的相似度进行计算,如下图

举一个具体的例子(这个例子来自《数学之美》),假如文章 X 和文章 Y 对应向量分别是x1,x2,...,x64000 和y1,y2,...,y64000,那么它们夹角的余弦等于,

https://wenku.baidu.com/view/52ff026cf121dd36a22d82aa.html(权重算法的改进)

文本相似性检测---词语权重计算相关推荐

  1. 《跨语言文本相似性检测》第一周—前期调研

    <跨语言文本相似性检测>第一周-前期调研 文本相似度计算在信息检索.数据挖掘.机器翻译.文档复制检测等领域有着广泛的应用. 文本相似性流程 分词-->权重-->选择相应算法 文 ...

  2. tfidf+java+权重,使用scikit-learn tfidf计算词语权重

    TF-IDF概述 TF-IDF是Term Frequency -  Inverse Document Frequency的缩写,即"词频-逆文本频率".它由两部分组成,TF和IDF ...

  3. 深度学习实战-词嵌入计算文本相似性

    使用词嵌入计算文本相似性 文章目录 使用词嵌入计算文本相似性 简介 词嵌入 预训练词嵌入查看文本相似性 Word2vec的数学特性 可视化词嵌入 词嵌入中发现实体类 类内部语义距离 可视化国家数据 补 ...

  4. 文本相似性计算之编辑距离详解

    文本相似性计算之编辑距离详解 概述: 编辑距离(Edit Distance):是一个度量两个字符序列之间差异的字符串度量标准,两个单词之间的编辑距离是将一个单词转换为另一个单词所需的单字符编辑(插入. ...

  5. 文本分类入门(番外篇)特征选择与特征权重计算的区别

    文本分类入门(番外篇)特征选择与特征权重计算的区别 在文本分类的过程中,特征(也可以简单的理解为"词")从人类能够理解的形式转换为计算机能够理解的形式时,实际上经过了两步骤的量化- ...

  6. 计算文本相似度_Python文本相似性计算

    安装simtext库 pip install simtext 上文本相似性计算代码 from simtext import similaritytextA = '批量爬取网页,需要根据网页之间URL的 ...

  7. [转]文本分类入门(番外篇)特征选择与特征权重计算的区别

    原文地址:http://www.blogjava.net/zhenandaci/archive/2009/04/19/266388.html 在文本分类的过程中,特征(也可以简单的理解为"词 ...

  8. 【NLP】文献翻译1——基于结构和词嵌入的文本相似性测量方法

    Measuring text similarity based on structure and word embedding 摘要 1. 简介 2. 相关工作 3. 句子相似性 3.1 基于结构的相 ...

  9. 安全研究 # 二进制代码相似性检测综述

    本文参考: [1]方磊,武泽慧,魏强.二进制代码相似性检测技术综述[J].计算机科学,2021,48(05):1-8. (信息工程大学数学工程与先进计算国家重点实验室, 国家重点研发课题,北大核心) ...

最新文章

  1. c语言精品课程网站论文免费下载,【毕业论文_c语言程序设计精品课程网站的研究与实现6喜欢就下吧材料】...
  2. js mysql替换_JavaScript_js使用正则实现ReplaceAll全部替换的方法,JS 字符串有replace() 方法。但这 - phpStudy...
  3. python---webRTC~vad静音检测-学习笔记
  4. 英伟达宣布全面支持ARM高性能计算,三周打造全球排名第22超算
  5. 《Groovy官方指南》目录
  6. 光模块功能失效的原因有哪些?
  7. xxljob 配置文件_最详细的xxl-job java配置方式spring-boot
  8. mongdb group聚合操作
  9. javascript基础系列:javascript中的变量和数据类型(一)
  10. java mysql websocket_javaweb-ajax-websocket-mysql
  11. java openresty 调用_Openresty使用zlib解压缩response body
  12. 熊猫分发_熊猫cut()函数示例
  13. 强烈推荐12套开源微信小程序免费源码
  14. OSChina 周一乱弹 —— 程序猿到底是多有才?
  15. python 数据显示不完整 有省略号_python pandas之Dataframe的数据print输出显示为...省略号...
  16. python except exception_Python 获取异常(Exception)信息的几种方法
  17. 测试分享之抽奖【二】
  18. 第六章:详细设计。盒图、问题分析图即PAD图、过程设计语言PDL伪码
  19. onenote冲突服务器显示,ONENOTE同步分区失败,显示“正在等待另一个设备完成上载您的笔记”?...
  20. 结对开发——求二维环形数组所有子矩阵最大和的问题

热门文章

  1. eoc拨号失败服务器无响应,联通广电EOC合作技术方案建议书
  2. 模拟简易的打地鼠游戏
  3. 【GUI】一、Swing外观框架BeautyEye使用
  4. 我在千峰培训的第九天---数组练习跟方法练习
  5. 以太坊学习笔记(一)——免费获得测试ETH
  6. 「节能学院」苏州高新区实验中学某校区能耗管理系统的研究应用
  7. 输出第N个斐波那契数
  8. 造梦西游4显示您与服务器,造梦西游4连接服务器失败怎么办?连接服务器失败解决方法分享...
  9. 【解决】通用串行总线控制器全是感叹号
  10. 一张网络拓扑图的简单分析