【算法】TF-IDF(Term Frequency-Inverse Document Frequency)算法详解

本文详细介绍了TF-IDF(词频-逆文档频率)在信息检索中的重要性,包括其原理、计算方法,以及如何在Python的sklearn库中使用TfidfVectorizer进行TF-IDF值计算。还展示了如何安装相关包并演示了实际的代码示例和结果分析。

目录

概述

术语解释

词频(Term Frequency)

文档频率(Document Frequency)

倒排文档频率(Inverse Document Frequency)

计算(Computation)

代码语法

代码展示

安装相关包

测试代码及其结果

结果整理


概述

TF-IDF代表记录的词频倒排文档频率。它可以定义为计算一个词在一系列或语料库中与文本的相关性。其含义与词在文本中出现的次数成比例增加,但受语料库(数据集)中该词的频率的补偿。

术语解释

词频(Term Frequency)

在文档d中,频率表示给定词t的实例数量。因此,我们可以看到当一个词在文本中出现时,它变得更相关,这是合理的。由于术语的顺序不重要,我们可以使用一个向量来描述基于词袋模型的文本。对于论文中的每个特定术语,都有一个条目,其值是词频。

在文档中出现的术语的权重与该术语的词频成正比。

\begin{equation} \text{tf}(t, d) = \frac{\text{词} t \text{在文档} d \text{的数量}}{\text{文档} d \text{词总量}} \end{equation}

延伸:BM25 TF 计算(Bese Match25 Term Frequency)

用于测量特定文档中词项的频率,同时进行文档长度和词项饱和度的调整。

\begin{equation}\text{score} =\frac{​{\text{tf} \cdot (k1 + 1)}}{​{\text{tf} + k1 \cdot (1 - b + b \cdot \frac{\text{fieldLength}}{\text{avgFieldLength}})}}\end{equation}

freq: 词项在文档中的频率。 k1: 用于控制词项频率饱和度的调节参数(通常为1.2)。 b: 用于控制字段长度归一化的调节参数(通常为0.75)。 fieldLength: 文档中字段的长度。 avgFieldLength: 所有文档中字段平均长度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值