定义:
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
标签:单词,语料库,tfidf,IDF,文档,TF From: https://www.cnblogs.com/mxleader/p/17984721