TF-IDF原理及sklearn调用

一、原理

TF-IDF,也就是“词频-逆文本频率”,是文本挖掘中做分词、向量化之后的一个操作,它由两部分组成:
1、词频:某个词在当前文本中出现的次数。

T F i , j = n i , j ∑ k n i , k TF_{i,j}=\frac{n_{i,j}}{\sum_kn_{i,k}} TFi,j=kni,kni,j
其中,i 代表第 i 个文档,分子表示的是第 i 个文档的第 j 个词在该文档中出现的次数,分母表示在该文档中所有关键词出现的次数之和。
2、IDF:有些词语虽然词频很高,但是并不重要,IDF衡量的就是一个词的重要度。IDF的基本公式:
I D F ( x ) = l o g N N ( x ) IDF(x) = log\frac {N}{N(x)} IDF(x)=logN(x)N
其中,N代表训练集中document的总数,而N(x)代表训练集中包含词x的document总数。也就是说,如果出现词x的文档越多,IDF值越小,这个词越不重要。

如果某一个生僻词没有在训练集中出现,就会导致分母为0,所以我们需要做一些平滑:
I D F ( x ) = l o g N + 1 N ( x ) + 1 + 1 IDF(x) = log\frac{N+1}{N(x)+1} + 1 IDF(x)=logN(x)+1N+1+1
TF-IDF的公式为: T F − I D F ( x ) = T F ( x ) ∗ I D F ( x ) TF-IDF(x) = TF(x) * IDF(x) TFIDF(x)=TF(x)IDF(x)

二、sklearn调用

from sklearn.feature_extraction.text import TfidfVectorizer
tfidf = TfidfVectorizer()
re = tfidf.fit_transform(corpus)

常用参数:
ngram_range=(min_n, max_n):要提取的n-gram的n-values的下限和上限范围。
stop_words:string {‘english’}, list, or None(default),停用词
max_df: float in range [0.0, 1.0] or int, optional, 1.0 by default
min_df:float in range [0.0, 1.0] or int, optional, 1.0 by default
max_features: optional, None by default
norm:‘l1’, ‘l2’, or None,optional。范数用于标准化词条向量。None为不归一化

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值