赞
踩
在接触LSA的时候第一次接触了TF-IDF,隐隐约约感觉这个也是一个很重要的点,读了几篇论文似乎(我也不确定,太菜了 )好像也许是用了这种方法,先学习吧 可能学完就水落石出了呢
up主说很简单,辣就很简单吧。TF-IDF可以做的事情包括但不限于如下:
根据TF-IDF值,就可以建立关键词语和文档之间的日历图
也可以基于大量文本语料库查找与某个句子最相关的文本文档
还可以提取一段文本中的关键词语等等
TF-IDF(term frequency - inverse document frequency)
wikipedia对其的定义为:TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。它是一种用于信息检索与文本挖掘的常用加权技术。
大白话来说就是:是词频的升级版,是一种评估词语重要性的指标
在词频分析中我们常常简单粗暴地认为,出现频率越高的词越重要,但是如 “的” “我们” “是” 这种,在每个文章中基本都大量出现,但并没有什么eggs 用…
所以TF-IDF做的就是,采用IDF(逆向文档频率)来控制约束词频(TF),两者相乘即可得到TF-IDF
TF指的是词语在某个文档中出现的频率,算式如下:
IDF指的是总文档比上词语所在文档数取对数,这在LSA(上)博客里面已经有过此类介绍,在此就不多赘述。
LDA在此次毕设里的运用还比较成功,之后有空详细解读一下其中的代码
max_df 主要作用是词语过滤,就像之前说过这个词语的重要性和它在多少个文档里出现是有关系的,比如一些助词或虚词。当其出现在所有文档中的频率大于50%时,我们就会将其过滤掉。
min_df 是一个整数,是指词语至少出现在10个文档里,否则就会被过滤掉
官网说明文档也显示,不论是 min_df 还是 max_df ,都可以用0-1的数或者一个整数来表示,但我们一般最大用概率来表示,最小用整数来表示。
在sklearn中 TF= n,IDF也有变化:
这里IDF做了一个平滑,分母、分子、最后的值都加上了1.
为什么叫 “平滑” 是因为我们要保证 分母 ≠ 0 这样我们的计算才不会报错
规划默认采用 l2 ,如果我们不想归一化,我们可以强调 norm = None,这样我们的TF-IDF的值就不会在0-1之间
结果如下:
所得的结果绝对值相加等于1
所得结果(每一列)平方和相加等于1
不同的点是调用的库要相较于上面两个略有不同(多调用了个CountVectorizer)
基本了解了TF-IDF的处理模式,尝试将其运用到毕设中,再多探索一下丰富一下内容。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。