定义:

  TF-IDF 是针对一个文档集合(语料库)设计的,这种统计方法用于评估一个词语对于一份文件的重要程度

  就是TF-IDF的值越高,这个词在这篇文档中的重要性就越高

  • TF (Term Frequency): 这是一个单词在该篇文章中出现的频率。例如,如果一个单词在文档中出现了5次,而文档总共有100个单词,那么这个单词的TF值就是5/100=0.05。

    •   

       

  • IDF (Inverse Document Frequency): 这是用来衡量一个单词对文档集合(或语料库)的重要性的值。IDF的计算公式通常是取对数形式,比如,如果语料库中有1000个文档,而某个单词只出现在10个文档中,那么这个单词的IDF值就是log(1000/10)=2。

    •   

       

  • TF-IDF: 这是将TF和IDF相乘得到的值。在上面的例子中,如果一个单词在某个文档中的TF是0.05,IDF是2,则它的TF-IDF值就是0.05 * 2 = 0.1。

原理:

  如果某个词语在一篇文章中出现的频率高(词频,TF),并且在其他文章中很少出现(逆文档频率,IDF),则认为这个词语具有很好的类别区分能力,对理解文档的内容很重要

 

步骤:

  1. 将所有的文章组成集合list,作为参数,传递给对象

 

demo:

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from sklearn.feature_extraction.text import TfidfVectorizer
 
# 示例文档
documents = [
    "the sky is blue",
    "the sun is bright"
]
 
# 初始化 TF-IDF 向量化器
vectorizer = TfidfVectorizer()
 
# 计算 TF-IDF
tfidf_matrix = vectorizer.fit_transform(documents)
 
# 获取词汇
words = vectorizer.get_feature_names_out()
 
# 将 TF-IDF 矩阵转换为数组
tfidf_array = tfidf_matrix.toarray()
 
# 创建一个字典来存储每个文档的 TF-IDF
tfidf_dict = {word: tfidf_array[:, idx] for idx, word in enumerate(words)}
 
tfidf_dict

  

 

posted on   黑逍逍  阅读(84)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!



点击右上角即可分享
微信分享提示