定义:
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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!