定义:

  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:

  

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 2024-01-24 15:04  黑逍逍  阅读(17)  评论(0编辑  收藏  举报