# Machine Learning — TF-IDF

写在前面

在接触LSA的时候第一次接触了TF-IDF,隐隐约约感觉这个也是一个很重要的点,读了几篇论文似乎(我也不确定,太菜了 )好像也许是用了这种方法,先学习吧 可能学完就水落石出了呢

TF-IDF介绍

up主说很简单,辣就很简单吧。TF-IDF可以做的事情包括但不限于如下:
根据TF-IDF值,就可以建立关键词语和文档之间的日历图
在这里插入图片描述
也可以基于大量文本语料库查找与某个句子最相关的文本文档
在这里插入图片描述
还可以提取一段文本中的关键词语等等

TF-IDF简介

TF-IDF(term frequency - inverse document frequency)
wikipedia对其的定义为:TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。它是一种用于信息检索与文本挖掘的常用加权技术。

大白话来说就是:是词频的升级版,是一种评估词语重要性的指标
在这里插入图片描述

在词频分析中我们常常简单粗暴地认为,出现频率越高的词越重要,但是如 “的” “我们” “是” 这种,在每个文章中基本都大量出现,但并没有什么eggs 用…

所以TF-IDF做的就是,采用IDF(逆向文档频率)来控制约束词频(TF),两者相乘即可得到TF-IDF
在这里插入图片描述
TF指的是词语在某个文档中出现的频率,算式如下:
在这里插入图片描述
IDF指的是总文档比上词语所在文档数取对数,这在LSA(上)博客里面已经有过此类介绍,在此就不多赘述。
在这里插入图片描述

TF-IDF的不足

  • 频率越小单词越重要?
  • 单词频率越大就越无用?
  • 不能体现上下文信息。

LDA里面的 min_df 和 max_df 是什么意思

LDA在此次毕设里的运用还比较成功,之后有空详细解读一下其中的代码
在这里插入图片描述
在这里插入图片描述

max_df 主要作用是词语过滤,就像之前说过这个词语的重要性和它在多少个文档里出现是有关系的,比如一些助词或虚词。当其出现在所有文档中的频率大于50%时,我们就会将其过滤掉。
min_df 是一个整数,是指词语
至少出现在10个文档里
,否则就会被过滤掉
在这里插入图片描述
官网说明文档也显示,不论是 min_df 还是 max_df ,都可以用0-1的数或者一个整数来表示,但我们一般最大用概率来表示,最小用整数来表示

Sklearn - TF-IDF

在这里插入图片描述
在sklearn中 TF= n,IDF也有变化:
在这里插入图片描述
这里IDF做了一个平滑,分母、分子、最后的值都加上了1.
为什么叫 “平滑” 是因为我们要保证 分母 ≠ 0 这样我们的计算才不会报错

首先说归一化的问题

不归一:

规划默认采用 l2 ,如果我们不想归一化,我们可以强调 norm = None,这样我们的TF-IDF的值就不会在0-1之间
在这里插入图片描述

采用 l1 进行归一化:

结果如下:
在这里插入图片描述
所得的结果绝对值相加等于1

采用 l2 进行归一化(默认):

在这里插入图片描述
所得结果(每一列)平方和相加等于1

传统归一化(计算和原公式一样):

在这里插入图片描述
不同的点是调用的库要相较于上面两个略有不同(多调用了个CountVectorizer)

写在后面

基本了解了TF-IDF的处理模式,尝试将其运用到毕设中,再多探索一下丰富一下内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人生苦短我愛Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值