词频-逆文档频率(Term Frequency-Inverse Document Frequency,

简介: 词频-逆文档频率(Term Frequency-Inverse Document Frequency,简称 TF-IDF)是一种统计方法,用以评估一个词对于一个文本或一组文本的重要性。

词频-逆文档频率(Term Frequency-Inverse Document Frequency,简称 TF-IDF)是一种统计方法,用以评估一个词对于一个文本或一组文本的重要性。

定义

TF-IDF = 词频(TF)× 逆文档频率(IDF)

  • 词频(TF):一个词在文本中出现的频率,反映了这个词在该文本中的重要性。
  • 逆文档频率(IDF):该词在全部文本中出现的次数的逆像,越少出现的词,IDF越高。

通俗的说,TF-IDF 的含义是:一个词在一篇文档中频繁出现,但在全部文档中很少出现,那么这个词很有代表性。

应用

  • 信息检索。评估查询词与文本的相关性
  • 文本分类。用于文本特征提取
  • 文本 clustering。文本之间的相似性计算
  • 链机翻译。在将整段文本转化为向量时使用

示例代码

scheme

Copy

```python 
from sklearn.feature_extraction.text import TfidfVectorizer
corpus = [
    'This is the first document.',   
    'This document is the second document.', 
    'And this is the third one.' 
]
vectorizer = TfidfVectorizer()
vectors =  vectorizer.fit_transform(corpus)
print(vectors[0].toarray())
#[[0.          0.          0.5       0.8660254]
# [0.5         0.8660254  0.         0.   ]]
```
TfidfVectorizor 可以将文本转化为TF-IDF向量表示。



词频率(TF)与逆文本频率(IDF)是反映一个词语对于一篇文本重要性的两个指标。

TF是词频(Term Frequency),表示词条(关键字)在文本中出现的频率。这个数字通常会被归一化(一般是词频除以文章总词数),以防止它偏向长的文件。

公式:

$$

tf_{ij} = \frac{n_{i,j}}{\sum_{k}n_{k,j}}

$$

其中 ni,jn_{i,j} 是该词在文件djd_j中出现的次数,分母则是文件djd_j中所有词汇出现的次数总和。

IDF是逆向文件频率(Inverse Document Frequency),某一特定词语的IDF,可以由总文件数目除以包含该词语的文件的数目,再将得到的商取对数。

包含词条t的文本数量越少, IDF越大,说明词条具有很好的类别区分能力。

公式:

$$

idf_i = log\frac{\mid D \mid}{\mid\lbrace j:t_i \in d_j \rbrace\mid}

$$

其中,D\mid D \mid 是语料库中的文本总数。{j:tidj} \mid\lbrace j:t_i \in d_j \rbrace\mid 表示包含词语 tit_i 的文本数目(即 nin_i, j0j≠0 的文件数目)。如果该词语不在语料库中,就会导致分母为零,因此一般情况下使用 1+{j:tidj} 1 + \mid\lbrace j:t_i \in d_j \rbrace\mid 即:

$$

idf_i = log\frac{语料库的文本总数}{1 + 包含词条w的文本数}

$$

TF-IDF即为TF * IDF

某特定文本中出现频率高的词语,且该词语在整个文本语料库中的出现的频率较低,对应的TF-IDF较大。因此,TF-IDF可以用于过滤掉在所有文本中均常见的词语,突出具体某个文本中的重要词语。






书籍:

《自然语言处理:理论与技术综述》

这本书详细介绍了TF-IDF算法及其在文本处理中的应用。

《Speech and Language Processing》

第三章专门讲解了TF-IDF的概念和实际案例。

在线课程:

Andrew Ng 机器学习课程

中介绍了TF-IDF如何用于文本处理。

Coursera NLP课程

讲解了TF-IDF是如何用于文本预处理的。

Stanford CS230课程

也提供了TF-IDF的实例和实战。

可以学习的内容:

  • TF-IDF的数学原理
  • TF-IDF的变体算法,如TF,IDF等
  • 在不同领域的应用,如文本挖掘、搜索引擎等
  • 用编程实现TF-IDF算法
  • TF-IDF与其他特征提取技术的比较

除此以外,你也可以:

  • 在Kaggle和GitHub上查看TF-IDF相关项目源码
  • 在Kaggle上查找数据集,自己实现一个TF-IDF模型
  • 查看更多的文章和博客,解决常见问题

总的来说,你可以从以下方面学习和实践TF-IDF:

  • 理解数学原理
  • 掌握变种算法
  • 了解实际应用
  • 进行编程实战
  • 分析理论基础










目录
相关文章
|
机器学习/深度学习 自然语言处理 算法
文本分析-使用jieba库进行中文分词和去除停用词(附案例实战)
文本分析-使用jieba库进行中文分词和去除停用词(附案例实战)
8602 0
|
机器学习/深度学习 人工智能 自然语言处理
"揭秘TF-IDF算法的神奇力量:如何一招制胜,让自然语言处理焕发新生?"
【8月更文挑战第20天】自然语言处理(NLP)是AI的关键领域,旨在使计算机理解人类语言。TF-IDF是一种重要的文本特征提取方法,用于衡量词汇的重要性。算法结合词频(TF)与逆文档频(IDF),强调文档独有词汇。示例代码展示了如何利用Python的scikit-learn库实现TF-IDF,并应用于文本分类任务,通过朴素贝叶斯分类器实现高效分类。此方法广泛应用于信息检索、文本挖掘等领域。
239 0
|
人工智能 自然语言处理 算法
【人工智能】TF-IDF算法概述
TF-IDF算法,全称Term Frequency-Inverse Document Frequency(词频-逆文档频率),是一种在信息检索和文本挖掘领域广泛应用的加权技术。它通过评估一个词语在文档中的重要程度,来挖掘文章中的关键词,进而用于文本分析、搜索引擎优化等场景。其核心思想是:如果某个词或短语在一篇文章中出现的频率高(TF高),且在其他文章中很少出现(IDF也高),则认为这个词或短语具有很好的类别区分能力,适合用来代表这篇文章的内容。 具体而言,TF-IDF由两部分组成,即词频(TF)和逆文档频率(IDF)。词频(TF)指的是某一个给定的词在该文件中出现的频率。这个数值通常会被归一化
976 3
|
自然语言处理 算法 搜索推荐
NLP中TF-IDF算法
TF-IDF(词频-逆文档频率)是一种用于信息检索与数据挖掘的加权技术,通过评估词语在文档中的重要性来过滤常见词语,保留关键信息。本文介绍了TF-IDF的基本概念、公式及其在Python、NLTK、Sklearn和jieba中的实现方法,并讨论了其优缺点。TF-IWF是TF-IDF的优化版本,通过改进权重计算提高精度。
919 1
|
自然语言处理 Python
【Python自然语言处理】文本向量化的六种常见模型讲解(独热编码、词袋模型、词频-逆文档频率模型、N元模型、单词-向量模型、文档-向量模型)
【Python自然语言处理】文本向量化的六种常见模型讲解(独热编码、词袋模型、词频-逆文档频率模型、N元模型、单词-向量模型、文档-向量模型)
3988 0
|
11月前
|
搜索推荐 物联网 PyTorch
Qwen2.5-7B-Instruct Lora 微调
本教程介绍如何基于Transformers和PEFT框架对Qwen2.5-7B-Instruct模型进行LoRA微调。
11832 34
Qwen2.5-7B-Instruct Lora 微调
|
存储 缓存 自然语言处理
Elasticsearch中FST与前缀搜索
Elasticsearch中FST与前缀搜索
359 0
|
Ubuntu NoSQL Linux
一文讲明Docker的基本使用,常见Docker命令使用 、Docker的安装使用等【详细说明+图解+概念+实践】
这篇文章详细介绍了Docker的基本使用,包括Docker的安装、常用命令、架构概念等,并通过图解和实践帮助读者快速掌握Docker的使用方法。
一文讲明Docker的基本使用,常见Docker命令使用 、Docker的安装使用等【详细说明+图解+概念+实践】
|
SQL 数据可视化 关系型数据库
2022年最新最详细IDEA关联数据库方式、在IDEA中进行数据库的可视化操作(包含图解过程)
这篇文章详细介绍了如何在IntelliJ IDEA中关联MySQL数据库,包括打开Database侧边栏、选择数据库、输入连接信息、测试连接,并提供了解决连接问题的方案,以及在IDEA中进行数据库的可视化操作步骤。
2022年最新最详细IDEA关联数据库方式、在IDEA中进行数据库的可视化操作(包含图解过程)
|
自然语言处理 安全 Shell
【Python】已解决:Python pip正确安装pyhanlp库步骤
【Python】已解决:Python pip正确安装pyhanlp库步骤
648 2