TF-IDF、向量空间模型和余弦相关度

2024-04-29 01:08

本文主要是介绍TF-IDF、向量空间模型和余弦相关度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、TF-IDF

TF-IDF是信息检索和数据挖掘中常用的一种加权技术。它是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。

TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

TF词频(Term Frequency)指的是某一个给定的词语在该文件中出现的频率。

             

IDF反文档频率(Inverse Document Frequency)是一个词语普遍重要性的度量。

           

总的来说

           

文档集中包含某一词条的文档越多,说明它区分文档类别属性的能力越低,其权值越小;

另一方面,某一文档中某一词条出现的频率越高,说明它区分文档内容属性的能力越强,其权值越大。 

我的经验,TF-IDF高于0.01就已经有较好的区分能力。笔者在做文本分类的时候,提取TF-IDF>=0.01或0.02的词作特征,分类效果还不错,第一次测试就有90%的准确率。        

二、向量空间模型

向量空间模型(VSM:Vector Space Model)作为向量的标识符(比如索引),是一个用来表示文本文件的代数模型。它应用于信息过滤, 信息检索, 索引以及评估相关性。

向量空间模型将文档映射为一个特征向量V(d)=(t1,ω1(d);…;tn, ωn(d)),其中ti(i=1,2, …,n)为一列互不雷同的词条项,ωi(d)为ti在d中的权值, 一般被定义为ti在d中出现频率tfi(d)的函数。

             

其中,Wi,j表示特征空间中第j个特征项(词项)在该文档向量中的权重值。

Wi,j的计算公式有很多变种,以下是常见的一种。

          

k表示词库维度;

TFi,j表示特征词 在文档 中出现的频率(不出现则为0);

N表示语料库中的文档总数;

DFj表示语料库中包含词的文档数。

三、余弦相关度

两文档之间的相似度可以用其对应的向量之间的夹角余弦来表示

          

即是两向量的点积除以两向量的长度之积。

可化简为:

                

利用以上这些东西,本人周末两天做了个简易的搜索引擎,索引了之前爬的43w个网页,虽然数据少,但有些搜索结果还挺靠谱的。


这篇关于TF-IDF、向量空间模型和余弦相关度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944736

相关文章

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

MySQL启动报错:InnoDB表空间丢失问题及解决方法

《MySQL启动报错:InnoDB表空间丢失问题及解决方法》在启动MySQL时,遇到了InnoDB:Tablespace5975wasnotfound,该错误表明MySQL在启动过程中无法找到指定的s... 目录mysql 启动报错:InnoDB 表空间丢失问题及解决方法错误分析解决方案1. 启用 inno

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

在Java中基于Geotools对PostGIS数据库的空间查询实践教程

《在Java中基于Geotools对PostGIS数据库的空间查询实践教程》本文将深入探讨这一实践,从连接配置到复杂空间查询操作,包括点查询、区域范围查询以及空间关系判断等,全方位展示如何在Java环... 目录前言一、相关技术背景介绍1、评价对象AOI2、数据处理流程二、对AOI空间范围查询实践1、空间查

MySQL表空间结构详解表空间到段页操作

《MySQL表空间结构详解表空间到段页操作》在MySQL架构和存储引擎专题中介绍了使用不同存储引擎创建表时生成的表空间数据文件,在本章节主要介绍使用InnoDB存储引擎创建表时生成的表空间数据文件,对... 目录️‍一、什么是表空间结构1.1 表空间与表空间文件的关系是什么?️‍二、用户数据在表空间中是怎么

CentOS7增加Swap空间的两种方法

《CentOS7增加Swap空间的两种方法》当服务器物理内存不足时,增加Swap空间可以作为虚拟内存使用,帮助系统处理内存压力,本文给大家介绍了CentOS7增加Swap空间的两种方法:创建新的Swa... 目录在Centos 7上增加Swap空间的方法方法一:创建新的Swap文件(推荐)方法二:调整Sww

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES